Spring安全保护切入点使用bean配置文件重复定义

时间:2014-08-08 13:47:50

标签: java spring spring-security spring-tool-suite spring-bean

使用Spring安全性时,我想为每个正在运行的配置文件定义不同的可接受角色。我遇到的问题是保护切入点定义似乎不接受上下文占位符(如果使用access =“$ {secured.role}则不会翻译。)如果我将安全元素放在每个bean配置文件中,STS给出一个警告说存在多个全局安全方法元素。我理解为什么会这样,好像我运行了两个加载它的配置文件,两者都会加载。虽然如果我只运行一个配置文件(这是我的意图)只有正确的人会加载。

以下是我的定义:

<beans profile="security-ad">
    <security:global-method-security>
        <security:protect-pointcut access="ROLE_THAT_ROLE" expression="execution(* com.test.service.TestServiceImpl.testSecuredMethod(..))"/>
    </security:global-method-security>
</beans>

<beans profile="security-tam">
    <security:global-method-security>
        <security:protect-pointcut access="ROLE_THIS_ROLE" expression="execution(* com.test.service.TestServiceImpl.testSecuredMethod(..))"/>
    </security:global-method-security>
</beans>

<beans profile="security-embedded">
    <security:global-method-security>
        <security:protect-pointcut access="ROLE_ADMIN" expression="execution(* com.test.service.TestServiceImpl.testSecuredMethod(..))"/>
    </security:global-method-security>
</beans>

有没有办法在安全定义中实现基于配置文件的角色,同时仍然让STS满意?这个DOES运行,它只是在项目中出错,这是我不能接受的......

0 个答案:

没有答案