gpt4 book ai didi

java - Spring 安全: method is not secured with @PreAuthorize annotation

转载 作者:行者123 更新时间:2023-12-02 01:26:59 25 4
gpt4 key购买 nike

我想保护我的托管 session bean 中特定角色的方法“ROLE_ADMIN”

配置(applicationContext-security.xml):

<global-method-security pre-post-annotations="enabled" jsr250-annotations="enabled" secured-annotations="enabled"/>
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/**" access="isAuthenticated()"/>
<intercept-url pattern="/**" access="permitAll()"/>
<form-login
login-processing-url="/j_spring_security_check"
login-page="/login.jsf"
default-target-url="/main.jsf"
authentication-failure-url="/login.jsf" />

<session-management>
<concurrency-control max-sessions="1" error-if-maximum-exceeded="false" />
</session-management>
</http>


<authentication-manager alias="authenticationManager">
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
<user name="user1" password="user1" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>

<beans:bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>

bean 的安全方法:

    @PreAuthorize("hasRole('ROLE_ADMIN')")
public String buy() {
...
}

当我以user1匿名身份登录并点击网页上的“购买”按钮时,它仍然重定向到下一页。

我预计会发生一些访问被拒绝的异常,但事实并非如此。

最佳答案

请记住在 applicationContext-security.xml 上启用方法级安全性:

<sec:global-method-security secured-annotations="enabled" />

如果您要使用 Pre 或 Post 注释,请使用:

<security:global-method-security pre-post-annotations="enabled"/>

有关此内容的更多信息,请参阅:

http://forum.springsource.org/showthread.php?t=77862

注意:对于 jsr-250 的注释:

<sec:global-method-security jsr250-annotations="enabled" />

关于java - Spring 安全: method is not secured with @PreAuthorize annotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com