【问题标题】:create a restricted link for a group of users spring为一组用户创建一个受限链接
【发布时间】:2018-09-23 16:59:29
【问题描述】:

我如何将链接限制为组访问,以使第一组的管理员无法访问组 2 的链接,我确实使用 jwt 来保护应用程序 谢谢

【问题讨论】:

  • 收到请求时,检查当前用户是否属于允许发出此类请求的组。在显示列表之前,您检查是否允许当前用户看到这样的链接。由于您的问题中的细节如此之少,我们能说的就这么多了。
  • 她是问题所在,使用 jwt 仅对使用 ROLES 的链接进行代码限制,但是,我有很多组,每个组都包含一个管理员和用户,因此仅通过角色链接不限于其他组的用户或管理员

标签: spring security jwt


【解决方案1】:

我创建了一个验证服务来验证用户是否是组组的成员,然后我创建了一个组件来获取组名称的路径变量。

组件代码:

@Component
@RequiredArgsConstructor
public class RequestHelper {
private final HttpServletRequest httpServletRequest;
public Object getPathVariableByName(String name) {
    final Map pathVariables = (Map) httpServletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
    return pathVariables.get(name);
}}

注解示例

    @PreAuthorize("hasRole('USER') and @securityServices.hasAccess(@requestHelper.getPathVariableByName('groupName')))")

服务代码示例

@Service
public class SecurityServices {


public boolean hasAccess(String groupName) {
   return true or false //acording to your case if users in the group or not 
}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2023-02-26
    • 2021-03-07
    • 2012-10-30
    • 1970-01-01
    • 2021-07-23
    • 2012-05-16
    相关资源
    最近更新 更多