2012-04-20 3 views
0

질문 1 :콘솔 및 제한된 폴더의 스프링 보안 오류가 작동하지 않습니다.

저는 애플리케이션에서 스프링 보안을 설정했지만 지금은 약간 이상한 문제가 있습니다. 난 봄 보안에서 배운 것을 당신이

<sec:http auto-config="true" access-denied-page="/faces/accessDenied.xhtml"> 
    <sec:form-login login-page="/faces/login.xhtml" /> 
    <sec:intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" /> 
</sec:http> 

을이 설정 한 경우 귀하의 방법을 위의 코드 @RolesAllowed({"ROLE_ADMIN"})이 줄을 추가 할 필요가없는하지만 분명히 내가 "/ 얼굴에있는 페이지로 갈 수있다/admin "폴더를 봄 보안없이 로그인 페이지로 리디렉션합니다.

질문 2 :

난 내 방법 위의 @RolesAllowed({"ROLE_ADMIN"}) 코드를 가지고 때, (로그인 페이지로 저를 리디렉션하고 올바르게 작동하지만이 하나, 내가 오류 코드의 무리와 함께 내 콘솔에서 액세스 거부 오류가 발생했습니다 응용 프로그램은 여전히 ​​올바르게 실행됩니다). 콘솔에서 오류가 거부 된 액세스 권한을 얻었습니까? 그렇지 않은 경우 처리하는 가장 좋은 방법은 무엇입니까?

여전히 제한된 페이지 폴더를 갖고 싶기 때문에 admin 폴더에있는 모든 방법 위에 @RolesAllowed을 쓸 필요는 없습니다.

추신 : JSF 2.0 프로젝트입니다.

미리 감사드립니다.

답변

0

질문 1 : 귀하의 web.xml에 DelegatingFilterProxy가 누락되었다고 생각합니다.

<filter> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

을 그리고 아래와 같은 HTTP 요소를 구성 : 다음과 같이 구성

<http auto-config="true" > 
    <intercept-url pattern="/faces/login.xhtml*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
    <intercept-url pattern="/faces/admin/**" access="ROLE_ADMIN" /> 
    <access-denied-handler error-page="/faces/accessDenied.xhtml" /> 
    <form-login login-page='/faces/login.xhtml' default-target-url='/faces/index.xhtml' 
     always-use-default-target='true'/> 
</http> 

를 대신 액세스 거부 페이지 속성의 위의 속성이 사용되지 않는 한, 액세스 거부 핸들러를 사용합니다. Source

질문 2 : 로그 수준을 DEBUG (으)로 설정하고 처음으로 익명 사용자로 보호 된 리소스에 액세스하면 정상입니다. 이 1.3을 참조하십시오

+0

감사합니다, 유용한 답변을했습니다 :) – whizzkid

관련 문제