0

我有一个关于弹簧安全的问题,它是关于:

<authentication-manager>
    <authentication-provider>
      <user-service>

我需要该用户名可以进行一些与其他用户的其他操作不同的操作,即

User Admin can make: create, read, delete, update.
User A can make: create, read, update.
User B can make: read, delete.

每个用户都是具有不同操作的不同配置文件。

我可以用spring-security做吗?在数据库中类似于: 在此处输入图像描述

两个用户都访问相同的页面,但使用不同的操作,例如 www.myApp.com/pageOperation。

谢谢。

4

1 回答 1

0

在 Spring Security 中,某些操作调用的权限存储为“权限”集合中当前Authentication对象中的 GrantedAuthority 对象因此,您应该通过检查用户名来为不同的用户提供不同的权限集合。您可以将它们硬编码到<user-service>部分或提供自己的 UserDetailService实现,它根据用户名解析用户权限。UserDetailsService有方法loadUserByUsername接受用户名并返回包含用户权限集合的UserDetails实体。您可以在用户调用某些操作时通过@PreAuthorize对目标方法应用注释或拦截适当的 url 来检查用户权限。希望这可以帮助。

于 2013-11-12T11:13:07.933 回答