话很少说直接开始。git
pom.xml:github
spring security的核心依赖以下spring
<!-- spring security --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- spring security data --> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-data</artifactId> </dependency>
配置用户主类:User
同时实现security 的 UserDetails
mybatis
重写它的几个方法,默认配置为 false 需变为 true。spring-boot
配置 UserService
实现 UserDetailsService
接口
,同时重写 loadUserByUsername 方法 。测试
该方法是security登陆时使用的方法,查询的信息的需包含用户(User)信息以及角色(Role)信息。url
建立 UserController
, 因为咱们在上面配置了.antMatchers("/login","/register")
使得在未登陆时只容许访问这两个接口。spa
再未登陆时访问非许可的接口会转到login登陆。
效果以下:3d
登陆成功后访问 /users
code
咱们很方便的实现了登陆受权,使得咱们的API获得了保护。
如需指定区分不一样角色下的访问权限时只要在Controller加上一下注解便可。
@PreAuthorize("hasRole('ROLE_ADMIN')")//须要管理员身份
@PreAuthorize("hasRole('ROLE_USER')")//须要用户身份
经过以上的简要叙述咱们完成了Springboot + mybatis 整合 Spring security。
因为时间有限在文中只作简要叙述,访问个人Github查看完整的Demo。
url: https://github.com/admin79/SecurityDemo
原文同步至 https://www.waytoa.top