Bean初始化,PreAuthorize和GlobalAuthenticationConfigurerAdapter

时间:2016-06-07 08:18:41

标签: spring spring-security

按照配置不起作用,因为我使用了@PreAuthorize注释。 我想在我自己的AuthenticationProvider中注入一个服务。如果我的服务不使用@PreAuthorize注释,它将起作用。如果我使用这个注释,那么"我的服务" bean将在" MyGlobalAuthenticationConfigurerAdapter"中为null,因为在创建我的服务bean时,也会创建验证提供程序(到早期)。那我该怎么办?

为MyService:

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class MyConfiguration {

    @Bean
    public MyService myService() {
        return new MyServiceimpl();
    }

配置1:

@Configuration
@ComponentScan
@EnableAutoConfiguration
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyGlobalAuthenticationConfigurerAdapter extends GlobalAuthenticationConfigurerAdapter {

    @Autowired
    private MyService myService;

    @Override
    public void configure(final AuthenticationManagerBuilder auth) throws Exception {
        final MyAuthenticationProvider myAuthenticationProvider = myAuthenticationProvider ();
        auth.authenticationProvider(myAuthenticationProvider );
    }

    @Bean
    public MyAuthenticationProvider myAuthenticationProvider () {
        return new MyAuthenticationProvider (myService);
    }

配置Config2:

...
VALUES :name, ...
...
$result = $stud->update($sql, array(":fname" => $fn, ...

0 个答案:

没有答案