硬盘?:春天的安全性不是Spring Beans吗?

时间:2013-05-01 23:27:54

标签: spring spring-security

绝对需要一些专家帮助!我认为这主要是一个Spring Security问题,但我不确定,所以我也用一般的Spring标签进行标记!

当加载应用程序上下文时(我的所有内容都是通过Java Config,尽管我认为不重要),处理“DefaultListableBeanFactory”并最终(通过ProxyFactory)添加Spring Security Advisors。当我拥有Spring Beans时,这很棒,因为我有需要授权的权限。

我的问题是:当我不再需要这些类是Spring Beans时,如何获得相同的效果?换句话说,如果我有一个通过Java Config创建为单例bean的对象实例并且授权正常工作,是否可以通过对象实例作为POJO来维护它?同样,对于专家,我希望JdkDynamicAopProxy中返回的拦截链包含Spring Security拦截器。

而且“不”,我真的不期待这个答案,也许只是希望!!!

1 个答案:

答案 0 :(得分:2)

向未由spring容器实例化的bean添加安全拦截器 将global-security标记切换为模式aspectj,然后在aspecj模块中编织提供的AnnotationSecurityAspect

对于您的第二个问题,我想您想要执行以下操作之一:

  • 使用ProxyFactoryBean保护bean。

  • 以编程方式创建安全代理:使用ProxyFactory.addAdvice()方法。

  • 将安全拦截器添加到由AutoProxyCreator创建的所有代理:这通常不需要,但您可以使用AbstractAutoProxyCreator.interceptorNames属性添加常见拦截器。 global-security标记解析器使用MethodSecurityInterceptor生成的名称,因此您需要手动配置拦截器并设置一致的SecurityMetadataSource