2012-09-06 1 views
13

In XML-Konfiguration kann ich security Namespace-Unterstützung aktivieren für die Sicherheit, wie zum Beispiel:Spring: Annotation äquivalent Sicherheit: Authentifizierung-Manager und Sicherheit: global-Methode-Sicherheit

<security:authentication-manager alias="authenticationManager"> 
    <security:authentication-provider ref="authenticator" /> 
</security:authentication-manager> 

<security:global-method-security pre-post-annotations="enabled" /> 

<bean id="authenticator" 
    class="org.springframework.security.authentication.TestingAuthenticationProvider" /> 

Ich versuche zu verwenden Frühling ohne XML, mit nur Klassen. Was ist das einfache Java-Äquivalent einer solchen Konfiguration wie das obige XML-Beispiel?

+0

mögliches Duplikat von [Code-basierte Spring Security Configuration] (http://stackoverflow.com/questions/8849162/code-based-spring- (Sicherheitskonfiguration) – Xaerxess

Antwort

12

EDIT: Im Dezember 2013 Spring Security 3.2 was released und Java Configuration was implemented, über XML so entspricht in etwa:

@Configuration 
@EnableGlobalMethodSecurity(prePostEnabled = true) 
public class SecurityConfiguration extends WebSecurityConfigurerAdapter { 

    @Override 
    protected void configure(final AuthenticationManagerBuilder auth) 
     throws Exception { 
    auth.authenticationProvider(authenticator()); 
    super.configure(auth); 
    } 

    @Bean 
    public AuthenticationProvider authenticator() { 
    return new TestingAuthenticationProvider(); 
    } 

} 

Alter Antwort von 2012:

Leider gibt keine ist. Check this answer (posted halbes Jahr her von Spring Security lead dev):

Zur Zeit ist keine einfache Möglichkeit, Spring Security Konfiguration mit Java-Konfiguration zu tun. Sie müssen wissen, was der Namensraum hinter die Szenen macht es schwierig und fehleranfällig macht. Aus diesem Grund würde ich empfehlen, mit der Spring Security Namespace Konfiguration beizubehalten.

Eine Option ist zu einem inoffiziellen Projekt beizutragen - Scalasec - die Scala-basierte Konfiguration bietet und wurde in this post on SpringSource blog beschrieben. Auch dies wird für die Produktion nicht empfohlen, da das Projekt aufgegeben zu werden scheint. Ich möchte eines Tages mit diesem Projekt experimentieren, habe aber derzeit keine freie Zeit :(

+0

Es ist nicht komplett aufgegeben, ich habe es in letzter Zeit gebastelt und bevorzuge es immer noch mit dem Namespace.Es gibt nichts darin, das die Erstellung von Proxies für Methoden-Sicherheit unterstützt, aber das ist nicht wirklich ein großes Problem Da Sie einfach eine minimale XML-Datei mit einer Java-Konfiguration mischen können und es nur ein einziges Element gibt: –

+0

@LukeTaylor Könnten Sie das Repository auf Github aktualisieren? Ich werde auf jeden Fall die aktuelle Version überprüfen wollen. – Xaerxess

+0

I haven ' Ich habe viele Änderungen am Code selbst vorgenommen, abgesehen von der Aktualisierung des Builds von sbt. Ich werde diese Änderungen bald vornehmen. –