![](/img/trans.png)
[英]How do I configure Spring security to work on Virgo - using annotations?
[英]How do I configure a WebSecurityExpressionHandler with Spring security?
我有一個可以在Spring 3.0中正常運行的項目。 我現在已移至Maven以控制依賴性,並移至Spring 3.1.2 jar和Spring security 3.1.1 jar。
當我嘗試訪問包括使用安全性標簽庫(例如)的JSP時,出現以下錯誤:
javax.servlet.ServletException: javax.servlet.jsp.JspException: java.io.IOException: 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.
在我的安全上下文中,我有:
<http auto-config="true" use-expressions="true" create-session="ifRequired"
從我的舊項目中:
<beans:bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler" />
我在為我的項目准備的軟件包中找不到該類,因此認為這可能只是我嘗試過的類的移動:
<beans:bean id="expressionHandler" class="org.springframework.security.web.access.expression.WebSecurityExpressionHandler" />
這給了我同樣的錯誤。
我目前已配置的spring-security依賴項:spring-security-core-3.1.1 spring-security-taglibs-3.1.1 spring-security-acl-3.1.1 spring-security-config-3.1.1 spring-security -Web-3.1.1
我是否錯過了一個可以容納任何'use-expressions = true'需求的罐子?
從那以后,我對我的項目進行了許多更改,但我不確定100%確實解決了此問題,但下面列出了最有可能的競爭者:
更改了URL映射樣式,因此:
<!-- Spring Security < 3.1 These were inside the <http... > element <intercept-url pattern="/public/**" filters="none"/> <intercept-url pattern="/login" filters="none"/> <intercept-url pattern="/loggedOut" filters="none"/> <intercept-url pattern="/include/css/**" filters="none"/> <intercept-url pattern="/include/img/**" filters="none"/> -->
在security-context中的元素之前更改為以下:
<!-- for Spring-security >= 3.1 --> <http pattern="/public/**" security="none"/> <http pattern="/login" security="none"/> <http pattern="/loggedOut" security="none"/> <http pattern="/include/css/**" security="none"/> <http pattern="/include/img/**" security="none"/>
我的元素現在顯示為:
<http use-expressions="true" auto-config="true" create-session="ifRequired" access-denied-page="/accessDenied" >
我希望這可以幫助其他有類似問題的人從Spring Security 3.0-> 3.1遷移。
這是不正確的,我們使用攔截URL來控制角色訪問,但是您忽略了它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.