Spring MVC /安全性非静态角色认证

时间:2014-07-10 07:53:41

标签: spring spring-mvc authentication spring-security spring-annotations

我通过no-xml实现了基于spring-mvc的java应用程序。如何为每个控制器方法设置基于rol的身份验证?

我不想要像以下代码那样使用静态角色名facultyMember

@PreAuthorize("hasRole('facultyMember')")
public Newsletter getFacultyNews() { }

1 个答案:

答案 0 :(得分:0)

虽然访问服务的权限是动态的似乎很奇怪,但您可以尝试使用外部属性文件:

在您的申请环境中:

<bean id="myProp" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
         <list>
              <value>file:///pathToExternalPropertyFile/myProp.properties</value>
           </list>
    </property>
</bean>

然后在你的控制器类中:

@Value("#{myProp['dynamicRole']}")
private String dynamicRole;

@PreAuthorize("hasRole('"+dynamicRole +"')")
public Newsletter getFacultyNews() { }