启动时应用所有http安全性:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("admin")
}
在运行时,我正在尝试添加更多内容......
applicationContext.getBean(WebSecurityConfigurerAdapter).http.authorizeRequests().antMatchers("bla").hasRole("admin")
当执行该行时,它会将其添加到http.authorizeRequests()'但是/ bla仍然可以访问/#34;非管理员"
重新启动服务器时,此更改将生效,因为它正在从数据库加载bla。
如何在不重新启动服务器的情况下立即使安全性生效?
答案 0 :(得分:0)
你试图在运行时动态地更改一个spring bean,除非你使用像spring-loaded或JRebel这样的工具,否则这很难做到。 有很多关于它的SO:
对于您的用例,最好的方法(在我看来)是使用弹簧配置文件 定义一个带有/ bla授权的bean和另一个没有的bean。然后在不同的配置文件中使用它们。