롤 패턴 문의
- 작성자 :
- 이*성
- 작성일 :
- 2014-10-22 10:40:10
- 조회수 :
- 1,058
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕 하세요!
스프링 3.0 사용중입니다.
시큐리티 롤 패턴을 정규식으로 설정하였는데 AntPathRequestMatcher 로 인식을 하는것 같습니다.
정규식으로 안되서 현재 '/**' 를 ROLE_USER에 설정을 했죠. 그러니까 로그인 체크가 되더군요
설정은
<http access-denied-page="/system/accessDenied.do" request-matcher="regex">
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/uat/uia/egovLoginUsr.do?login_error=1"
default-target-url="/uat/uia/actionMain.do"
login-page="/uat/uia/egovLoginUsr.do" />
<logout logout-success-url="/uat/uia/egovLoginUsr.do"/>
<custom-filter before="FORM_LOGIN_FILTER" ref="authenticationFilter"/>
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="filterSecurityInterceptor"/>
</http>
실행 시킨 LOG 입니다.
[o.s.s.web.util.AntPathRequestMatcher] Checking match of request : '/uat/uia/egovloginusr.do'; against '**/sym/ccm/ccc/egovccmcmmnclcodelist.do**'
[o.s.s.web.util.AntPathRequestMatcher] Request '/uat/uia/egovloginusr.do' matched by universal pattern '/**'
[o.s.s.web.access.intercept.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /uat/uia/egovLoginUsr.do; Attributes: [ROLE_USER]
[o.s.s.web.access.intercept.FilterSecurityInterceptor] Previously Authenticated: o.s.s.authentication.AnonymousAuthenticationToken@6faeba70: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: o.s.s.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: E152B1745FA3DBEA8692AAE7130E1025; Granted Authorities: ROLE_ANONYMOUS
[o.s.s.access.vote.AffirmativeBased] Voter: o.s.s.access.vote.RoleVoter@22d5b5, returned: -1
[o.s.s.access.vote.AffirmativeBased] Voter: o.s.s.access.vote.AuthenticatedVoter@fc7ceb, returned: 0
[o.s.s.web.access.ExceptionTranslationFilter] Access is denied (user is anonymous); redirecting to authentication entry point
위와 같이 뜨는데요~ 제가 보기엔 AntPathRequestMatcher 로 실행이 되네요 ㅡㅡ;
왤까요 ㅡㅡ;
스프링 3.0 사용중입니다.
시큐리티 롤 패턴을 정규식으로 설정하였는데 AntPathRequestMatcher 로 인식을 하는것 같습니다.
정규식으로 안되서 현재 '/**' 를 ROLE_USER에 설정을 했죠. 그러니까 로그인 체크가 되더군요
설정은
<http access-denied-page="/system/accessDenied.do" request-matcher="regex">
<form-login login-processing-url="/j_spring_security_check"
authentication-failure-url="/uat/uia/egovLoginUsr.do?login_error=1"
default-target-url="/uat/uia/actionMain.do"
login-page="/uat/uia/egovLoginUsr.do" />
<logout logout-success-url="/uat/uia/egovLoginUsr.do"/>
<custom-filter before="FORM_LOGIN_FILTER" ref="authenticationFilter"/>
<custom-filter before="FILTER_SECURITY_INTERCEPTOR" ref="filterSecurityInterceptor"/>
</http>
실행 시킨 LOG 입니다.
[o.s.s.web.util.AntPathRequestMatcher] Checking match of request : '/uat/uia/egovloginusr.do'; against '**/sym/ccm/ccc/egovccmcmmnclcodelist.do**'
[o.s.s.web.util.AntPathRequestMatcher] Request '/uat/uia/egovloginusr.do' matched by universal pattern '/**'
[o.s.s.web.access.intercept.FilterSecurityInterceptor] Secure object: FilterInvocation: URL: /uat/uia/egovLoginUsr.do; Attributes: [ROLE_USER]
[o.s.s.web.access.intercept.FilterSecurityInterceptor] Previously Authenticated: o.s.s.authentication.AnonymousAuthenticationToken@6faeba70: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: o.s.s.web.authentication.WebAuthenticationDetails@fffbcba8: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: E152B1745FA3DBEA8692AAE7130E1025; Granted Authorities: ROLE_ANONYMOUS
[o.s.s.access.vote.AffirmativeBased] Voter: o.s.s.access.vote.RoleVoter@22d5b5, returned: -1
[o.s.s.access.vote.AffirmativeBased] Voter: o.s.s.access.vote.AuthenticatedVoter@fc7ceb, returned: 0
[o.s.s.web.access.ExceptionTranslationFilter] Access is denied (user is anonymous); redirecting to authentication entry point
위와 같이 뜨는데요~ 제가 보기엔 AntPathRequestMatcher 로 실행이 되네요 ㅡㅡ;
왤까요 ㅡㅡ;
A
안녕하세요. 이기성님.
실제 http element에 지정되는 request-matcher의 경우는 해당 http 부분을 처리하기 위한 패턴으로 내부 DB 정보상에 정의하신 패턴 매칭과는 다릅니다.
즉, regex 방식을 사용하시려면 context-security.xml 상에 첫번째 securedObjectService의 requestMatcherType을 regext로 지정하셔야 합니다. (현재는 주석처리되어 있어 기본인 ant로 처리됨)
<beans:bean id="securedObjectService" class="egovframework.com.sec.security.securedobject.impl.SecuredObjectServiceImpl">
<beans:property name="securedObjectDAO" ref="securedObjectDAO"/>
<beans:property name="requestMatcherType" value="regex"/> <!-- default : ant -->
</beans:bean>
그럼, 즐거운 하루되십시오.
감사합니다.
실제 http element에 지정되는 request-matcher의 경우는 해당 http 부분을 처리하기 위한 패턴으로 내부 DB 정보상에 정의하신 패턴 매칭과는 다릅니다.
즉, regex 방식을 사용하시려면 context-security.xml 상에 첫번째 securedObjectService의 requestMatcherType을 regext로 지정하셔야 합니다. (현재는 주석처리되어 있어 기본인 ant로 처리됨)
<beans:bean id="securedObjectService" class="egovframework.com.sec.security.securedobject.impl.SecuredObjectServiceImpl">
<beans:property name="securedObjectDAO" ref="securedObjectDAO"/>
<beans:property name="requestMatcherType" value="regex"/> <!-- default : ant -->
</beans:bean>
그럼, 즐거운 하루되십시오.
감사합니다.