Apache shiro 클 러 스 터 구현 (2) shiro 의 INI 설정
아파 치 shiro 클 러 스 터 구현 (7) 분포 식 클 러 스 터 시스템 에서 - cache 공유
Apache shiro 클 러 스 터 구현 (8) 웹 클 러 스 터 시 session 동기 화 3 가지 방법
개술
INI 설정 파일 은 키 / value 의 키 값 으로 설정 을 분류 하 는 개념 을 제공 합 니 다. 각 클래스 의 키 는 중복 할 수 없습니다.이 예제 에서 저 희 는 INI 파일 을 사용 하여 Shiro Security Manager 를 설정 합 니 다. 우선 pom. xml 같은 디 렉 터 리 에 src / main / resources 하위 디 렉 터 리 를 만 들 고 이 하위 디 렉 터 리 에 shiro. ini 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
예 를 들 면:
# =======================
# Shiro INI
# =======================
[main]
#
# SecurityManager, Realms 。
[users]
# , 。( , )
[roles]
# ,( , )
-
[urls]
# web , url ,web 。
-
、
[main]
SecurityManager , Realm。
main 。
[main]
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
myRealm = com.company.security.shiro.DatabaseRealm
myRealm.connectionTimeout = 30000
myRealm.username = jsmith
myRealm.password = secret
myRealm.credentialsMatcher = $sha256Matcher
securityManager.sessionManager.globalSessionTimeout = 1800000
:
[main]
myRealm = com.company.shiro.realm.MyRealm
...
:
...
myRealm.connectionTimeout = 30000
myRealm.username = jsmith
...
...
myRealm.setConnectionTimeout(30000);
myRealm.setUsername("jsmith");
...
:
...
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
...
myRealm.credentialsMatcher = $sha256Matcher
...
myRealm.setCredentialsMatcher(sha256Matcher), 。
:
...
securityManager.sessionManager.globalSessionTimeout = 1800000
...
java
securityManager.getSessionManager().setGlobalSessionTimeout(1800000);
:
# 'cipherKey' Base64
- securityManager.rememberMeManager.cipherKey = kPH+bIxk5D2deZiIxcaaaA==
...
0x
securityManager.rememberMeManager.cipherKey = 0x3707344A4093822299F31D008
:
Array/Set/List setter,
sessionListener1 = com.company.my.SessionListenerImplementation
...
sessionListener2 = com.company.my.other.SessionListenerImplementation
...
securityManager.sessionManager.sessionListeners = $sessionListener1, $sessionListener2
Map
object1 = com.company.some.Class
object2 = com.company.another.Class
...
anObject = some.class.with.a.Map.property
anObject.mapProperty = key1:$object1, key2:$object2
key 。
anObject.map = $objectKey1:$objectValue1, $objectKey2:$objectValue2
...
:
。
...
myRealm = com.company.security.MyRealm
...
myRealm = com.company.security.DatabaseRealm
...
:
, SecurityManager , shiro SecurityManager , , , SecurityManager 。
...
securityManager = com.company.security.shiro.MyCustomSecurityManager
...
[users]
, /
[users]
admin = 123
lonestarr = 123, role1,
role2
darkhelmet = 123, role1,
role2
username = password, roleName1, roleName2, ..., roleNameN
[main]
...
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
...
iniRealm.credentialsMatcher = $sha256Matcher
...
[users]
# user1 = sha256-hashed-hex-encoded password, role1, role2, ...
user1 = 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b, role1, role2, ...
base64 , 。
[main]
...
# true = hex, false = base64:
sha256Matcher.storedCredentialsHexEncoded = false
[roles]
[roles]
# 'admin'
admin = *
# 'schwartz'
lightsaber
schwartz = lightsaber:*
# 'goodguy' winnebago 'drive'
'eagle5'
goodguy = winnebago:drive:eagle5
rolename = permissionDefinition1, permissionDefinition2, ..., permissionDefinitionN
[urls]
url , :“url= [ ], [ ], :
[urls]
- /admin/** = authc, roles[admin], perms["permission1"]
web
-
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.