我已经实现了我自己的LowerCaseUsernamePasswordAuthenticationFilter
,它只是UsernamePasswordAuthenticationFilter
的一个子类。配置Spring Security以使用自定义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>
并导致与该消息的异常:
配置问题:过滤豆
<lowerCaseUsernamePasswordAuthenticationFilter>
和“根bean:类[ org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter];范围=;抽象= FALSE; lazyInit = FALSE; autowireMode = 0; dependencyCheck = 0; autowireCandidate = TRUE;初级= FALSE; factoryBeanName = NULL; factoryMethodName = NULL; initMethodName = NULL; destroyMethodName = null'具有相同的'order'值。 使用自定义过滤器时,请确保位置与默认过滤器不冲突。或者,您可以通过删除相应的子元素并避免使用,来禁用默认过滤器。