2012-09-06 15 views
13

En la configuración de XML, que puede utilizar security espacio de nombres para habilitar el soporte para la seguridad, tales como:primavera: Anotación equivalente de seguridad: autenticación de administrador y la seguridad:-método de seguridad global

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

trato de usar Spring sin XML, con solo @Configuration clases. ¿Cuál es el equivalente en Java simple de dicha configuración como el ejemplo XML anterior?

+0

posible duplicado de [Configuración de seguridad de primavera basada en código] (http://stackoverflow.com/questions/8849162/code-based-spring- configuración de seguridad) – Xaerxess

Respuesta

12

EDITAR: en diciembre de 2013 y Spring Security 3.2 was releasedJava Configuration was implemented, es arriba XML es más o menos equivalente a:

@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(); 
    } 

} 

respuesta viejo a partir de 2012:

Desafortunadamente, no hay ninguna. (Hace más de medio año, publicado en la primavera de Seguridad lead dev) Check this answer:

En este momento hay manera fácil de hacer la configuración de la primavera de Seguridad con la configuración de Java. Debe saber lo que hace el espacio de nombres detrás de las escenas que lo hacen difícil y propenso a errores. Por este motivo, I recomendaría seguir con la configuración del espacio de nombres de Spring Security .

Una opción es contribuir a un proyecto no oficial - Scalasec - que proporciona la configuración basada en Scala y fue descrito en this post on SpringSource blog. Nuevamente, esto no se recomienda para producción ya que el proyecto parece estar abandonado. Quiero experimentar con este proyecto algún día pero no tengo tiempo libre actualmente :(

+0

No está completamente abandonado. He estado retocando recientemente y aún prefiero usarlo en el espacio de nombres. Sin embargo, no hay nada que apoye la creación de proxys para la seguridad de los métodos, pero eso no es realmente un gran problema. ya que puedes mezclar fácilmente un archivo XML mínimo con una configuración Java y solo hay realmente un elemento involucrado. –

+0

@LukeTaylor ¿Podrías actualizar el repositorio en Github? Definitivamente voy a querer verificar la versión actual. – Xaerxess

+0

I have ' He estado haciendo muchos cambios en el código en sí, aparte de actualizar la compilación de sbt. Presionaré esos cambios pronto. –

Cuestiones relacionadas