如果我理解正确,当我配置Spring Security时,会自动创建 FilterSecurityInterceptor 的实例。我想将 alwaysReauthenticate 属性设置为 true ,但我不想创建自己的 FilterSecurityInterceptor 或配置我自己的自定义过滤器链。有没有办法做到这一点?
更新:2012年5月1日 根据下面的评论,我想出了这个代码,它正如所希望的那样工作:
public class ForceAuthCheckinator implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (beanName.contains("FilterSecurityInterceptor")) {
((FilterSecurityInterceptor bean).setAlwaysReauthenticate(true);
}
return bean;
}
}
然后在我的应用程序上下文文件中,我添加了这一行,它激活了类并将其连接到位:
<bean class="com.mydomain.ForceAuthCheckinator"/>
感谢您的帮助。
答案 0 :(得分:4)
针对此类问题的典型解决方案是创建一个BeanPostProcessor
来拦截FilterSecurityInterceptor
bean的初始化并对其应用必要的自定义。