사용자가 user:edit:1
권한을 가지고 있으며 주석 구동을 사용하는 경우 @RequiresPermissions("user:edit")
shiro가 예외를 throw하는 이유는 무엇입니까? 그 허락은 그들이 user:edit:1
을 가지고 있다는 사실에 의해 함축되어서는 안됩니까? 만약 내가 @RequriesPermissions("user:edit:1")
넣으면 다음 잘 작동하지만 작업의 컨텍스트에서 나는 나중에 무엇을 알 수 없습니다 그래서 나중에 메서드에서 확인할 수 있지만 모든 방법으로 들어가는 것을 피하고 싶습니다. 허가는 user:edit
입니다.Apache shiro 묵시적 사용 권한
0
A
답변
1
"user:edit"
은 "user:edit:1"
을 의미하지만 그 반대의 의미는 아닙니다. @RequiresPermissions("user:edit")
을 계속 사용하고 "1"을 확인할 수 있습니다. 와일드 카드 @RequiresPermissions("user:edit:*")
도 사용할 수 있습니다. 정확히 동일하지만 분명합니다. 나는 생각하지 않는다
3
는 ascandrolis의 대답은 시로 문서 상태 때문에, 올바른 :
그래서그러나 훨씬 덜 이상적인 런타임 검사에 대한 다음과 같습니다
if (SecurityUtils.getSubject().isPermitted("printer:print")) {
//print the document
}
왜? 두 번째 예제에서는 "다음 코드 블록을 실행하려면 모든 프린터로 인쇄 할 수 있어야합니다"라는 메시지가 표시되기 때문입니다. 그러나 "printer : print"는 "printer : print : *"와 같습니다.
@RequiresPermissions("user:edit:*")
가 주체가 모든 사용자가 편집 할 수 있어야
@RequiresPermissions("user:edit")
즉, 동일한 것을 의미한다.
관련 문제
- 1. Apache Shiro with LDAP
- 2. Apache FTPFile 사용 권한
- 3. ASP.NET MVC와 Apache Shiro 통합
- 4. Apache 서버 파일 사용 권한
- 5. django/apache 사용 권한 문제
- 6. Apache 및 PHP 폴더 사용 권한
- 7. 스프링 MVC, RESTful 서비스 및 Apache Shiro 전략
- 8. DB2 묵시적 십진수
- 9. grails shiro security
- 10. Apache Shiro 1.2-SNAPSHOT 및 Guice로 역할을 구성하는 방법은 무엇입니까?
- 11. PHP 폴더 사용 권한 문제
- 12. apache http-server와의 양방향 권한 부여
- 13. Shiro FormAuthenticationFilter 기본 질문
- 14. .egg의 사용 권한 문제. windows7/vista에서 easy_install의 사용 권한 문제
- 15. 폴더 사용 권한?
- 16. 파일 사용 권한 질문
- 17. 배포시 사용 권한 오류
- 18. 레지스트리 사용 권한 변경
- 19. 필요한 사용 권한
- 20. IIS 파일 사용 권한
- 21. Oracle 트리거 사용 권한
- 22. 파일 사용 권한 확인
- 23. PHP 및 사용 권한
- 24. 사진보기의 사용 권한
- 25. 폴더 사용 권한
- 26. 사이트 사용 권한 만
- 27. Mac OSX에서의 사용 권한
- 28. 레지스트리 사용 권한
- 29. 사용 권한 모델
- 30. 서비스에 대한 사용 권한
질문과 대답 및 설명서를 다시 읽고주의 깊게 읽고 사용자가 "가지고있는 것", "필요한 것"및 개발자가 미리 알고있는 정보에 유의하십시오. – ascandroli
미안해, 내 대답이 분명하지 않은 것처럼 느껴진다면. 내가 말하고자하는 것은 "user : edit"와 "user : edit : *"라는 두 가지 권한은 100 % 동등하므로 후자를 사용하기위한 제안은 보안 예외를받는 운영자의 문제를 해결하지 못한다는 것입니다. 그냥 (나처럼) 직접 해보십시오. – martin
대안은 [this]와 유사 할 수 있습니다 (http://blog.42.nl/articles/spring-security-accessing-spring-beans-from-your-security-annotations) : 사용자 정의에서 시로 체크하기 bean을 호출하고 주석을 통해 호출하거나 어쩌면 더 좋을 수도 있습니다. 사용자 지정 [WebSecurityExpressionRoot] (http://static.springsource.org/spring-security/site/docs/3.1.x/apidocs/org/springframework/security/)을 사용하여 web/access/expression/WebSecurityExpressionRoot.html)을 사용하면 http-request에 액세스 할 수 있으므로 클라이언트가 제공 한 ID를 얻을 수 있습니다. – martin