He implementado mi propio LowerCaseUsernamePasswordAuthenticationFilter
que es solo una subclase de UsernamePasswordAuthenticationFilter
.Configurar Spring Security para usar CustomnamePasswordAuthenticationFilter
Pero ahora mi problema es cómo configurar la seguridad Spring para utilizar este filtro.
Hasta ahora he utilizado:
<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>
es lo que realmente a su vez de auto-config
y la necesidad de configurar todos los filtros de la mano? - Si esto es cierto, ¿alguien puede dar un ejemplo, por favor?
La manera de añadir simplemente una 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>
da lugar a una excepción con ese mensaje:
Configuración problema: los granos de filtro
<lowerCaseUsernamePasswordAuthenticationFilter>
y 'frijol Raíz: Clase [ org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter]; alcance =; abstracto = falso; lazyInit = false; autowireMode = 0; dependencyCheck = 0; autowireCandidate = true; primario = falso; factoryBeanName = null; factoryMethodName = null; initMethodName = null; destroyMethodName = null 'tiene el mismo valor de' orden '. Al utilizar filtros personalizados, asegúrese de que las posiciones no entren en conflicto con los filtros predeterminados. Alternativamente, puede desactivar los filtros predeterminados quitando los elementos secundarios correspondientes y evitando el uso de.