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

SpringBoot Shiro配置自定義密碼加密器代碼實例

 更新時間:2020年03月26日 09:19:33   作者:趙小胖0914  
這篇文章主要介紹了SpringBoot Shiro配置自定義密碼加密器代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

shiro主要有三大功能模塊:

1. Subject:主體,一般指用戶。

2. SecurityManager:安全管理器,管理所有Subject,可以配合內(nèi)部安全組件。(類似于SpringMVC中的DispatcherServlet)

3. Realms:用于進(jìn)行權(quán)限信息的驗證,一般需要自己實現(xiàn)。

細(xì)分功能

  • 1. Authentication:身份認(rèn)證/登錄(賬號密碼驗證)。
  • 2. Authorization:授權(quán),即角色或者權(quán)限驗證。
  • 3. Session Manager:會話管理,用戶登錄后的session相關(guān)管理。
  • 4. Cryptography:加密,密碼加密等。
  • 5. Web Support:Web支持,集成Web環(huán)境。
  • 6. Caching:緩存,用戶信息、角色、權(quán)限等緩存到如redis等緩存中。
  • 7. Concurrency:多線程并發(fā)驗證,在一個線程中開啟另一個線程,可以把權(quán)限自動傳播過去。
  • 8. Testing:測試支持;
  • 9. Run As:允許一個用戶假裝為另一個用戶(如果他們允許)的身份進(jìn)行訪問。
  • 10. Remember Me:記住我,登錄后,下次再來的話不用登錄了。

自定義認(rèn)證加密方式

/**
 * 自定義認(rèn)證加密方式
 */
public static class CustomCredentialsMatcher extends SimpleCredentialsMatcher {
  @Override
  public boolean doCredentialsMatch(AuthenticationToken authcToken, AuthenticationInfo info) {
    UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
    //加密類型,密碼,鹽值,迭代次數(shù)
    Object tokenCredentials = new SimpleHash("md5", password, username, 2).toHex();
    //數(shù)據(jù)庫存儲密碼
    Object accountCredentials = getCredentials(info);
    //將密碼加密與系統(tǒng)加密后的密碼校驗,內(nèi)容一致就返回true,不一致就返回false
    return equals(tokenCredentials, accountCredentials);
  }
}

第一種方式:配置Bean

/**
 * Shiro自帶密碼管理器
 *
 * @return HashedCredentialsMatcher
 */
@Bean
public HashedCredentialsMatcher hashedCredentialsMatcher() {
 //Shiro自帶加密
 HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher();
 //散列算法使用md5
 credentialsMatcher.setHashAlgorithmName("md5");
 //散列次數(shù),2表示md5加密兩次
 credentialsMatcher.setHashIterations(2);
 credentialsMatcher.setStoredCredentialsHexEncoded(true);
 return credentialsMatcher;
}

/**
 * 將自己的身份驗證器驗證方式加入容器
 *
 * @return CustomRealm
 */
@Bean
public CustomRealm shiroRealm() {
 CustomRealm shiroRealm = new CustomRealm();
 //shiroRealm.setCacheManager(cacheManager());
 //加入密碼管理
 //shiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());//Shiro自帶密碼管理器
 shiroRealm.setCredentialsMatcher(new CustomCredentialsMatcher());//自定義密碼管理器
 return shiroRealm;
}

第二種方式:實現(xiàn)AuthorizingRealm類setCredentialsMatcher方法

public class CustomRealm extends AuthorizingRealm {
 ...
 ...
 ...
  /**
   * 設(shè)置自定義認(rèn)證加密方式
   *
   * @param credentialsMatcher 默認(rèn)加密方式
   */
  @Override
  public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) {
  		//自定義認(rèn)證加密方式
    CustomCredentialsMatcher customCredentialsMatcher = new CustomCredentialsMatcher();
    // 設(shè)置自定義認(rèn)證加密方式
    super.setCredentialsMatcher(customCredentialsMatcher);
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring-session簡介及實現(xiàn)原理源碼分析

    spring-session簡介及實現(xiàn)原理源碼分析

    這篇文章主要介紹了spring-session簡介及實現(xiàn)原理源碼分析,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • IDEA開啟Run Dashboard的幾種方式

    IDEA開啟Run Dashboard的幾種方式

    Run Dashboard 是 IntelliJ IDEA 中的一個工具窗口,用于管理和監(jiān)視項目中正在運行的應(yīng)用程序和配置,它提供了一種集中管理運行和調(diào)試過程的方式,本文給大家介紹了IDEA開啟Run Dashboard的幾種方式,需要的朋友可以參考下
    2024-03-03
  • Spring思維導(dǎo)圖助你輕松學(xué)習(xí)Spring

    Spring思維導(dǎo)圖助你輕松學(xué)習(xí)Spring

    這篇文章主要為大家詳細(xì)介紹了Spring思維導(dǎo)圖,幫助你輕松學(xué)習(xí)Spring的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringBoot事務(wù)不回滾的解決方案

    SpringBoot事務(wù)不回滾的解決方案

    這篇文章主要介紹了SpringBoot事務(wù)不回滾的解決方案的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 一個合格JAVA軟件工程師應(yīng)該具備什么

    一個合格JAVA軟件工程師應(yīng)該具備什么

    一個合格JAVA軟件工程師應(yīng)該具備哪些專業(yè)技能,面試技巧是什么?本文為大家分享了2016版最新Java軟件工程師就業(yè)思維圖,感興趣的小伙伴們可以參考一下
    2016-11-11
  • 一文搞懂JAVA 修飾符

    一文搞懂JAVA 修飾符

    這篇文章主要介紹了JAVA 修飾符的的相關(guān)資料,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • SpringBoot淺析Redis訪問操作使用

    SpringBoot淺析Redis訪問操作使用

    Redis是一個速度非??斓姆顷P(guān)系數(shù)據(jù)庫(Non-Relational?Database),它可以存儲鍵(Key)與多種不同類型的值(Value)之間的映射(Mapping),可以將存儲在內(nèi)存的鍵值對數(shù)據(jù)持久化到硬盤,可以使用復(fù)制特性來擴(kuò)展讀性能,還可以使用客戶端分片來擴(kuò)展寫性能
    2022-11-11
  • java 排序算法之希爾算法

    java 排序算法之希爾算法

    這篇文章主要介紹了java 排序算法之希爾排序,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    這篇文章主要為大家分享了Eclipse創(chuàng)建java程序可執(zhí)行jar包教程,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Java page cache回寫機(jī)制案例詳解

    Java page cache回寫機(jī)制案例詳解

    這篇文章主要介紹了Java page cache回寫機(jī)制案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論