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

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

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

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

1.1、概述

? ? ? ? 關(guān)于Spring Security中的授權(quán),請(qǐng)參考【系列一、認(rèn)證 & 授權(quán)】,這里不再贅述。

1.2、資源類(lèi)

/**
 * @Author : 一葉浮萍?xì)w大海
 * @Date: 2024/1/11 20:58
 * @Description: 測(cè)試資源
 */
@RestController
public class HelloController7003 {

    /**
     * 任何人都可以訪問(wèn)
     * @return
     */
    @GetMapping("/helloWorld")
    public R helloWorld() {
        return R.ok().data("Hello World");
    }

    /**
     * 登錄后才能訪問(wèn)
     * @return
     */
    @GetMapping("/sayHi")
    public R sayHi() {
        return R.ok().data("嗨!");
    }

    /**
     * 需要具有dba角色的人才能訪問(wèn)
     * @return
     */
    @GetMapping("/dba/helloWorld")
    public R dba() {
        return R.ok().data("dba Hello World");
    }

    /**
     * 需要具有admin角色的人才能訪問(wèn)
     * @return
     */
    @GetMapping("/admin/helloWorld")
    public R admin() {
        return R.ok().data("admin Hello World");
    }

}

1.3、配置類(lèi)

/**
 * @Author : 一葉浮萍?xì)w大海
 * @Date: 2024/1/11 21:50
 * @Description: Spring Security配置類(lèi)
 */
@Configuration
public class MyWebSecurityConfigurerAdapter7003 extends WebSecurityConfigurerAdapter {

    @Resource
    private MyAuthenticationSuccessHandler7003 successHandler;
    @Resource
    private MyAuthenticationFailureHandler7003 failureHandler;
    @Resource
    private MyLogoutSuccessHandler7003 logoutSuccessHandler;
    @Resource
    private MyAuthenticationEntryPoint7003 authenticationEntryPoint;
    @Resource
    private MyAccessDeniedHandler7003 accessDeniedHandler;

    /**
     * 密碼加密器
     * @return
     */
    @Bean
    PasswordEncoder passwordEncoder() {
        return NoOpPasswordEncoder.getInstance();
    }

    /**
     * 根據(jù)UserDetailsService定義基于內(nèi)存的用戶
     * @return
     */
    @Bean
    protected UserDetailsService userDetailsService() {
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
        manager.createUser(User.withUsername("dba").password("123456").roles("dba").build());
        manager.createUser(User.withUsername("admin").password("123456").roles("admin").build());

        return manager;
    }

    /**
     * 角色繼承
     * @return
     */
    @Bean
    protected RoleHierarchy roleHierarchy() {
        RoleHierarchyImpl roleHierarchy = new RoleHierarchyImpl();
        roleHierarchy.setHierarchy("ROLE_admin > ROLE_dba");

        return roleHierarchy;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/dba/**").hasRole("dba")
                .antMatchers("/admin/**").hasRole("admin")
                .antMatchers("/helloWorld")
                .permitAll()
                .anyRequest()
                .authenticated()

                .and()

                /**
                 * 登錄成功 & 登錄失敗回調(diào)
                 */
                .formLogin()
                .loginPage("/login")
                .successHandler(successHandler)
                .failureHandler(failureHandler)

                .and()

                /**
                 * 注銷(xiāo)登錄回調(diào)
                 */
                .logout()
                .logoutUrl("/logout")
                .logoutSuccessHandler(logoutSuccessHandler)
                .permitAll()

                .and()

                .csrf()
                .disable()

                /**
                 * 未認(rèn)證 & 權(quán)限不足回調(diào)
                 */
                .exceptionHandling()
                .authenticationEntryPoint(authenticationEntryPoint)
                .accessDeniedHandler(accessDeniedHandler);
    }

}

1.4、測(cè)試

1.4.1、admin登錄

(一) 登錄

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

(二) 訪問(wèn)sayHi(登錄就可以訪問(wèn))

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

