0

我有一个我一直在做的网络流项目,现在是时候给它增加一些安全性了。我有用于演示的登录屏幕,但我想添加:

@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>
4

1 回答 1

3

试着加上isAuthenticated()引号。

如在

@PreAuthorize("isAuthenticated()");
于 2012-09-07T19:25:08.213 回答