我必须将应用程序从Spring Security 2迁移到3.2并且我完全丢失了,我从未使用过Spring安全性:(
我在spring-security.xml上修改了一些配置:
<http pattern="/ordreminderform.jsp" security="none" />
<http pattern="/passwordreminder.jsp" security="none" />
<http pattern="/getUser.jsp" security="none" />
<http pattern="/csra2.css" security="none" />
<http auto-config="true" access-denied-page="/accessDenied.jsp">
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/index.jsp"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
<intercept-url pattern="/Users.do" access="ROLE_ADMIN" />
<intercept-url pattern="/Project.do"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
<intercept-url pattern="/Csra.do"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
<intercept-url pattern="/About.do"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
<session-management session-fixation-protection="newSession">
<concurrency-control max-sessions="1"
error-if-maximum-exceeded="false" />
</session-management>
<form-login login-page="/login.jsp"
authentication-failure-url="/login.jsp?login_error=true"
username-parameter="username" password-parameter="password"
default-target-url="/index.jsp" always-use-default-target="true" />
</http>
<http>
<intercept-url pattern="/usuarios/**"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
<!--<intercept-url pattern="/**" -->
<!-- access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" /> -->
</http>
<http pattern="/imagens/**" security="none" />
<http pattern="/js/**" security="none" />
<http pattern="/css/**" security="none" />
<http pattern="/fonts/**" security="none" />
<http>
<intercept-url pattern="/**"
access="ROLE_USER,ROLE_ADMIN,ROLE_B1,ROLE_B2,ROLE_B3" />
</http>
当我尝试部署它时,它会抛出:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem:No AuthenticationEntryPoint could be established. Please make sure you have a login mechanism configured through the namespace (such as form-login) or specify a custom AuthenticationEntryPoint with the 'entry-point-ref' attribute |Offending resource: class path resource [spring-security-config.xml]
这很奇怪,因为我确实有表格登录! .xml是一团糟,我试图让它变得更好。我使用Spring * 3.1.0和Spring Security 3.2.3
谢谢!
答案 0 :(得分:3)
您有三个<http>
块正在创建三个单独的安全过滤器链(即,您没有使用security='none'
来绕过特定URL的安全性)。
这些都没有&#34;模式&#34;属性,这意味着它们都将被配置为处理所有请求,这是没有意义的。这些块中的第二个和第三个没有配置身份验证方法。这些中的任何一个都会导致您获得的错误。 form-login
仅适用于包含它的http
元素。
只需使用一个<http>
元素即可包含您要应用的所有intercept-url
个配置,除非您特别希望针对不同的网址模式使用不同的安全配置。