SpringSecurity之權(quán)限方案——用戶認(rèn)證
點(diǎn)擊上方“藍(lán)字”,發(fā)現(xiàn)更多精彩。
0 1 設(shè)置用戶名密碼
開篇點(diǎn)睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安裝 如何將網(wǎng)站全部變成灰色的素裝效果,瞧過來 宇訊代碼生成器開源了 微信支付系列之——統(tǒng)一下單 springboot自動裝配原理 如何優(yōu)雅的實(shí)現(xiàn)接口防刷 系統(tǒng)日志規(guī)范
前面我們講解了一些關(guān)于Security的基礎(chǔ)知識及基本原理。我們今天看一下如何通過它實(shí)現(xiàn)一個簡單的web權(quán)限認(rèn)證方案!
0 1 設(shè)置用戶名密碼
1、通過配置文件設(shè)置用戶名密碼
在application.yml文件中配置
spring.security.user.name: admin
spring.security.user.password: admin
2、編寫代碼實(shí)現(xiàn)接口
package com.yuxuntoo.config;
public?class?SecurityConfig?{
//?注入?PasswordEncoder?類到?spring?容器中
public?PasswordEncoder?passwordEncoder(){
????????return?new?BCryptPasswordEncoder();
????????}
}
package com.yuxuntoo.service;
public class LoginService implements User Details Service {
????????
????????public?UserDetails?loadUserByUsername(String?username)?throws?UsernameNotFoundException?{
????????????????//?TODO判斷用戶名是否存在
????????????????if?(!"admin".equals(username)){
????????????????????????throw?new?UsernameNotFoundException("用戶名不存在!");
?????????????????}
?????????????????//?從數(shù)據(jù)庫中獲取的密碼?atguigu?的密文?String?pwd?=?????????"$2a$10$2R/M6iU3mCZt3ByGXXXXXEEER23UqdeXrb27zkBIizBvAven0/na";
?????????????????//?第三個參數(shù)表示權(quán)限
?????????????????return?new?User(username,pwd,?AuthorityUtils.commaSeparatedStringToAuthorityList("admin,"));
????????}
}
上面loadUserByUsername中TODO處是需要我們自己編寫代碼,實(shí)現(xiàn)數(shù)據(jù)庫查詢操作,具體代碼實(shí)現(xiàn)此處省略了,可以使用Mybatis也可以使用Mybatis plus來完成具體的代碼!
0 2 放行登錄頁面及靜態(tài)文件我們可以通過配置類來實(shí)現(xiàn)登錄頁面以及靜態(tài)資源的過濾,使其無需通過認(rèn)證,即能訪問。
public?class?SecurityConfig?extends?WebSecurityConfigurerAdapter?{
???????//?注入?PasswordEncoder?類到?spring?容器中
????????
????????public?PasswordEncoder?passwordEncoder(){
?????????????????return?new?BCryptPasswordEncoder();
?????????}
????????
?????????protected?void?configure(HttpSecurity?http)?throws?Exception?{
?????????????????http.authorizeRequests()?.antMatchers("/layui/**","/index")?//表示配置請求路徑
????????????????.permitAll()??//?指定 URL 無需保護(hù)。
?????????????????.anyRequest()??//?其他請求
????????????????.authenticated();?//需要認(rèn)證
?????????}
}
開篇點(diǎn)睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安裝 如何將網(wǎng)站全部變成灰色的素裝效果,瞧過來 宇訊代碼生成器開源了 微信支付系列之——統(tǒng)一下單 springboot自動裝配原理 如何優(yōu)雅的實(shí)現(xiàn)接口防刷 系統(tǒng)日志規(guī)范
評論
圖片
表情
