2016-06-22 12 views
3

Ich habe XML Config für Spring Security, die ich durch Tonnen von Führern gemacht habe. Es soll abfangen URL und mit benutzerdefinierten Filtern bieten Authentifizierung mit LDAP-Authentifizierungs-Manager.Spring Sicherheit XML Config Vs Java Config

Also hier ist es:

<http create-session="stateless" auto-config='false' use-expressions="true"> 
    <anonymous enabled="true"/> 
    <intercept-url pattern="/index.html" access="permitAll()" method="GET"/> 
    <intercept-url pattern="/login" access="permitAll()" method="GET"/> 


    <custom-filter before="LAST" ref="statelessLoginFilter"/> 
    <custom-filter before="PRE_AUTH_FILTER" ref="statelessAuthFilter"/> 

    <intercept-url pattern="/one*" access="hasRole('ROLE_ONE')" method="GET"/> 
    <intercept-url pattern="/two*" access="hasRole('ROLE_TWO')" method="GET"/> 

    <!-- another intercept-url stuff --> 

    <csrf disabled="true"/> 

    <!-- authentication manager and stuff --> 
</http> 

Im Moment bin ich versucht, es mit Java Config neu zu schreiben. Aber ich kann nicht dort benutzerdefinierte Filter verwenden. Es gibt .addFilterBefore, aber ich kann nicht einfach vorher = "LAST" oder vorher = "PRE_AUTH_FILTER" da. Weil es so etwas nicht gibt. Wie kann ich das umschreiben?

Antwort

3

Sie müssen die spezifischen Filterklassen identifizieren. Der Standard-LAST-Filter sollte beispielsweise FilterSecurityInterceptor - Filter Ordering sein.

Der PRE_AUTH_FILTER könnte alles sein, das sich erweitert AbstractPreAuthenticatedProcessingFilter, je nachdem, was Sie konfiguriert haben.

Grundsätzlich zwingt Sie die Java-Konfiguration, in Ihrer Bestellung explizit zu sein, um böse Überraschungen später zu vermeiden.

+0

Große Erklärung. Und es funktioniert) danke! – ottercoder