设置FilterSecurityInterceptor的属性而不创建自定义过滤器

时间:2012-04-25 18:55:23

标签: spring-security

如果我理解正确,当我配置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"/>

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

针对此类问题的典型解决方案是创建一个BeanPostProcessor来拦截FilterSecurityInterceptor bean的初始化并对其应用必要的自定义。