2013-06-25 2 views
0

내 프로젝트에서 Apache shiro를 사용하고 있습니다. 그것은 URL을 필터링하는 몇 가지 기본 필터를 제공합니다. 이제 URL 필터링에 관한 문제를 발견하게되었습니다. API가 '/ rest/user/info'와 같은 경우 해당 메소드가 인 경우이 API를 다른 사용자가 방문 할 수 있지만 POST이면 관리자가 방문 할 수 있습니다. 나는 dafault 필터 'rest'를 찾았지만 아무것도 도움이되지 않습니다. 누구라도 조언을 해줄 수 있습니까? 감사. 이 같은아파치 시로 방법에 따라 API를 필터링하는 방법?

답변

0

설정 :

<property name="filterChainDefinitions"> 
    <value> 
    /login = authc 
    /logout = logout 
    /rest/user/info = rest[user:info] 
    </value> 
</property> 
  1. 포스트/휴식/사용자/정보는 파마를 필요로 [사용자 : 정보 : 작성]
  2. GET/휴식/사용자/정보는 파마 [사용자 필요 : 정보 : 읽기]
  3. ...

관리자 파마 [사용자가 제공 : 정보는 : 생성] 및 당에게 ms [user : info : read], 다른 사용자에게 perms [user : info : read] 만 제공하십시오. Realm의 doGetAuthorizationInfo 메소드에서 사용자의 권한을 설정하십시오.

protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { 
     SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); 
     info.addStringPermission("user:info:create"); 
     info.addStringPermission("user:info:read"); 
     return info; 
    } 
+0

죄송합니다. 몇 가지 이유 때문에 늦어서 답변드립니다. 예를 들어서 다시 읽으십시오. 도움이되는 정보를 찾았습니다. 감사합니다. 감사합니다. – aldrich