2010-05-19 22 views
5

El documento de referencia dice que las URL coinciden en el mismo orden que las declaradas, pero una última declarada se compara con algunas de las declaradas anteriormente.Spring Security 3.0 intercept-url order

aquí está mi declaración:

<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')" /> 

Se trata de coincidir para que todo el filters="none", pero luego salta al último patrón /**. Entonces, una URL como /appname/ordersearch es interceptada por /** en lugar de **/ordersearch*. ¿Alguna idea de lo que estoy haciendo mal?

Respuesta

3

**/ordersearch* no coincide /appname/ordersearch, usted necesita /**/ordersearch*.

Cuestiones relacionadas