2013-05-22 2 views
3

J'essaie d'utiliser Spring Security v3.2 pour un projet. À l'heure actuelle, j'utilise toujours un fichier coldfusion qui appelle d'autres fichiers pour construire la vue. Donc, toutes mes urls vont à travers index.cfm?blablah.Sécurité de printemps 3 pattern d'interception-url avec index

Maintenant, je suis bloqué avec permettre à l'utilisateur anonyme d'entrer dans la vue d'accueil. A la suite Spring Security request matcher is not working with regex, je compose le code:

<http use-expressions="true"> 
    <intercept-url pattern="^.*index.cfm\?action=home.*$" access="permitAll" /> 
    <intercept-url pattern="/root/index.cfm" access="isAuthenticated()" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
</http> 

Mais tout ce que j'essaie, je rentre toujours le champ de connexion.

+1

Il est normal, vos règles disent entrer toujours le champ de connexion. Regardez votre dernière règle. Avez-vous testé votre regex hors de l'intercept-url? Je pense, pourquoi pas, comme ceci: '' –

+0

Juste vu votre réponse après l'avoir découvert moi-même. Mais vous avez également besoin d'un attribut request-matcher, car request-matcher est par défaut à 'ant'. –

Répondre

8

Après plus éprouvante que je trouve une solution:

<http request-matcher="regex" pattern="^.*index.cfm\?action=home.*$" security="none"/> 

<http use-expressions="true"> 
    <intercept-url pattern="/root/index.cfm" access="isAuthenticated()" /> 
    <intercept-url pattern="/root/**" access="permitAll" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
</http> 
Questions connexes