【发布时间】:2011-12-05 08:57:54
【问题描述】:
我已经实现了自己的LowerCaseUsernamePasswordAuthenticationFilter,它只是UsernamePasswordAuthenticationFilter 的子类。
但现在我的问题是,如何配置 Spring 安全性以使用此过滤器。
到现在我用过:
<security:http auto-config="true" use-expressions="true">
<security:form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t" />
<security:logout logout-url="/resources/j_spring_security_logout" />
<security:intercept-url pattern="/**" access="isAuthenticated()" requires-channel="${cfma.security.channel}" />
</security:http>
我真的要关闭auto-config 并需要手动配置所有过滤器吗? - 如果这是真的,有人可以提供一个例子吗?
简单的添加security:custom-filter的方法:
<security:http ...>
<security:form-login login-processing-url="/resources/j_spring_security_check" login-page="/login" authentication-failure-url="/login?login_error=t" />
<security:custom-filter ref="lowerCaseUsernamePasswordAuthenticationFilter" position="FORM_LOGIN_FILTER"/>
...
</security:http>
确实会导致该消息出现异常:
配置问题:过滤bean
<lowerCaseUsernamePasswordAuthenticationFilter>和'Root bean: class [org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter];范围=;摘要=假;懒惰初始化=假;自动线模式=0;依赖检查=0;自动接线候选=真;主要=假;工厂BeanName=空;工厂方法名=空;初始化方法名=空; destroyMethodName=null' 具有相同的 'order' 值。 使用自定义过滤器时,请确保位置不与默认过滤器冲突。或者您可以通过删除相应的子元素并避免使用来禁用默认过滤器。
【问题讨论】:
标签: java spring spring-security