最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Shiro的環(huán)境搭建教程

 更新時(shí)間:2022年12月18日 08:26:40   作者:世界盡頭與你  
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合Shiro的環(huán)境搭建教程,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下

SpringBoot整合Shiro環(huán)境搭建

導(dǎo)入 SpringBoot 和 Shiro 整合包的依賴:

<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->
<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>1.10.1</version>
</dependency>

下面是編寫(xiě)配置文件:

@Configuration
public class ShiroConfig {
    
}

Shiro 三大要素

  • subject -> ShiroFilterFactoryBean
  • securityManager -> DefaultWebSecurityManager
  • realm

實(shí)際操作中對(duì)象創(chuàng)建的順序 : realm -> securityManager -> subject

第一步:編寫(xiě)自定義的 realm ,需要繼承 AuthorizingRealm,并且重寫(xiě)認(rèn)證和授權(quán)方法:

public class UserRealm extends AuthorizingRealm {
    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        System.out.println("執(zhí)行了授權(quán)方法");
        return null;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        System.out.println("執(zhí)行了認(rèn)證方法");
        return null;
    }
}

注冊(cè)我們自己的realm到配置類里:

@Configuration
public class ShiroConfig {
    @Bean
    public UserRealm userRealm(){
        return new UserRealm();
    }
}

第二步:創(chuàng)建 securityManager,并加載realm:

@Bean(name = "SecurityManager")
public DefaultWebSecurityManager getDefaultWebSecurity(@Qualifier("userRealm") UserRealm userRealm) {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    // 需要關(guān)聯(lián)自定義的 Realm,通過(guò)參數(shù)把 Realm 對(duì)象傳遞過(guò)來(lái)
    securityManager.setRealm(userRealm);
    return securityManager;
}

第三步:創(chuàng)建 subject,并關(guān)聯(lián) securityManager:

@Bean
public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("SecurityManager") DefaultWebSecurityManager defaultWebSecurityManager) {
    ShiroFilterFactoryBean subject = new ShiroFilterFactoryBean();
    // 設(shè)置安全管理器
    // 需要關(guān)聯(lián) securityManager ,通過(guò)參數(shù)把 securityManager 對(duì)象傳遞過(guò)來(lái)
    subject.setSecurityManager(defaultWebSecurityManager);
    return subject;
}

完整配置類:

@Configuration
public class ShiroConfig {

    @Bean
    public ShiroFilterFactoryBean shiroFilterFactoryBean(@Qualifier("SecurityManager") DefaultWebSecurityManager defaultWebSecurityManager) {
        ShiroFilterFactoryBean subject = new ShiroFilterFactoryBean();
        // 設(shè)置安全管理器
        // 需要關(guān)聯(lián) securityManager ,通過(guò)參數(shù)把 securityManager 對(duì)象傳遞過(guò)來(lái)
        subject.setSecurityManager(defaultWebSecurityManager);
        return subject;
    }

    @Bean(name = "SecurityManager")
    public DefaultWebSecurityManager getDefaultWebSecurity(@Qualifier("userRealm") UserRealm userRealm) {
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        // 需要關(guān)聯(lián)自定義的 Realm,通過(guò)參數(shù)把 Realm 對(duì)象傳遞過(guò)來(lái)
        securityManager.setRealm(userRealm);
        return securityManager;
    }

    @Bean
    public UserRealm userRealm() {
        return new UserRealm();
    }
}

現(xiàn)在,我們來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的頁(yè)面攔截測(cè)試一下吧!

編寫(xiě)兩個(gè)頁(yè)面、在templates目錄下新建一個(gè) user 目錄 add.html update.html:

頁(yè)面內(nèi)容可以自定義:

在index頁(yè)面上,增加跳轉(zhuǎn)鏈接功能:

<a th:href="@{/user/add}" rel="external nofollow" >add</a>
<hr/>
<a th:href="@{/user/update}" rel="external nofollow" >update</a>

編寫(xiě)跳轉(zhuǎn)到頁(yè)面的controller:

@RequestMapping("/user/add")
public String toAdd() {
    return "user/add";
}