(三)訪問(wèn)/admin/helloWorld接口(需要擁有admin角色)?

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

(四)訪問(wèn)/dba/helloWorld接口(需要擁有dba角色,admin自動(dòng)繼承dba角色)?

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

1.4.2、dba登錄

(一) 登錄

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

(二) 訪問(wèn)sayHi(登錄就可以訪問(wèn))

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

(三)訪問(wèn)/admin/helloWorld接口(需要擁有admin角色,由于當(dāng)前登錄用戶是dba,所以登錄拒絕)?

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

(四)訪問(wèn)/dba/helloWorld接口(需要擁有dba角色)?

系列六、Spring Security中的認(rèn)證 & 授權(quán) & 角色繼承,Spring Security OAuth2.0系列,Spring Security,OAuth2.0文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-788931.html

到了這里,關(guān)于系列六、Spring Security中的認(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)文章

  • SpringCloud整合spring security+ oauth2+Redis實(shí)現(xiàn)認(rèn)證授權(quán)

    SpringCloud整合spring security+ oauth2+Redis實(shí)現(xiàn)認(rèn)證授權(quán)

    在微服務(wù)構(gòu)建中,我們一般用一個(gè)父工程來(lái)通知管理依賴的各種版本號(hào)信息。父工程pom文件如下: 在SpringCloud微服務(wù)體系中服務(wù)注冊(cè)中心是一個(gè)必要的存在,通過(guò)注冊(cè)中心提供服務(wù)的注冊(cè)和發(fā)現(xiàn)。具體細(xì)節(jié)可以查看我之前的博客,這里不再贅述。我們開(kāi)始構(gòu)建一個(gè)eureka注冊(cè)中

    2024年02月06日
    瀏覽(25)
  • Spring Security Oauth2.1 最新版 1.1.0 整合 gateway 完成授權(quán)認(rèn)證(擁抱 springboot 3.1)

    Spring Security Oauth2.1 最新版 1.1.0 整合 gateway 完成授權(quán)認(rèn)證(擁抱 springboot 3.1)

    目錄 背景 demo地址 版本 Spring Boot 3.1 Spring Authorization Server 1.1.0 基礎(chǔ) spring security OAuth2 模塊構(gòu)成 授權(quán)方式 認(rèn)證方式 集成過(guò)程 官方demo 代碼集成 依賴 授權(quán)服務(wù)AuthorizationServerConfig配置 重要組件 測(cè)試 查看授權(quán)服務(wù)配置 訪問(wèn)授權(quán)服務(wù) 授權(quán) 回調(diào) 獲取?access_token 獲取用戶信息 個(gè)性

    2024年02月08日
    瀏覽(18)
  • Spring Security Oauth2.1 最新版 1.1.0 整合 (基于 springboot 3.1.0)gateway 完成授權(quán)認(rèn)證

    Spring Security Oauth2.1 最新版 1.1.0 整合 (基于 springboot 3.1.0)gateway 完成授權(quán)認(rèn)證

    目錄 背景 demo地址 版本 Spring Boot 3.1 Spring Authorization Server 1.1.0 基礎(chǔ) spring security OAuth2 模塊構(gòu)成 授權(quán)方式 認(rèn)證方式 集成過(guò)程 官方demo 代碼集成 依賴 授權(quán)服務(wù)AuthorizationServerConfig配置 重要組件 測(cè)試 查看授權(quán)服務(wù)配置 訪問(wèn)授權(quán)服務(wù) 授權(quán) 回調(diào) 獲取?access_token 獲取用戶信息 個(gè)性

    2024年02月11日
    瀏覽(24)
  • Spring Security 6.x 系列【72】授權(quán)篇之角色分層

    有道無(wú)術(shù),術(shù)尚可求,有術(shù)無(wú)道,止于術(shù)。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源碼地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年01月23日
    瀏覽(14)
  • 系列八、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è)開(kāi)發(fā)中,常用的持久化方案是MyBatis Plus,那么Spring Security中如何定義基于MyBatis Plus的方式進(jìn)行認(rèn)證授權(quán)呢?請(qǐng)看

    2024年01月18日
    瀏覽(17)
  • Spring Security對(duì)接OIDC(OAuth2)外部認(rèn)證

    前后端分離項(xiàng)目對(duì)接OIDC(OAuth2)外部認(rèn)證,認(rèn)證服務(wù)器可以使用Keycloak。 后端已有用戶管理和權(quán)限管理,需要外部認(rèn)證服務(wù)器的用戶名和業(yè)務(wù)系統(tǒng)的用戶名一致才可以登錄。 后臺(tái)基于Spring Boot 2.7 +?Spring Security 流程: 前臺(tái)瀏覽器跳轉(zhuǎn)到? 后臺(tái)地址 +?/login/oauth2/authorization/my-oid

    2024年02月21日
    瀏覽(25)
  • 【Spring Security】Spring Security 認(rèn)證與授權(quán)

    【Spring Security】Spring Security 認(rèn)證與授權(quán)

    在前面的章節(jié)中,我們沿用了Spring Security默認(rèn)的安全機(jī)制:僅有一個(gè)用戶,僅有一種角色。在實(shí)際開(kāi)發(fā)中,這自然是無(wú)法滿足需求的。本章將更加深入地對(duì)Spring Security迚行配置,且初步使用授權(quán)機(jī)制。 3.1 默認(rèn)數(shù)據(jù)庫(kù)模型的認(rèn)證與授權(quán) 3.1.1、資源準(zhǔn)備 首先,在controller包下新建

    2024年02月05日
    瀏覽(19)
  • spring security認(rèn)證授權(quán)流程

    認(rèn)證和授權(quán)是任何安全體系中的兩個(gè)主要功能,而在現(xiàn)代Web開(kāi)發(fā)中,Spring Security是最受歡迎和廣泛使用的安全框架之一。在本篇文章中,我們將全面介紹Spring Security的認(rèn)證和授權(quán)機(jī)制,并提供詳細(xì)的步驟和示例代碼。 ?一、認(rèn)證(Authentication) 認(rèn)證的主要目的是驗(yàn)證用戶的身

    2024年02月15日
    瀏覽(21)
  • Spring Boot OAuth2 認(rèn)證服務(wù)器搭建及授權(quán)碼認(rèn)證演示

    Spring Boot OAuth2 認(rèn)證服務(wù)器搭建及授權(quán)碼認(rèn)證演示

    本篇使用JDK版本是1.8,需要搭建一個(gè)OAuth 2.0的認(rèn)證服務(wù)器,用于實(shí)現(xiàn)各個(gè)系統(tǒng)的單點(diǎn)登錄。 這里選擇Spring Boot+Spring Security + Spring Authorization Server 實(shí)現(xiàn),具體的版本選擇如下: Spirng Boot 2.7.14 , Spring Boot 目前的最新版本是 3.1.2,在官方的介紹中, Spring Boot 3.x 需要JDK 17及以上的

    2024年02月15日
    瀏覽(22)
  • Spring Gateway+Security+OAuth2+RBAC 實(shí)現(xiàn)SSO統(tǒng)一認(rèn)證平臺(tái)

    Spring Gateway+Security+OAuth2+RBAC 實(shí)現(xiàn)SSO統(tǒng)一認(rèn)證平臺(tái)

    背景:新項(xiàng)目準(zhǔn)備用SSO來(lái)整合之前多個(gè)項(xiàng)目的登錄和權(quán)限,同時(shí)引入網(wǎng)關(guān)來(lái)做后續(xù)的服務(wù)限流之類(lèi)的操作,所以搭建了下面這個(gè)系統(tǒng)雛形。 : Spring Gateway, Spring Security, JWT, OAuth2, Nacos, Redis, Danymic datasource, Javax,?thymeleaf 如果對(duì)上面這些技術(shù)感興趣,可以繼續(xù)往下閱讀 如

    2024年02月13日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包