話很少說直接開始。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