国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring Security進(jìn)行登錄認(rèn)證和授權(quán)

這篇具有很好參考價(jià)值的文章主要介紹了Spring Security進(jìn)行登錄認(rèn)證和授權(quán)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、Spring Security內(nèi)部認(rèn)證流程

  1. 用戶首次登錄提交用戶名和密碼后spring security 的UsernamePasswordAuthenticationFilter把用戶名密碼封裝Authentication對(duì)象

  2. 然后內(nèi)部調(diào)用ProvideManagerauthenticate方法進(jìn)行認(rèn)證,然后ProvideManager進(jìn)一步通過(guò)內(nèi)部調(diào)用DaoAuthencationPrioviderauthenticate方法進(jìn)行認(rèn)證

  3. DaoAuthencationPriovider通過(guò)調(diào)用UserDetailsService的實(shí)現(xiàn)類InMemoryDetialManagerloadUserByUsername方法查詢用戶,并把查詢到的用戶信息封裝成一個(gè)UserDetails對(duì)象。注意InMemoryDetialManage是從內(nèi)存中查詢用戶信息的,所以我們要定制化實(shí)現(xiàn)UserDetailsService接口來(lái)達(dá)到從數(shù)據(jù)庫(kù)查詢用戶信息。

  4. 通過(guò)PasswordEncode對(duì)比返回的UserDetails對(duì)象的密碼和Authentication對(duì)象的密碼是否一致,如果密碼正確就把UserDetails中的權(quán)限信息設(shè)置到Authentication對(duì)象中

  5. 如果成功返回Authentication對(duì)象就使用SecurityContextHolder.getContext().setAuthentication方法存儲(chǔ)改對(duì)象,然后其他過(guò)濾器就會(huì)通過(guò)SecurityContextHolder來(lái)獲取當(dāng)前用戶信息。

spring security認(rèn)證和授權(quán)流程,spring,java,spring boot

二、自定義認(rèn)證流程

我們要定制化實(shí)現(xiàn)UserDetailsService接口來(lái)達(dá)到從數(shù)據(jù)庫(kù)查詢用戶信息,所以重新寫一個(gè)UserDetailsServiceImpl實(shí)現(xiàn)類。然后認(rèn)證通過(guò)使用用戶id生成一個(gè)jwt(也就是token),然后用userId 作為key,用戶信息作為value存入redis中。用戶第一次登陸認(rèn)證流程如下圖。

spring security認(rèn)證和授權(quán)流程,spring,java,spring boot
導(dǎo)入依賴

  <!--SpringSecurity啟動(dòng)器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--redis依賴-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!--fastjson依賴-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <!--jwt依賴-->
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt</artifactId>
        </dependency>

UserDetailsServiceImpl代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-673119.html

@Service
public class UserDetailServiceImpl implements UserDetailsService {
   

    @Resource
    private UserMapper userMapper;
    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
   

        //根據(jù)用戶名查詢用戶信息
        LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getUserName,username);
        User user 

