在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等价物是什么?
答案 0 :(得分:12)
编辑:2013年12月Spring Security 3.2 was released和Java 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中进行了描述。同样,这不建议用于生产,因为项目似乎已被放弃。我想有一天尝试这个项目,但目前没有空余时间:(