日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java web shiro_javase和javaweb环境下shiro的搭建

發布時間:2025/7/14 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web shiro_javase和javaweb环境下shiro的搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shiro-1

javase環境下搭建shiro

1.導入jar包

2.配置文件:存儲臨時文件

shiro.ini文件:存儲數據,用戶名,密碼,角色,權限

3.代碼

// 1.獲取安全管理器

Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini");

SecurityManager securityManager = factory.getInstance();

// 2.設置安全管理器

SecurityUtils.setSecurityManager(securityManager);

// 3.獲取subject對象,即要登錄的對象

Subject subject = SecurityUtils.getSubject();

spring與shiro集成

1.導入jar包

2.搭建好spring,springmvc

3.搭建shiro環境

1.web.xml

shiroFilter

org.springframework.web.filter.DelegatingFilterProxy

targetFilterLifecycle

true

shiroFilter

/*

2.在spring.xml中進行相關配置

shiro配置的核心:spring.xml歐中配置的一個bean

web.xml中DelegatingFilterProxy作用:入口,完成servlet容器到ioc容器的關聯,到spring容器中找filter-name相同名字的bean實例

如果沒有配置targetBeanName屬性,則filter-name必須與bean的name相同

表單提交的數據封裝到 usernamePasswordToken 數據庫查詢到的數據封裝到SimpleAuthenticationInfo

加密:MD5, SHA1

1.存儲數據時需要將用戶輸入的明文繼續加密(Hibernate當中涉及md5加密) (Ream.java)

//將存入數據庫的密碼進行MD5加密

SimpleHash sh = new SimpleHash("md5", credentials, null, 2019);

2.前端用戶輸入的值,進行加密,string字符串經過md5加密(spring.xml)

class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">

鹽值加密:原有加密的基礎上加密(兩個相同密碼在數據庫存儲的值還是不一樣)

1.前端token當中獲取的密碼應該進行鹽值加密

ByteSource salt = ByteSource.Util.bytes(principal);

new SimpleAuthenticationInfo(principal, sh, salt, realmName);

2.數據庫中的值進行鹽值加密

new SimpleHash("md5", credentials, salt, 2019);

多Realm獲取數據:將一個密碼存放在多個數據庫中,建立多個Realm,并且每個realm使用不同的加密方式,在subject.login中會進行多個realm的調用,執行多次驗證,提高數據安全性

1.第一種方法:

2.第二種方法:通過ModularRealmAuthenticator認證器

shiro認證策略:多個realm訪問多個數據庫,如何判斷是否登錄成功

1.FirstSucessfulStrategy 第一個realm認證成功就算成功

2.AtLeastOneSuccessfulStrategy 多個realm認證時,一個成功代表成功(默認)

3.AllSuccessfulStrategy 多個realm認證時,全部成功才代表成功

授權:控制哪一個用戶可以訪問哪一個web資源

1.編程式

if(subect.hasRole){

//有權限

}else{

//沒有權限

}

2.注解式:通過在執行的java方法上注解

@RequireRoles("admin")

public void hello(){

//有權限

}

3.jsp/gsp標簽

有權限

1.在FilterChainDefinitions中定義web資源對應角色

web資源=roles[角色名稱]

/admin.jsp=roles[admin]

2.一個用戶進行登錄認證成功之后,之中還是要查找認證成功的角色擁有什么角色.realm可以和數據庫交互,獲取指定認證成功的用戶對應的角色

1.我們可以自定義一個Realm,繼承AuthorizingRealm,認證和授權

2.在ioc容器配置指定的Realm的bean實例(授權器)

3.告知securityManager使用哪一個授權管理器

參考視頻:點擊我

總結

以上是生活随笔為你收集整理的java web shiro_javase和javaweb环境下shiro的搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。