2010-05-19 12 views
5

Dokument referencyjny mówi, że adresy URL są dopasowywane w tej samej kolejności, co zadeklarowane, ale jeden zadeklarowany jako ostatni jest dopasowywany przed niektórymi zadeklarowanymi wcześniej.Rozkaz przechwytujący-url Spring Security 3.0

Oto moja deklaracja:

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

Próbuje dopasować, aby dla wszystkich filters="none", ale potem przeskakuje do ostatniego wzoru /**. Adres URL taki jak /appname/ordersearch zostanie przechwycony przez /** zamiast **/ordersearch*. Każdy pomysł, co robię źle?

Odpowiedz

3

**/ordersearch* nie pasuje do /appname/ordersearch, potrzebujesz /**/ordersearch*.

Powiązane problemy