В справочном документе указано, что URL-адреса сопоставлены в том же порядке, что и объявлено, но один объявленный последний сопоставляется перед некоторыми из объявленных ранее.Spring security 3.0 intercept-url order
Вот мое заявление:
<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')" />
Он пытается соответствовать для того, чтобы все filters="none"
, но затем переходит к последнему шаблону /**
. Таким образом, URL-адрес, такой как /appname/ordersearch
, перехватывается /**
вместо **/ordersearch*
. Любая идея, что я делаю неправильно?