Spring:注释相当于安全性:authentication-manager和security:global-method-security

时间:2012-09-06 15:54:44

标签: spring spring-security

在XML配置中,我可以使用security命名空间来启用对安全性的支持,例如:

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

我尝试使用没有XML的Spring,只使用@Configuration个类。与上面的XML示例相比,这种配置的普通Java等价物是什么?

1 个答案:

答案 0 :(得分:12)

编辑:2013年12月Spring Security 3.2 was releasedJava Configuration was implemented,因此XML大致相当于:

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

}

2012年的答案:

不幸的是,没有。 Check this answer(Spring Security lead dev半年前发布):

  

目前没有简单的方法来执行Spring Security配置   使用Java配置。您必须知道命名空间的作用   场景使其变得困难且容易出错。出于这个原因,我   会建议坚持使用Spring Security命名空间   配置。

一种选择是为非正式项目做出贡献 - Scalasec - 提供基于Scala的配置,并在this post on SpringSource blog中进行了描述。同样,这不建议用于生产,因为项目似乎已被放弃。我想有一天尝试这个项目,但目前没有空余时间:(