Java Spring将会话范围的配置注入WebSecurity

时间:2018-06-22 14:08:33

标签: java spring spring-boot spring-security

上下文:用Java Spring Boot 1.5.x编写的WebApplication。

问题:每次创建新的会话时,我想重新加载我的授权设置。因此,我认为用@SessionScope注释bean工厂方法是有意义的。认证类被注入到我的@EnableWebSecurity类中,该类是单例作用域的。该文档指出:

  

另一个关键限制是,查找方法不适用于工厂方法,特别是不适用于配置类中的@Bean方法,因为在这种情况下容器不负责创建实例,因此无法创建运行时生成的子类。

请参见look up method injection

我的问题:我是唯一的方法注射吗?参见method injection

Springs文档明确指出,方法注入不是一个干净的解决方案,因此我想在这里问。

@Configuration
public class AuthoritiesConfig {

@Autowired
Utilities utilities;

@Bean
@SessionScope
Authorities projectsAuth() {
    ProjectsYaml py = utilities.bindYaml();
    return new Authorities(py.getUsers());
  }
}

注射

@EnableWebSecurity
public class SecurityConfig {

@Autowired
Authorities authorities;

...
}

0 个答案:

没有答案