1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        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í)及基本原理。我們今天看一下如何通過(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;
                        
                        
                          
                            @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ù)庫(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)。

                        
                          
                            @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")?//表示配置請(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ī)范
        瀏覽 75
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            特级大黄A片免费播放下载 | 日韩黄片无码 | 蜜桃91精品秘 入口内裤 | 中国毛片网 | 性生大片免费观看一片黄动漫 | 老熟女视频 | 欧美日韩在线视频播放 | 日韩无码视频观看 | 双性受在学校寝室被双龙攻 | 黄色片在线看 |