gpt4 book ai didi

java - 如何在spring中编写/检查auth的权限

转载 作者:行者123 更新时间:2023-12-02 05:16:26 27 4
gpt4 key购买 nike

我有这样的数据库:

Users <-> Roles -> Permissions

在 Spring 中,我使用 spring security 登录 - 我不检查用户拥有什么角色。每个人都应该登录。

<authentication-manager alias="authenticationManager">
<authentication-provider>
<password-encoder hash="bcrypt"/>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select NAME, PASSWORD, 1 as enabled from USERS
where NAME=?"
authorities-by-username-query="SELECT * FROM USERS u JOIN USERS_MTM_ROLES uur
ON u.ID=uur.ROLE_ID join USER_ROLES ur
on ur.id=uur.role_id where NAME=?" />
</authentication-provider>

<http auto-config="true" use-expressions="true">
<intercept-url pattern="/admin**" />
<form-login login-page="/login" default-target-url="/admin"
authentication-failure-url="/login?error" username-parameter="NAME"
password-parameter="PASSWORD" />
<logout logout-success-url="/login?logout" />
</http>

好的,一切都很好!

但要知道,我想使用 @Secure 或 @Preauthorize 注释,以检查用户是否有权限。但是spring如何知道用户是否有具体的权限呢?权限应该写在某个地方吗?

换句话说,我希望我的 Controller 受到保护。如果用户有具体的权限,他/她应该有权访问 Controller ,否则用户不应该。我该怎么做?

最佳答案

Spring Security 提供 Controller 授权的注释。这是一个例子: http://www.mkyong.com/spring-security/spring-security-hello-world-annotation-example/

此外,我强烈建议您使用 Shiro 而不是 Spring Security。在实践中,我意识到配置 Spring Security 远比其值(value)复杂。请引用http://shiro.apache.org

关于java - 如何在spring中编写/检查auth的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910930/

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