@RequestMapping("/user/update")
public String toUpdate() {
    return "user/update";
}

之后運(yùn)行無(wú)誤即可配置成功!

到此這篇關(guān)于SpringBoot整合Shiro的環(huán)境搭建教程的文章就介紹到這了,更多相關(guān)SpringBoot整合Shiro內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java接入通義千問(wèn)的簡(jiǎn)單方法示例

    Java接入通義千問(wèn)的簡(jiǎn)單方法示例

    ? 通義千問(wèn)是阿里云開(kāi)發(fā)的大語(yǔ)言模型(Large language Model )LLM,旨在提供廣泛的知識(shí)和普適性,可以理解和回答各領(lǐng)域中的問(wèn)題,這篇文章主要給大家介紹了關(guān)于Java接入通義千問(wèn)的簡(jiǎn)單方法,需要的朋友可以參考下
    2024-02-02
  • JAVA中STRING的常用方法小結(jié)

    JAVA中STRING的常用方法小結(jié)

    這篇文章介紹了JAVA中STRING的常用方法,有需要的朋友可以參考一下
    2013-09-09
  • springcloud微服務(wù)之Eureka配置詳解

    springcloud微服務(wù)之Eureka配置詳解

    這篇文章主要介紹了springcloud微服務(wù)之Eureka配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java讀取JSON文件的多種實(shí)現(xiàn)方式

    java讀取JSON文件的多種實(shí)現(xiàn)方式

    這篇文章主要介紹了java讀取JSON文件的多種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑

    使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑

    這篇文章主要介紹了使用IDEA工具配置和運(yùn)行vue項(xiàng)目及遇到的坑,需要的朋友可以參考下
    2018-09-09
  • windows下使用 intellij idea 編譯 kafka 源碼環(huán)境

    windows下使用 intellij idea 編譯 kafka 源碼環(huán)境

    這篇文章主要介紹了使用 intellij idea 編譯 kafka 源碼的環(huán)境,本文是基于windows下做的項(xiàng)目演示,需要的朋友可以參考下
    2021-10-10
  • JDBC如何通過(guò)SSL方式連接MySQL

    JDBC如何通過(guò)SSL方式連接MySQL

    文章介紹了如何配置MySQL以支持SSL連接,并通過(guò)JDBC進(jìn)行安全連接,主要內(nèi)容包括查看MySQL SSL支持、創(chuàng)建SSL連接用戶、配置用戶是否強(qiáng)制使用SSL、JDBC配置導(dǎo)入證書(shū)以及使用Go編寫(xiě)一個(gè)簡(jiǎn)單的HTTP文件服務(wù)器來(lái)提供SSL證書(shū)
    2025-02-02
  • mybatis的insert插入后獲取自增id的方法詳解(從controller到mapper)

    mybatis的insert插入后獲取自增id的方法詳解(從controller到mapper)

    這篇文章主要介紹了mybatis的insert插入后獲取自增id的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • AndroidQ沙盒機(jī)制之分區(qū)存儲(chǔ)適配

    AndroidQ沙盒機(jī)制之分區(qū)存儲(chǔ)適配

    這篇文章主要介紹了AndroidQ沙盒機(jī)制之分區(qū)存儲(chǔ)適配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Spring @CrossOrigin 注解原理實(shí)現(xiàn)

    Spring @CrossOrigin 注解原理實(shí)現(xiàn)

    這篇文章主要介紹了Spring @CrossOrigin 注解原理實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論

陆河县| 喀喇沁旗| 思茅市| 武川县| 宁河县| 新建县| 庆阳市| 蓬莱市| 吕梁市| 腾冲县| 莆田市| 镇沅| 太仓市| 甘洛县| 兴隆县| 伊春市| 汉寿县| 普定县| 容城县| 珠海市| 古丈县| 张家口市| 峡江县| 长岛县| 闻喜县| 泸水县| 蓬溪县| 昌邑市| 宝清县| 蚌埠市| 花莲县| 乐清市| 广灵县| 福贡县| 恩施市| 汉川市| 镇赉县| 盖州市| 天等县| 晋城| 鹤山市|