[SPRING] 스프링 보안은 "? 매개 변수"형식과 일치 할 수 없습니까?
SPRING스프링 보안은 "? 매개 변수"형식과 일치 할 수 없습니까?
스프링 보안을 사용하여 웹을 보호합니다.
<intercept-url pattern="/userses?form" access="hasRole('ROLE_ADMIN')" />
그것은 당신이 ADMIN 권한을 얻기 위해 먼저 로그인을해야만 Users 객체를 생성하고자 할 때를 의미합니다. 그러나 실제로 그것은 효과가 없었습니다. 로그 확인 :
2012-05-06 11:39:11,250 [http-8088-7] DEBUG org.springframework.security.web.util.AntPathRequestMatcher - Checking match of request : '/userses'; against '/userses?form'
프레임 워크는 / userses 대신에 / userses 형식을 사용하여 문자열을 비교하지 않고 건너 뛴 인증 프로세스와 비교합니다. 이것을 확인하기 위해 또 다른 URL을 시도해보십시오.
<intercept-url pattern="/userses/abc" access="hasRole('ROLE_ADMIN')" />
나는 / userses / abc를 요청했는데, 사용자가 승인되지 않았 음을 감지하고 / login 페이지로 이동하여 로그를 확인했습니다 :
2012-05-06 11:46:44,343 [http-8088-7] DEBUG org.springframework.security.web.util.AntPathRequestMatcher - Checking match of request : '/uesrses/abc'; against '/userses/abc'
그래서 내 질문은 : 스프링 3 지원 "매개 변수"패턴을 지원하지 않거나 내가 이것을 지원하기 위해 뭔가를 놓쳤는가? 추신 : 모든 코드는 수정없이 roo에 의해 생성되며, 왜 작동하지 않는지 궁금합니다.
해결법
-
==============================
1.기본적으로 스프링 보안은 매개 변수와 일치 할 수없는 개미 스타일 매칭을 사용합니다. 그러나 정규식 일치는 매개 변수와 일치 할 수 있습니다.
기본적으로 스프링 보안은 매개 변수와 일치 할 수없는 개미 스타일 매칭을 사용합니다. 그러나 정규식 일치는 매개 변수와 일치 할 수 있습니다.
다음과 같이 정의 해보십시오.
<http request-matcher="regex"> <security:intercept-url pattern="\A/userses\?form.*\Z" access="hasRole('ROLE_ADMIN')" /> </http>
Roo가 자동으로이 작업을 수행하지 않는 이유를 모릅니다. 그것이해야하는 것처럼 보입니다.
-
==============================
2.이 동작은 사용중인 "요청 - 일치 자"에 의해 정의됩니다. 설명서에 표시된대로 기본값은 AntPathRequestMatcher를 사용하도록 지정하는 "ant"이며, 대신 "Regex"인 RegexRequestMatcher입니다. javadocs (링크 된)는 전자가 요청의 "servletPath + pathInfo"와 일치하고 후자가 "servletPath + pathInfo + queryString"과 일치한다는 사실을 포함하여 matchers에 대한 세부 사항을 제공합니다.
이 동작은 사용중인 "요청 - 일치 자"에 의해 정의됩니다. 설명서에 표시된대로 기본값은 AntPathRequestMatcher를 사용하도록 지정하는 "ant"이며, 대신 "Regex"인 RegexRequestMatcher입니다. javadocs (링크 된)는 전자가 요청의 "servletPath + pathInfo"와 일치하고 후자가 "servletPath + pathInfo + queryString"과 일치한다는 사실을 포함하여 matchers에 대한 세부 사항을 제공합니다.
from https://stackoverflow.com/questions/10467930/spring-security-cannot-match-parameter-format by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] SpringPersistenceUnitInfo :: AbstractMethodError (0) | 2019.01.06 |
---|---|
[SPRING] 스프링 부트 PasswordEncoder 오류 (0) | 2019.01.06 |
[SPRING] Java 8 LocalDate MappingException을 사용하는 Spring 데이터 MongoDB (0) | 2019.01.06 |
[SPRING] Spring에서 정적 메서드를 가로 채기하는 방법? (0) | 2019.01.06 |
[SPRING] Java Config (no xml)에 SaltSource 등록하는 방법 (0) | 2019.01.06 |