我如何重新加载 websecurityconfig 运行时

Posted

技术标签:

【中文标题】我如何重新加载 websecurityconfig 运行时【英文标题】:how could I reload websecurityconfig runtime 【发布时间】:2016-11-03 11:44:36 【问题描述】:

我使用 Spring Security 的 WebSecurityConfig 来管理权限。 并且权限只在 spring 应用程序启动时加载一次。

那么当权限改变时,如何在运行时手动重新加载WebSecurityConfig

这是我的WebSecurityConfig 代码:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter
    

    @Override
    protected void configure(HttpSecurity http) throws Exception 
        http
                .authorizeRequests()
                .antMatchers("/css/**").permitAll()
                .antMatchers("/js/**").permitAll()
                .antMatchers("/rest/login").permitAll()
                .anyRequest().authenticated()
                .and()

                .formLogin()
                .loginPage("/boss/login")
                .permitAll()
                .and()

                .logout()
                .permitAll();
        http.csrf().disable();
    

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception 
        auth.authenticationProvider(authProvider);
    


【问题讨论】:

您的问题找到解决方案了吗? 【参考方案1】:

只需将您需要的任何东西注入 WebSecurityConfig 即可。您可以在 WebSecurityConfig 中使用 @Autowire 和 @Value。

【讨论】:

我有同样的问题(我需要 Spring Boot 来识别在应用程序启动后添加的用户,而且似乎这个类在它启动时只执行一次并且再也不会运行)。你能举个例子吗?如何从控制登录的单独页面调用 configureGlobal()?就像来自 GreetingController.java 的例子一样:spring.io/guides/gs/serving-web-content @NoonTime 你找到解决问题的方法了吗? @faraa 我最终使用了 jdbcAuthentication。我在下面添加了一个答案:***.com/a/47232751/1363715 @NoonTime 谢谢...但我必须使用 jdbcAuthentication

以上是关于我如何重新加载 websecurityconfig 运行时的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Swagger 绕过 WebSecurityConfig?

创建名为“webSecurityConfig”的 bean 时出错

com.api.WebSecurityConfig 中的字段 myUserDetailsS​​ervice 需要一个 bean,但找到了 2 个

JAVA——springSecurity——自定义配置的一些补充:Anonymous匿名用户重写loadUserByUsername()方法自定义WebSecurityConfig配置等

JAVA——springSecurity自定义配置的一些补充:Anonymous匿名用户重写loadUserByUsername()方法自定义WebSecurityConfig配置等

如何在 cellEdit 之后强制从持久存储重新加载核心数据