试图为我的Spring Web Flow2项目添加安全性

时间:2012-09-07 18:42:28

标签: java spring spring-mvc spring-security spring-webflow

我有一个我正在研究的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>

1 个答案:

答案 0 :(得分:3)

尝试将isAuthenticated()放入引号。

@PreAuthorize("isAuthenticated()");