当前位置: 首页 > 知识库问答 >
问题:

Spring:实体的角色、权限和权限

颜骁
2023-03-14

下午好.如何在不使用不同的OAUTH2服务的情况下,为一个应用程序中的特定实体(类似于RBAC/ABAC)的特定控制器配置用户的权限和角色?

还有一个名为Project的实体。用户可能是许多项目的成员。有一些项目用户角色:PROJECT_ADMIN、PROJECT_EDITO、PROJECT_USER。每个项目角色都可以拥有自己的权限(权限),如向项目添加用户、编辑项目等。所有角色配置都存储在'PROJECT_ROLES'和'PROJECT_PERMISSIONS'表中。

据我所知,它可以通过预授权注释来实现,但是如何将当前全局用户匹配到项目角色?

@PreAuthorize("@projectService.hasPermission('create_project', #projectEditRequest.id)") // How to pass GlobalUserID?
@PostMapping
public ProjectDto create(@RequestBody @Validated ProjectEditRequest projectEditRequest) {
   ...
   ...
}

也许有这样的案例实施的例子?

共有1个答案

邓声
2023-03-14

首先,OAuth2根本不是实现这一点的正确方法,因为您讨论的是细粒度的、基于实体的授权。您可以使用Spring ACL这样的库实现类似的内容。然后,您的授权模型通常与您的安全实体驻留在同一数据库中,并且Spring Security将通过ACL(访问控制列表)和当前Spring Security(用户)上下文授予请求的CRUD操作。

在OAuth2中,您基本上只需要使用subject/user作为现有ACL条目的所有者。

 类似资料:
  • 我有一个springmvc和springsecurity项目。 角色: 权限: 以及在角色和权限之间: 接下来的情况是: 我有一个控制器,我想用注释保护操作 大概是这样的: 但是注释不起作用,但是如果我把代码改成这样就可以了: 有人能给我一个提示吗?我不想用权限限制操作,我更喜欢角色限制。 提前谢谢。

  • 所以,请提前指导我如何在spring mvc中实现这个任务谢谢。

  • 问题内容: 我正在尝试设置具有权限的基于角色的安全性。我正在尝试与Spring-Security一起执行此操作。 我不想设置ACL,因为这似乎对我的要求来说有些过头了。 我只想拥有本文所述的简单权限和角色。不幸的是,本文没有描述如何实现给定的解决方案。 有人已经尝试过了,可以指出正确的方向吗?也许还有另一个博客条目描述了实现方式? 非常感谢你。 问题答案: 要实现这一点,您似乎必须: 创建模型(用

  • 角色是分配给用户的权限集合。默认情况下,Navicat Monitor 包含三个预定义的角色供你分配给不同用户以限制其访问权限。它还允许你创建具自定义权限设置的新角色。苃要配置角色及其权限,请前往“配置”->“角色和权限”。 每个预定义的角色都有不同的权限: 角色 权限 管理员 可以完全控制访问所有页面。此角色的权限是不可编辑的。 DBA 可以访问所有页面,但以下功能“除外”: - 激活令牌密钥,

  • 我是要定义什么还是别的什么?我在网上看到那个有角色权限的东西。

  • 诸葛io提供了权限管理的功能,共分为超级管理员、管理员、开发者、普通成员、普通成员(仅看板)五种。 接下来分别从公司层面和应用层面区分这些成员的使用权限。 一、成员角色权限表·公司层面 超级管理员 其他成员 公司信息 查看公司基本信息 √ 修改公司名称 √ 查看套餐信息 √ 成员管理 查看公司成员 √ 邀请公司成员 √ 移除公司成员 √ 小组管理 查看小组 √ 新建编辑删除小组 √ 权限管理 移交