本文介绍了禁用EnableGlobalMethodSecurity批注的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有一种方法可以使用config.properties中的boolean securityEnabled禁用全局方法安全性?还有其他方法吗?
Is there a way I can disable the global method security using the boolean securityEnabled from my config.properties? Any other approach?
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled=true)
@PropertySource("classpath:config.properties")
public class SecurityConfig
extends WebSecurityConfigurerAdapter {
@Value("${securityconfig.enabled}")
private boolean securityEnabled;
...
}
推荐答案
最简单的方法是:
- 将方法安全性提取到其自己的类中
- 完全删除secureEnabled属性
- 重写customMethodSecurityMetadataSource方法并根据配置的值返回结果.
例如:
@EnableWebSecurity
@Configuration
@PropertySource("classpath:config.properties")
public class SecurityConfig extends WebSecurityConfigurerAdapter {
...
}
@EnableGlobalMethodSecurity
@Configuration
public class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {
@Value("${securityconfig.enabled}")
private boolean securityEnabled;
protected MethodSecurityMetadataSource customMethodSecurityMetadataSource() {
return securityEnabled ? new SecuredAnnotationSecurityMetadataSource() : null;
}
}
这篇关于禁用EnableGlobalMethodSecurity批注的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!