首页 > 其他分享 >graylog grn介绍

graylog grn介绍

时间:2022-10-01 08:22:06浏览次数:74  
标签:java graylog2 介绍 server tokens graylog grn

grn 是graylog 的资源名称,属于一种urn,从功能上类似aws 的 arn 主要用来进行权限以及资源分配管理

参考格式

grn:<cluster>:<tenant>:<scope>:<type>:<entity>

graylog 解析处理

核心是slit,然后拆分处理

static GRN parse(String grn, GRNRegistry grnRegistry) {
    final List<String> tokens = SPLITTER.splitToList(grn.toLowerCase(Locale.ENGLISH));
 
    if (tokens.size() != 6) {
        throw new IllegalArgumentException(String.format(Locale.US, "<%s> is not a valid GRN string", grn));
    }
    if (!tokens.get(0).equals("grn")) {
        throw new IllegalArgumentException(String.format(Locale.US, "<%s> is not a grn scheme", tokens.get(0)));
    }
    final String type = tokens.get(4);
    final Builder builder = grnRegistry.newGRNBuilder(type)
            .cluster(tokens.get(1))
            .tenant(tokens.get(2))
            .scope(tokens.get(3))
            .entity(tokens.get(5));
 
    return builder.build();
}

权限部分对于type 的使用

public boolean isPermissionApplicable(String permission) {
    // ENTITY_OWN is applicable to any target
    return permission.startsWith(RestPermissions.ENTITY_OWN) ||
            permission.startsWith(grnType().permissionPrefix()) ||
            // TODO Dashboard code still uses `view:` permissions
            (grnType().equals(GRNTypes.DASHBOARD) && permission.startsWith(GRNTypes.SEARCH.permissionPrefix()));
}

说明

基于urn 的权限管理是一个很不错的选择,比如shiro 就基于了urn 但是扩展了不少,graylog 好多东西都基于了此能力

参考资料

https://github.com/Graylog2/graylog2-server/tree/master/graylog2-server/src/main/java/org/graylog/grn
https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog2/shared/security/RestPermissions.java
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog/grn/GRNTypes.java
https://github.com/Graylog2/graylog2-server/blob/626be1f0d80506705b5ba41fbea33c2ec0164bc0/graylog2-server/src/main/java/org/graylog/security/permissions/GRNPermission.java
https://shiro.apache.org/permissions.html

标签:java,graylog2,介绍,server,tokens,graylog,grn
From: https://www.cnblogs.com/rongfengliang/p/16746719.html

相关文章

  • vue使用介绍
    web使用vue方式介绍1.直接使用vue脚手架vue-cli2.现有页面集成gobuildmain.go3.fsdfgithub流程图......
  • 进入python的世界_day8_python基础——字典、元组、合集的内置方法、编码的介绍
    写在开头,昨天学了一些数据类型的内置使用方法,比如整形、浮点型、字符串、列表,今天学字典、元组、集合的常用内置方法,布尔值是没有所谓的内置方法的,还学了字符编码一、字......
  • TDengine 3.0 流式计算引擎语法规则介绍
    小T导读:TDengine3.0引入了全新的流式计算引擎,既支持时间驱动的流式计算,也支持事件驱动的流式计算。本文将对新的流式计算引擎的语法规则进行详细介绍,方便开发者及企业使......
  • TDengine3.0 流式计算引擎语法规则介绍
    小T导读:TDengine 3.0引入了全新的流式计算引擎,既支持时间驱动的流式计算,也支持事件驱动的流式计算。本文将对新的流式计算引擎的语法规则进行详细介绍,方便开发者及企业......
  • 物体的三维识别与6D位姿估计:PPF系列论文介绍(四)
    文章“3DPoseEstimationofDailyObjectsUsinganRGB-DCamera”2012发表在IEEE/RSJInternationalConferenceonIntelligentRobotsandSystems上,这篇文章对原始点对......
  • 【存储数据恢复】某品牌EqualLogic系列存储介绍&常见故障的数据恢复方法
    某品牌EqualLogic系列存储介绍:某品牌EqualLogic系列存储可以通过连接串口先对存储进行初始化。通过浏览器登录配置的ip地址,账号默认:grpadmin,密码默认:grpadmin;也可以通过串......
  • 日志框架的介绍及使用
    在web项目中,很多时候会用到日志管理工具。日志工具有很多,应用程序这个框架用这个,另外一个框架用另外一个日志。配置日志就很麻烦。SLF4J这个工具提供一个接口,用来管理日志......
  • JDBC介绍及使用
    JDBC简介JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDB......
  • RabbitMQ 入门系列:5、基础编码:交换机的进阶介绍及编码方式。
    系列目录​​RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。​​​​RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。​​​​RabbitMQ入门系列:3、基础......
  • Nacos配置中心用法详细介绍
            上篇文章介绍了Nacos作为注册中心的用法,除此之外,Nacos还能作为配置中心使用,那这篇文章就介绍下Nacos作为配置中心的基本用法,首先我们先了解下为什么......