Spring Security 3.0 intercept-url order

The reference document says that URLs are mapped in the same order as advertised, but one advertised last is mapped before some of the advertised ones.

Here is my expression:

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

He tries to combine for everyone filters="none", but then moves on to the last template /**. Thus, the URL, for example /appname/ordersearch, is intercepted /**instead **/ordersearch*. Any idea what I'm doing wrong?

+5
source share
1 answer

**/ordersearch*does not match /appname/ordersearchyou need /**/ordersearch*.

+3
source

All Articles