欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

導入 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>

下面是編寫配置文件:

@Configuration
public class ShiroConfig {
    
}

Shiro 三大要素

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

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

第一步:編寫自定義的 realm ,需要繼承 AuthorizingRealm,并且重寫認證和授權(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í)行了認證方法");
        return null;
    }
}

注冊我們自己的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,通過參數(shù)把 Realm 對象傳遞過來
    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();
    // 設置安全管理器
    // 需要關(guān)聯(lián) securityManager ,通過參數(shù)把 securityManager 對象傳遞過來
    subject.setSecurityManager(defaultWebSecurityManager);
    return subject;
}

完整配置類:

@Configuration
public class ShiroConfig {

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

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

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

現(xiàn)在,我們來實現(xiàn)一個簡單的頁面攔截測試一下吧!

編寫兩個頁面、在templates目錄下新建一個 user 目錄 add.html update.html:

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

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

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

編寫跳轉(zhuǎn)到頁面的controller:

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

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

之后運行無誤即可配置成功!

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

相關(guān)文章

  • 分布式面試消息隊列解決消息重復保證消息順序

    分布式面試消息隊列解決消息重復保證消息順序

    這篇文章主要介紹了分布式面試問題:分布式消息隊列如何解決消息重復并保證消息順序面試問題解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • MyBatis注解實現(xiàn)動態(tài)SQL問題

    MyBatis注解實現(xiàn)動態(tài)SQL問題

    這篇文章主要介紹了MyBatis注解實現(xiàn)動態(tài)SQL問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java設置token有效期的5個應用場景(雙token實現(xiàn))

    Java設置token有效期的5個應用場景(雙token實現(xiàn))

    Token最常見的應用場景之一就是身份驗證,本文主要介紹了Java設置token有效期的5個應用場景(雙token實現(xiàn)),具有一定的參考價值,感興趣的可以來了解一下
    2024-04-04
  • Java中對象?和?json?互轉(zhuǎn)四種方式?json-lib、Gson、FastJson、Jackson

    Java中對象?和?json?互轉(zhuǎn)四種方式?json-lib、Gson、FastJson、Jackson

    這篇文章主要介紹了Java中對象?和?json?互轉(zhuǎn)?四種方式?json-lib、Gson、FastJson、Jackson,需要的朋友可以參考下
    2023-11-11
  • java RMI詳細介紹及實例講解

    java RMI詳細介紹及實例講解

    這篇文章主要介紹了java RMI詳細介紹及實例講解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • JavaFX實現(xiàn)簡易時鐘效果(二)

    JavaFX實現(xiàn)簡易時鐘效果(二)

    這篇文章主要為大家詳細介紹了JavaFX實現(xiàn)簡易時鐘效果的第二篇,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解Lombok的坑

    詳解Lombok的坑

    這篇文章主要介紹了詳解Lombok的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • SpringBoot如何通過配置文件(yml,properties)限制文件上傳大小

    SpringBoot如何通過配置文件(yml,properties)限制文件上傳大小

    這篇文章主要介紹了SpringBoot如何通過配置文件(yml,properties)限制文件上傳大小,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringDataRedis簡單使用示例代碼

    SpringDataRedis簡單使用示例代碼

    這篇文章主要介紹了SpringDataRedis簡單使用,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • java發(fā)送HttpClient請求及接收請求結(jié)果過程的簡單實例

    java發(fā)送HttpClient請求及接收請求結(jié)果過程的簡單實例

    下面小編就為大家?guī)硪黄猨ava發(fā)送HttpClient請求及接收請求結(jié)果過程的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11

最新評論