我通过no-xml实现了基于spring-mvc的java应用程序。如何为每个控制器方法设置基于rol的身份验证?
我不想要像以下代码那样使用静态角色名facultyMember
:
@PreAuthorize("hasRole('facultyMember')")
public Newsletter getFacultyNews() { }
答案 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() { }