J'essaie d'obtenir Tuckey Urrrewritefilter pour ranger les URL pour mon webApp. Un problème que j'ai obtenu est que lorsque Spring-Security remarque qu'un utilisateur anonyme tente d'accéder à une ressource protégée, il redirige vers une URL qui inclut le chemin de servlet.
Ce que je voudrais, c'est, par exemple: p> Qu'est-ce que je reçois actuellement est: p> documents pertinents que j'ai trouvés jusqu'à présent: p> Defaultredirectstrategy, qui fait le réorientation réelle en question: http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/defaultreprateStrategy.html . Il a une propriété contextrale qui est tentante mais je ne pense pas que je vais le couper, si je peux même trouver un moyen de la configurer. P> Un poteau de blog qui a aidé à me faire aussi loin: http://nonrepeatable.blogspot.com/2009/11/ Utilisation-Spring-Security-with-tuckey.html P> Qu'est-ce que j'aimerais savoir est: p>
web.xml code> ressemble à p>
urlrewrite.xml code> ressemble à: p >
<http auto-config="true">
<!-- allow GET requests to /login without authentication -->
<intercept-url pattern="/-/login" method="GET" filters="none"/>
<intercept-url pattern="/-/admin/**" access="ROLE_ADMIN"/>
<intercept-url pattern="/-/**" access="ROLE_USER"/>
<form-login login-page="/-/login"
login-processing-url="/-/login.do"
authentication-failure-url="/-/login?login_error"
default-target-url="/-/index"
always-use-default-target="true"/>
<logout logout-url="/-/logout"
logout-success-url="/-/login"/>
<access-denied-handler error-page="/-/access-denied"/>
</http>
4 Réponses :
Je n'ai jamais utilisé de tuckey, mais après un regard rapide sur la documentation, j'essaierais d'ajouter une règle pour le boîtier de connexion: edit strong>
Ok, et quelque chose comme ceci: p>
Le problème n'est pas que des demandes entrantes ne sont pas réécrites, mais plutôt que des en-têtes d'emplacement sortant dans le cadre d'une redirection ne sont pas réécrites. Depuis depuis, j'ai parcouru qu'une règle sortante avec le protocole complet, l'hôte, le port, le contexte, etc. attrapera l'en-tête de localisation, mais cela n'est pas génial non plus.
J'ai examiné cette question pour notre projet l'année dernière et, à ce moment-là, le problème était que Tucky ne coopérait pas avec Response.encoderedirecturl () pour réécrire les URL de redirection. Je les ai contactés mais je n'ai pas suivi à ce sujet.
Ma solution consistait à permettre à l'URL désordonnée de revenir au client, mais puis de le nettoyer avec une règle de redirection tunchy (une seconde redirection). P>
Ajoutez une autre règle correspondant à votre URL laid de la sécurité redirige et émettez votre propre redirection à l'URL propre: p> Oui, il implique deux redirections, mais la Le client ne le verra jamais ... ce qui est probablement le point. P> p>
Sécurité de printemps fait la redirection avec une URL absolue comme essayer d'utiliser une règle sortante sans le http://example.org/-/login code>
^ Début de String Code> Marqueur pour correspondre à l'URL absolue générée par le ressort. P>
<outbound-rule>
<from>/-/login(.*)$</from>
<to>/login$1</to>
</outbound-rule>
J'ai couru dans le même problème, mais cela semble fixé dans la version 3.2.0 de Tuckey. c'est-à-dire la réponse.encoderedirecturl () est maintenant enveloppé par Tuckeys UrrrewriteWrappeResponse où l'exécution de la règle sortante a lieu. P>
et régler l'attribut de la page de connexion à / Connexion?