我有一个我正在研究的Web流程项目,现在是时候为它添加一些安全性了。我有登录屏幕用于演示,但我想添加:
@PreAuthorize(isAuthenticated());
对于我在控件,服务和dao中的一些功能,所以我知道只有登录的用户才能访问这些功能。 @PreAuthorize(isAuthenticated())不起作用,我真的不想使用 @PreAuthorize(“hasRole('ROLE_USER')”)。
有人可以告诉我如何更好地锁定我的代码
这是我的security.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans
xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<global-method-security pre-post-annotations="enabled"/>
<http use-expressions="true">
<intercept-url access="hasRole('ROLE_USER')" pattern="/visit**" />
<intercept-url pattern='/*' access='permitAll' />
<form-login default-target-url="/visit" />
<logout logout-success-url="/" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="user" password="user" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
答案 0 :(得分:3)
尝试将isAuthenticated()
放入引号。
在
中@PreAuthorize("isAuthenticated()");