2010-05-19 5 views
5

Le document de référence indique que les URL sont appariés dans le même ordre que celui déclaré, mais que l'un d'entre eux déclaré en dernier est apparié avant certains des précédents déclarés.Spring Security 3.0 ordre d'interception-url

Voici ma déclaration:

<intercept-url pattern="/static/**" filters="none" /> 
<intercept-url pattern="/login.jsp*" filters="none" /> 
<intercept-url pattern="/logout.jsp*" filters="none" /> 
<intercept-url pattern="/forgotpassword*" filters="none" /> 
<intercept-url pattern="/WEB-INF/jsp/forgotpassword*" filters="none" />  
<intercept-url pattern="**/ordersearch*" access="hasRole('ROLE_VIEW_ORDER_STATUS')" /> 
<intercept-url pattern="**/creditstatus*" access="hasRole('ROLE_VIEW_CREDIT_STATUS')" /> 
<intercept-url pattern="**/shop*" access="hasRole('ROLE_INTERNAL') and hasRole('ROLE_CREATE_SALES_ORDER')" /> 
<intercept-url pattern="/**" access="hasAnyRole('ROLE_INTERNAL','ROLE_EXTERNAL')" /> 

Il essaie de correspondre pour tous les filters="none", mais saute alors au dernier motif /**. Donc, une URL comme /appname/ordersearch est interceptée par /** au lieu de **/ordersearch*. Une idée de ce que je fais mal?

Répondre

3

**/ordersearch* ne correspond pas /appname/ordersearch, vous avez besoin de /**/ordersearch*.

Questions connexes