[SPRING] 봄 보안에 차단 - URL 패턴 주문
SPRING봄 보안에 차단 - URL 패턴 주문
appSecurity.xml에서 나는이있다 :
차단 - URL 패턴 = "/ 사용자 / 프로필 / **"액세스 = "hasRole ( 'VIEW_PROFILES')".
차단 - URL 패턴 = "/ 사용자 / 프로필 / 편집 / **"액세스 = "hasRole ( 'EDIT_PROFILES')"
나는 페이지 / 사용자 / 프로필 / 편집 / addnew 가지고 역할 VIEW_PROFILES와 사용자가이 페이지에 액세스하려고 할 때, 그는 성공적으로 얻을 수 있지만 역할이 사용자에 대한 접근이 차단 EDIT_PROFILES.
내가 무슨 일을하고 있어요?
해결법
-
==============================
1.이후 "/ 사용자 / 프로필 / 편집 /" "/ 사용자 / 프로필 /"보다 더 구체적이고,이 목록의 상위에 위치해야합니다.
이후 "/ 사용자 / 프로필 / 편집 /" "/ 사용자 / 프로필 /"보다 더 구체적이고,이 목록의 상위에 위치해야합니다.
왜
출처 : 핵심 보안 필터
-
==============================
2.존 패럴리와 Ritesh 모두 정확합니다. 절편-URL 패턴은 나열된 순서대로 일치합니다. 즉시 일치하는 항목이 발견 될 때, 지정된 패턴의 나머지는 무시됩니다. 이전보다 구체적인 패턴을 나열해야하는 이유입니다.
존 패럴리와 Ritesh 모두 정확합니다. 절편-URL 패턴은 나열된 순서대로 일치합니다. 즉시 일치하는 항목이 발견 될 때, 지정된 패턴의 나머지는 무시됩니다. 이전보다 구체적인 패턴을 나열해야하는 이유입니다.
귀하의 경우, 대한 / 사용자 / 프로필 / 편집 / somepage 패턴은 최초의 요격 - URL 패턴에 지정된 패턴과 일치하는, 그래서 봄은 적절하게 해당 사용자가 지정한 액세스 역할이 있는지 확인하고 있습니다. 분명히, 당신의 EDIT_PROFILES 사용자는 VIEW_PROFILES 권한을 가지고 있지 않기 때문에 그들은 액세스가 거부되고있다. 마찬가지로, 당신의 의도는 EDIT_PROFILES 기관이 VIEW_PROFILES 권한이있는 사용자에게 액세스 권한을 부여 이전 문에 의해 훼손되고있는 사용자에 ../edit/에 대한 액세스를 제한 할 수 있습니다.
쉽게 수정을위한 순서를 전환하고 당신은 아마 (EDIT_PROFILES 기관에 추가로) 당신의 EDIT_PROFILES 사용자 VIEW_PROFILES 권한을주고 싶다. 그런 다음, 액세스 문을 단순화하기 위해, 액세스 = "hasAnyRole ( 'REQUIRED_ROLE')"보다는 접근 = "hasRole ( 'REQUIRED_ROLE을')"사용하는 것이 좋습니다.
-
==============================
3.당신의 EDIT_PROFILES 규칙이 VIEW_PROFILES 규칙 위에 있는지 확인합니다. 당신이 VIEW_PROFILES에 대한 표현을 살펴 경우, 당신은 EDIT_PROFILES을 일치합니다 모든 URL이 포함되어 있음을 볼 수 있습니다. 즉, VIEW_PROFILES 규칙이 처음 인 경우, 스프링 보안이 EDIT_PROFILES 규칙을하려고 귀찮게하지 않습니다 것을 의미합니다.
당신의 EDIT_PROFILES 규칙이 VIEW_PROFILES 규칙 위에 있는지 확인합니다. 당신이 VIEW_PROFILES에 대한 표현을 살펴 경우, 당신은 EDIT_PROFILES을 일치합니다 모든 URL이 포함되어 있음을 볼 수 있습니다. 즉, VIEW_PROFILES 규칙이 처음 인 경우, 스프링 보안이 EDIT_PROFILES 규칙을하려고 귀찮게하지 않습니다 것을 의미합니다.
from https://stackoverflow.com/questions/15998746/order-of-intercept-url-patterns-in-spring-security by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 통합 - HTTP 아웃 바운드 게이트웨이와 POST 매개 변수를 전송하는 방법 (0) | 2019.10.04 |
---|---|
[SPRING] 중복 스프링 배치 작업 인스턴스 (0) | 2019.10.04 |
[SPRING] QueryDsl는 - 어떻게 받는다는와 Q 클래스를 만드는 방법? (0) | 2019.10.04 |
[SPRING] REST API에 대한 JSON 응답에 필드를 제한? (0) | 2019.10.04 |
[SPRING] 조건 검색 필터를 구현 (0) | 2019.10.04 |