<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringSecurity之權(quán)限方案——用戶認(rèn)證

          共 4948字,需瀏覽 10分鐘

           ·

          2023-05-09 02:45

          點(diǎn)擊上方“藍(lán)字”,發(fā)現(xiàn)更多精彩。

          09295a9a58b59a27b7d97aeafa808a43.webp

          前面我們講解了一些關(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;
                          
                          
                            
                              @Configuration
                            
                          
                          
                            public?class?SecurityConfig?{
                          
                          
                            
                              //?注入?PasswordEncoder?類到?spring?容器中
                            
                          
                          
                            
                              @Bean
                            
                          
                          
                            public?PasswordEncoder?passwordEncoder(){
                          
                          
                            ????????return?new?BCryptPasswordEncoder();
                          
                          
                            ????????}
                          
                          
                            }
                          
                          
                            
                              
          package com.yuxuntoo.service;
          @Service public class LoginService implements User Details Service { ????????@Override ????????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)證,即能訪問。

                          
                            
                              @Configuration
                            
                          
                          
                            public?class?SecurityConfig?extends?WebSecurityConfigurerAdapter?{
                          
                          
                            ???????//?注入?PasswordEncoder?類到?spring?容器中
                          
                          
                            ????????@Bean
                          
                          
                            ????????public?PasswordEncoder?passwordEncoder(){
                          
                          
                            ?????????????????return?new?BCryptPasswordEncoder();
                          
                          
                            ?????????}
                          
                          
                            ????????@Override
                          
                          
                            ?????????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ī)范
          瀏覽 75
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲高清不卡视频 | 波多野结衣久久精品 | 日本免费黄色片 | 婷婷久久婷婷 | 特黄A级毛片 |