4

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

谢谢您的帮助。

4

1 回答 1

4

此类问题的典型解决方案是创建一个BeanPostProcessor拦截FilterSecurityInterceptorbean 的初始化并对其应用必要的定制的方法。

于 2012-04-25T20:55:56.840 回答