SpringSecurity之權(quán)限方案——用戶認(rèn)證
點(diǎn)擊上方“藍(lán)字”,發(fā)現(xiàn)更多精彩。
0 1 設(shè)置用戶名密碼
開篇點(diǎn)睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安裝 如何將網(wǎng)站全部變成灰色的素裝效果,瞧過(guò)來(lái) 宇訊代碼生成器開源了 微信支付系列之——統(tǒng)一下單 springboot自動(dòng)裝配原理 如何優(yōu)雅的實(shí)現(xiàn)接口防刷 系統(tǒng)日志規(guī)范
前面我們講解了一些關(guān)于Security的基礎(chǔ)知識(shí)及基本原理。我們今天看一下如何通過(guò)它實(shí)現(xiàn)一個(gè)簡(jiǎn)單的web權(quán)限認(rèn)證方案!
0 1 設(shè)置用戶名密碼
1、通過(guò)配置文件設(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ù)庫(kù)中獲取的密碼?atguigu?的密文?String?pwd?=?????????"$2a$10$2R/M6iU3mCZt3ByGXXXXXEEER23UqdeXrb27zkBIizBvAven0/na";
?????????????????//?第三個(gè)參數(shù)表示權(quán)限
?????????????????return?new?User(username,pwd,?AuthorityUtils.commaSeparatedStringToAuthorityList("admin,"));
????????}
}
上面loadUserByUsername中TODO處是需要我們自己編寫代碼,實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢操作,具體代碼實(shí)現(xiàn)此處省略了,可以使用Mybatis也可以使用Mybatis plus來(lái)完成具體的代碼!
0 2 放行登錄頁(yè)面及靜態(tài)文件我們可以通過(guò)配置類來(lái)實(shí)現(xiàn)登錄頁(yè)面以及靜態(tài)資源的過(guò)濾,使其無(wú)需通過(guò)認(rèn)證,即能訪問(wè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")?//表示配置請(qǐng)求路徑
????????????????.permitAll()??//?指定 URL 無(wú)需保護(hù)。
?????????????????.anyRequest()??//?其他請(qǐng)求
????????????????.authenticated();?//需要認(rèn)證
?????????}
}
開篇點(diǎn)睛——Elasticsearch 工欲善其事必先利其器——Elasticsearch安裝 如何將網(wǎng)站全部變成灰色的素裝效果,瞧過(guò)來(lái) 宇訊代碼生成器開源了 微信支付系列之——統(tǒng)一下單 springboot自動(dòng)裝配原理 如何優(yōu)雅的實(shí)現(xiàn)接口防刷 系統(tǒng)日志規(guī)范
評(píng)論
圖片
表情
