Configurer Spring Security pour utiliser UsernamePasswordAuthenticationFilter personnalisé
J'ai mis en œuvre mes propres LowerCaseUsernamePasswordAuthenticationFilter
c'est juste une sous-classe de UsernamePasswordAuthenticationFilter
.
Mais maintenant mon problème est comment configurer Spring security pour utiliser ce filtre.
Jusqu'à maintenant j'ai utilisé:
<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>
Dois-je vraiment à tour de auto-config
et que vous devez configurer tous les filtres à la main? - Si c'est vrai, quelqu'un peut donner un exemple s'il vous plaît?
La façon d'ajouter simplement un 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>
fait une exception avec ce message:
Problème de Configuration: permet de Filtrer les haricots
<lowerCaseUsernamePasswordAuthenticationFilter>
et de la Racine de haricot: la classe [org.springframework.de sécurité.web.l'authentification.UsernamePasswordAuthenticationFilter]; champ=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; principal=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null' ont le même "ordre" de la valeur. Lors de l'utilisation de filtres personnalisés, assurez-vous que les positions ne sont pas en conflit avec les filtres par défaut. Sinon, vous pouvez désactiver les filtres par défaut par retrait de l'enfant correspondant éléments de et en évitant l'utilisation de .
source d'informationauteur Ralph | 2011-10-11
Vous devez vous connecter pour publier un commentaire.
Je l'ai fait en écrivant le besoin configurée automatiquement les haricots à la main. C'est le résultat:
Voici un exemple en Scala. J'ai dû le faire pour remplacer un filtre fourni par Spring Security OAuth.
Fondamentalement, l'idée est d'injecter de l'
FilterChainProxy
et le filtre existant que vous souhaitez remplacer votre filtre. Trouver le filtre existant dans lefilterChainMap
et de le remplacer par le vôtre.