2012-04-25 95 views
3

如果我理解正确,当我配置Spring Security时,会自动创建一个FilterSecurityInterceptor的实例。我想设置始终认证属性为true,但我不想创建自己的FilterSecurityInterceptor或配置我自己的自定义过滤器链。有没有办法做到这一点?设置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

这种问题的典型解决方案是创建一个BeanPostProcessor,它将拦截FilterSecurityInterceptor bean的初始化并对其应用必要的自定义设置。

相关问题