[SPRING] 스프링 보안 - 애플리케이션 컨텍스트에서 WebSecurityExpressionHandler 인스턴스를 찾을 수 없음
SPRING스프링 보안 - 애플리케이션 컨텍스트에서 WebSecurityExpressionHandler 인스턴스를 찾을 수 없음
사용자가 인증 된 경우에만 JSP 페이지에 로그 아웃 링크를 표시하는 데 문제가 있습니다. 다음은 JSP 페이지의이 줄에있는 예외입니다.
<sec:authorize access="isAuthenticated()">
예외:
Stacktrace:
....
root cause
javax.servlet.jsp.JspException: No visible WebSecurityExpressionHandler instance could be found in the application context. There must be at least one in order to support expressions in JSP 'authorize' tags.
org.springframework.security.taglibs.authz.AuthorizeTag.getExpressionHandler(AuthorizeTag.java:100)
org.springframework.security.taglibs.authz.AuthorizeTag.authorizeUsingAccessExpression(AuthorizeTag.java:58)
다음은 내 application-context-Security.xml입니다.
<http auto-config='true' >
<intercept-url pattern="/user/**" access="ROLE_User" />
<logout logout-success-url="/hello.htm" />
</http>
<beans:bean id="daoAuthenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<beans:property name="userDetailsService" ref="userDetailsService" />
</beans:bean>
<beans:bean id="authenticationManager"
class="org.springframework.security.authentication.ProviderManager">
<beans:property name="providers">
<beans:list>
<beans:ref local="daoAuthenticationProvider" />
</beans:list>
</beans:property>
</beans:bean>
<authentication-manager>
<authentication-provider user-service-ref="userDetailsService">
<password-encoder hash="plaintext" />
</authentication-provider>
</authentication-manager>
나는 http 태그에서 use-expression = "true"를 사용할 수 있다는 것을 이해하지만 이는 intercept-url 태그와 java 코드에서 expression을 사용해야한다는 것을 의미합니다. 해결 방법이 있습니까?
해결법
-
==============================
1.애플리케이션 컨텍스트에 하나만 추가 할 수 있습니다.
애플리케이션 컨텍스트에 하나만 추가 할 수 있습니다.
<bean id="webexpressionHandler" class="org.springframework.security.web.access.expression.DefaultWebSecurityExpressionHandler" />
가장 쉬운 방법은
구성에서 표현식을 활성화하는 것입니다. 그러면 하나가 추가됩니다. 이는 @Secured 어노테이션과 같은 자바 코드가 아닌 해당 블록 내에서 표현식을 사용해야한다는 것을 의미합니다.
from https://stackoverflow.com/questions/11594104/spring-security-no-visible-websecurityexpressionhandler-instance-could-be-foun by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Java 객체에 XML 엔티티 매핑하기 (0) | 2019.02.13 |
---|---|
[SPRING] Mongo가 자동으로 포트 27017 (로컬 호스트)에 연결하려고 시도합니다. (0) | 2019.02.13 |
[SPRING] 순환 뷰 경로 오류 봄 부팅 (0) | 2019.02.13 |
[SPRING] JMS 메시지 수신기 실행에 실패했으며 ErrorHandler가 설정되지 않았습니다. (0) | 2019.02.13 |
[SPRING] 최고의 Java REST API는 무엇입니까? [닫은] (0) | 2019.02.12 |