到了這里,關(guān)于Spring Security進(jìn)行登錄認(rèn)證和授權(quán)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Security 如何實(shí)現(xiàn)身份認(rèn)證和授權(quán)?

    Spring Security 如何實(shí)現(xiàn)身份認(rèn)證和授權(quán)?

    Spring Security 是一個(gè)開源的安全框架,提供了基于權(quán)限的訪問(wèn)控制、身份認(rèn)證、安全性事件發(fā)布等功能。在 Spring Boot 應(yīng)用中使用 Spring Security 可以非常方便地實(shí)現(xiàn)用戶身份認(rèn)證和授權(quán)。 Spring Security 實(shí)現(xiàn)身份認(rèn)證的主要方式是使用認(rèn)證過(guò)濾器鏈,該過(guò)濾器鏈包含多個(gè)過(guò)濾器,用

    2024年02月06日
    瀏覽(21)
  • 系列六、Spring Security中的認(rèn)證 & 授權(quán) & 角色繼承

    系列六、Spring Security中的認(rèn)證 & 授權(quán) & 角色繼承

    ? ? ? ? 關(guān)于Spring Security中的授權(quán),請(qǐng)參考【系列一、認(rèn)證 授權(quán)】,這里不再贅述。 1.4.1、admin登錄 (一) 登錄 (二) 訪問(wèn)sayHi(登錄就可以訪問(wèn)) (三)訪問(wèn)/admin/helloWorld接口(需要擁有admin角色)? (四)訪問(wèn)/dba/helloWorld接口(需要擁有dba角色,admin自動(dòng)繼承dba角色)

    2024年02月01日
    瀏覽(27)
  • 權(quán)限管理詳解:認(rèn)證、授權(quán)及Spring Security配置解析

    權(quán)限管理詳解:認(rèn)證、授權(quán)及Spring Security配置解析

    深入探討權(quán)限管理的重要性與實(shí)現(xiàn)方式,包括認(rèn)證、授權(quán)概念,基于角色和資源的訪問(wèn)控制方案,以及Spring Security框架的概述和快速入門指南。

    2023年04月10日
    瀏覽(22)
  • 后端進(jìn)階之路——綜述Spring Security認(rèn)證,授權(quán)(一)

    后端進(jìn)階之路——綜述Spring Security認(rèn)證,授權(quán)(一)

    「作者主頁(yè)」 :雪碧有白泡泡 「?jìng)€(gè)人網(wǎng)站」 :雪碧的個(gè)人網(wǎng)站 「推薦專欄」 : ★ java一站式服務(wù) ★ ★ 前端炫酷代碼分享 ★ ★ uniapp-從構(gòu)建到提升 ★ ★ 從0到英雄,vue成神之路 ★ ★ 解決算法,一個(gè)專欄就夠了 ★ ★ 架構(gòu)咱們從0說(shuō) ★ ★ 數(shù)據(jù)流通的精妙之道★ ★后端進(jìn)

    2024年02月14日
    瀏覽(21)
  • 搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器

    搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器

    下面是在spring security項(xiàng)目的基礎(chǔ)上搭建spring security oauth2認(rèn)證授權(quán)服務(wù)器 spring security oauth2認(rèn)證授權(quán)服務(wù)器主要需要以下依賴 Spring Security對(duì)OAuth2默認(rèn)可訪問(wèn)端點(diǎn) ?/oauth/authorize? ??:申請(qǐng)授權(quán)碼code,涉及類? ?AuthorizationEndpoint? ? ?/oauth/token? ??:獲取令牌token,涉及類?

    2024年01月21日
    瀏覽(20)
  • Spring Security—OAuth2 客戶端認(rèn)證和授權(quán)

    關(guān)于 JWT Bearer 客戶端認(rèn)證的進(jìn)一步詳情,請(qǐng)參考OAuth 2.0客戶端認(rèn)證和授權(quán)許可的?JSON Web Token (JWT)簡(jiǎn)介。 JWT Bearer 客戶端認(rèn)證的默認(rèn)實(shí)現(xiàn)是? NimbusJwtClientAuthenticationParametersConverter ,它是一個(gè)? Converter ,通過(guò)在? client_assertion ?參數(shù)中添加簽名的JSON Web Token(JWS)來(lái)定制令牌請(qǐng)求

    2024年02月08日
    瀏覽(24)
  • Springboot +spring security,自定義認(rèn)證和授權(quán)異常處理器

    在Spring Security中異常分為兩種: AuthenticationException 認(rèn)證異常 AccessDeniedException 權(quán)限異常 我們先給大家演示下如何自定義異常處理器,然后再結(jié)合源碼幫助大家進(jìn)行分析 如何創(chuàng)建一個(gè)SpringSecurity項(xiàng)目,前面文章已經(jīng)有說(shuō)明了,這里就不重復(fù)寫了。 3.1配置SecurityConfig 這里主要是

    2024年02月07日
    瀏覽(19)
  • 系列四、Spring Security中的認(rèn)證 & 授權(quán)(前后端不分離)

    系列四、Spring Security中的認(rèn)證 & 授權(quán)(前后端不分離)

    1.3.1、概述 ? ? ? ? 前后端不分離的登錄成功回調(diào)有兩個(gè)關(guān)鍵方法,即:defaultSuccessUrl 和?successForwardUrl。那么它們之間的區(qū)別是什么呢?? ? ? ? (1)successForwardUrl 表示不管你是從哪里來(lái)的,登錄后一律跳轉(zhuǎn)到 successForwardUrl 指定的地址。例如 successForwardUrl 指定的地址為/l

    2024年01月19日
    瀏覽(33)
  • 系列八、Spring Security中基于Mybatis Plus的用戶認(rèn)證 & 授權(quán)

    ? ? ? ?【上篇】文章介紹了基于Jdbc的用戶認(rèn)證 授權(quán),雖然實(shí)現(xiàn)了在數(shù)據(jù)庫(kù)中認(rèn)證和授權(quán)的邏輯,但是底層都是Spring Security底層幫我們定義好的,擴(kuò)展性不強(qiáng),企業(yè)開發(fā)中,常用的持久化方案是MyBatis Plus,那么Spring Security中如何定義基于MyBatis Plus的方式進(jìn)行認(rèn)證授權(quán)呢?請(qǐng)看

    2024年01月18日
    瀏覽(17)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包