Apache shiro 클 러 스 터 구현 (2) shiro 의 INI 설정

37005 단어
아파 치 shiro 집단 실현 (一) shiro 입문 소개 아파 치 shiro 집단 실현 (二) shiro 의 INI 설정 아파 치 shiro 집단 실현 (三) shiro 신분 인증 (Shiro Authentication) 아파 치 shiro 집단 실현 (四) shiro 권한 부여 (Authentication) -- 액세스 제어 아파 치 shiro 집단 실현 (五)분산 클 러 스 터 시스템 에서 사용 가능 한 높 은 session 솔 루 션 Apache shiro 클 러 스 터 구현 (6) 분산 클 러 스 터 시스템 에서 사용 가능 한 높 은 session 솔 루 션 - Session 공유
아파 치 shiro 클 러 스 터 구현 (7) 분포 식 클 러 스 터 시스템 에서 - cache 공유
Apache shiro 클 러 스 터 구현 (8) 웹 클 러 스 터 시 session 동기 화 3 가지 방법
개술
INI 설정 파일 은 키 / value 의 키 값 으로 설정 을 분류 하 는 개념 을 제공 합 니 다. 각 클래스 의 키 는 중복 할 수 없습니다.이 예제 에서 저 희 는 INI 파일 을 사용 하여 Shiro Security Manager 를 설정 합 니 다. 우선 pom. xml 같은 디 렉 터 리 에 src / main / resources 하위 디 렉 터 리 를 만 들 고 이 하위 디 렉 터 리 에 shiro. ini 파일 을 만 듭 니 다. 내용 은 다음 과 같 습 니 다.
예 를 들 면:

    
    
    
    
  1. # =======================
  2. # Shiro INI
  3. # =======================
  4. [main]
  5. #
  6. # SecurityManager, Realms
  7. [users]
  8. # , 。( , )
  9. [roles]
  10. # ,( , )
  11. [urls]
  12. # web , url ,web 。

[main]

SecurityManager , Realm。
main 。

    
    
    
    
  1. [main]
  2. sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
  3. myRealm = com.company.security.shiro.DatabaseRealm
  4. myRealm.connectionTimeout = 30000
  5. myRealm.username = jsmith
  6. myRealm.password = secret
  7. myRealm.credentialsMatcher = $sha256Matcher
  8. securityManager.sessionManager.globalSessionTimeout = 1800000

    
    
    
    
  1. [main]
  2. myRealm = com.company.shiro.realm.MyRealm
  3. ...

   
   
   
   
  1. ...
  2. myRealm.connectionTimeout = 30000
  3. myRealm.username = jsmith
  4. ...

    
    
    
    
  1. ...
  2. myRealm.setConnectionTimeout(30000);
  3. myRealm.setUsername("jsmith");
  4. ...

    
    
    
    
  1. ...
  2. sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
  3. ...
  4. myRealm.credentialsMatcher = $sha256Matcher
  5. ...
myRealm.setCredentialsMatcher(sha256Matcher), 。


    
    
    
    
  1. ...
  2. securityManager.sessionManager.globalSessionTimeout = 1800000
  3. ...
java

    
    
    
    
  1. securityManager.getSessionManager().setGlobalSessionTimeout(1800000);


    
    
    
    
  1. # 'cipherKey' Base64
  2. securityManager.rememberMeManager.cipherKey = kPH+bIxk5D2deZiIxcaaaA==
  3. ...
0x

    
    
    
    
  1. securityManager.rememberMeManager.cipherKey = 0x3707344A4093822299F31D008

Array/Set/List setter,


    
    
    
    
  1. sessionListener1 = com.company.my.SessionListenerImplementation
  2. ...
  3. sessionListener2 = com.company.my.other.SessionListenerImplementation
  4. ...
  5. securityManager.sessionManager.sessionListeners = $sessionListener1, $sessionListener2
Map

    
    
    
    
  1. object1 = com.company.some.Class
  2. object2 = com.company.another.Class
  3. ...
  4. anObject = some.class.with.a.Map.property
  5. anObject.mapProperty = key1:$object1, key2:$object2
key 。

    
    
    
    
  1. anObject.map = $objectKey1:$objectValue1, $objectKey2:$objectValue2
  2. ...


    
    
    
    
  1. ...
  2. myRealm = com.company.security.MyRealm
  3. ...
  4. myRealm = com.company.security.DatabaseRealm
  5. ...

, SecurityManager , shiro SecurityManager , , , SecurityManager

    
    
    
    
  1. ...
  2. securityManager = com.company.security.shiro.MyCustomSecurityManager
  3. ...

[users]

, /

    
    
    
    
  1. [users]
  2. admin = 123
  3. lonestarr = 123, role1, role2
  4. darkhelmet = 123, role1, role2

    
    
    
    
  1. username = password, roleName1, roleName2, ..., roleNameN

    
    
    
    
  1. [main]
  2. ...
  3. sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher
  4. ...
  5. iniRealm.credentialsMatcher = $sha256Matcher
  6. ...
  7. [users]
  8. # user1 = sha256-hashed-hex-encoded password, role1, role2, ...
  9. user1 = 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b, role1, role2, ...
base64 , 。

    
    
    
    
  1. [main]
  2. ...
  3. # true = hex, false = base64:
  4. sha256Matcher.storedCredentialsHexEncoded = false

[roles]


    
    
    
    
  1. [roles]
  2. # 'admin'
  3. admin = *
  4. # 'schwartz' lightsaber
  5. schwartz = lightsaber:*
  6. # 'goodguy' winnebago 'drive' 'eagle5'
  7. goodguy = winnebago:drive:eagle5

     
     
     
     
  1. rolename = permissionDefinition1, permissionDefinition2, ..., permissionDefinitionN

[urls]

url , :“url= [ ], [ ], :

    
    
    
    
  1. [urls]  
  2. /admin/** = authc, roles[admin], perms["permission1"]
web

    
    
    
    

좋은 웹페이지 즐겨찾기