В справочном документе говорится, что URL совпадают в том же порядке, что и объявленный, но один объявленный последним сопоставляется раньше, чем некоторые из объявленных ранее.
Вот мое заявление:
<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*
. Есть идеи, что я делаю не так?