绝对需要一些专家帮助!我认为这主要是一个Spring Security问题,但我不确定,所以我也用一般的Spring标签进行标记!
当加载应用程序上下文时(我的所有内容都是通过Java Config,尽管我认为不重要),处理“DefaultListableBeanFactory”并最终(通过ProxyFactory)添加Spring Security Advisors。当我拥有Spring Beans时,这很棒,因为我有需要授权的权限。
我的问题是:当我不再需要这些类是Spring Beans时,如何获得相同的效果?换句话说,如果我有一个通过Java Config创建为单例bean的对象实例并且授权正常工作,是否可以通过对象实例作为POJO来维护它?同样,对于专家,我希望JdkDynamicAopProxy中返回的拦截链包含Spring Security拦截器。
而且“不”,我真的不期待这个答案,也许只是希望!!!
答案 0 :(得分:2)
向未由spring容器实例化的bean添加安全拦截器
将global-security
标记切换为模式aspectj
,然后在aspecj模块中编织提供的AnnotationSecurityAspect
。
对于您的第二个问题,我想您想要执行以下操作之一:
使用ProxyFactoryBean
保护bean。
以编程方式创建安全代理:使用ProxyFactory.addAdvice()
方法。
将安全拦截器添加到由AutoProxyCreator
创建的所有代理:这通常不需要,但您可以使用AbstractAutoProxyCreator.interceptorNames
属性添加常见拦截器。 global-security
标记解析器使用MethodSecurityInterceptor
生成的名称,因此您需要手动配置拦截器并设置一致的SecurityMetadataSource
。