From 3b238347d427a846a1e575f3878138c7f6611122 Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Fri, 4 Feb 2022 22:23:44 +0800 Subject: [PATCH] =?UTF-8?q?[home]=E5=AE=98=E6=96=B9=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- home/docs/advanced/custom-datasource.md | 81 ---- home/docs/advanced/custom-processor.md | 35 -- home/docs/advanced/custom-subject-creator.md | 20 - home/docs/advanced/custom-subject.md | 20 - home/docs/advanced/extend-point.md | 204 ++++++++- home/docs/design.md | 13 - home/docs/help/help.md | 5 + home/docs/integrate/sample-bootstrap.md | 14 - home/docs/integrate/sample-javalin.md | 296 ------------ home/docs/integrate/sample-ktor.md | 17 - home/docs/integrate/sample-micronaut.md | 423 ------------------ home/docs/integrate/sample-quarkus.md | 16 - home/docs/integrate/sample-spring-webflux.md | 15 - home/docs/integrate/sample-tom.md | 19 - home/docs/others/contact.md | 32 ++ home/docs/others/design.md | 13 + home/docs/others/private.md | 17 + home/docs/others/resource.md | 19 + home/docs/{ => others}/sponsor.md | 2 +- home/docs/start/docker-deploy.md | 7 +- home/docs/start/mysql-init.md | 2 +- home/docs/start/package-deploy.md | 26 +- home/docs/start/quickstart.md | 8 +- home/docusaurus.config.js | 76 ++-- .../current/advanced/custom-datasource.md | 2 +- .../current/advanced/custom-processor.md | 2 +- .../advanced/custom-subject-creator.md | 2 +- .../current/advanced/custom-subject.md | 2 +- .../current/introduce.md | 14 +- .../current/start/default-auth.md | 4 +- .../current/start/default-datasource.md | 4 +- home/sidebars.json | 28 +- home/static/img/docs/help/qq-qr.jpg | Bin 0 -> 106786 bytes .../static/img/docs/help/tan-cloud-wechat.jpg | Bin 0 -> 29446 bytes home/static/img/tancloud-brand.jpg | Bin 0 -> 38289 bytes home/static/img/tancloud-logo.jpg | Bin 0 -> 15352 bytes 36 files changed, 365 insertions(+), 1073 deletions(-) delete mode 100644 home/docs/advanced/custom-datasource.md delete mode 100644 home/docs/advanced/custom-processor.md delete mode 100644 home/docs/advanced/custom-subject-creator.md delete mode 100644 home/docs/advanced/custom-subject.md delete mode 100644 home/docs/design.md create mode 100644 home/docs/help/help.md delete mode 100644 home/docs/integrate/sample-bootstrap.md delete mode 100644 home/docs/integrate/sample-javalin.md delete mode 100644 home/docs/integrate/sample-ktor.md delete mode 100644 home/docs/integrate/sample-micronaut.md delete mode 100644 home/docs/integrate/sample-quarkus.md delete mode 100644 home/docs/integrate/sample-spring-webflux.md delete mode 100644 home/docs/integrate/sample-tom.md create mode 100644 home/docs/others/contact.md create mode 100644 home/docs/others/design.md create mode 100644 home/docs/others/private.md create mode 100644 home/docs/others/resource.md rename home/docs/{ => others}/sponsor.md (62%) create mode 100644 home/static/img/docs/help/qq-qr.jpg create mode 100644 home/static/img/docs/help/tan-cloud-wechat.jpg create mode 100644 home/static/img/tancloud-brand.jpg create mode 100644 home/static/img/tancloud-logo.jpg diff --git a/home/docs/advanced/custom-datasource.md b/home/docs/advanced/custom-datasource.md deleted file mode 100644 index 164300e..0000000 --- a/home/docs/advanced/custom-datasource.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -id: custom-datasource -title: 自定义数据源 -sidebar_label: 自定义数据源 ---- - -## 自定义数据源 - -自定义前建议了解`sureness`处理流程和提供的扩展接口,详见 [进阶扩展](/docs/advanced/extend-point) - -- `PathTreeProvider`: 资源的数据源接口,实现从数据库,文本等加载数据,加载到对应的资源权限匹配器`DefaultPathRoleMatcher`中 -- `SurenessAccountProvider`: 用户的账户密钥信息接口,实现从数据库,文本等加载数据,加载到需要账户数据的`processor`中 - - -首先我们先来认识下sureness提供的两个用户信息和资源权限信息的接口,用户可以实现这些接口自定义从不同的数据源给sureness提供数据。 -当我们把项目从配置文件模式切换成数据库模式时,也只是简单替换了这些接口的实现类而已。 - -一. `PathTreeProvider` 资源权限配置信息的数据源接口,我们可以实现从数据库,文本等加载接口想要的资源权限配置数据 - -```` -public interface PathTreeProvider { - - Set providePathData(); - - Set provideExcludedResource(); -} - -```` - -此接口主要是需要实现上面这两个方法,providePathData是加载资源权限配置信息,也就是我们配置文件模式下sureness.yml的resourceRole信息列, -provideExcludedResource是加载哪些资源可以被过滤不认证鉴权,也就是sureness.yml下的excludedResource信息列,如下。 - -```` -resourceRole: - - /api/v2/host===post===[role2,role3,role4] - - /api/v2/host===get===[role2,role3,role4] - - /api/v2/host===delete===[role2,role3,role4] - - /api/v2/host===put===[role2,role3,role4] - - /api/mi/**===put===[role2,role3,role4] - - /api/v1/getSource1===get===[role1,role2] - - /api/v2/getSource2/*/*===get===[role2] - -excludedResource: - - /api/v1/source3===get - - /api/v3/host===get - - /**/*.css===get - - /**/*.ico===get - - /**/*.png===get -```` - -而当我们使用数据库模式时,实现这些信息从数据库关联读取就ok了,规范返回 eg: /api/v2/host===post===[role2,role3,role4] 格式的数据列, -具体的数据库实现类参考类 - [DatabasePathTreeProvider](https://github.com/tomsun28/sureness/blob/master/sample-tom/src/main/java/com/usthe/sureness/sample/tom/sureness/provider/DatabasePathTreeProvider.java) - -二. `SurenessAccountProvider`这第二个相关的接口就是用户的账户密钥信息提供接口,我们需要实现从数据库或者文本等其他数据源那里去加载我们想要的用户的账户信息数据, -这些数据提供需要账户数据的processor进行用户的认证。 - -```` -public interface SurenessAccountProvider { - SurenessAccount loadAccount(String appId); -} -```` -此接口主要需要实现上面这个loadAccount方法,通过用户的唯一标识appid来从数据库或者redis缓存中查找到用户的账户信息返回即可。 -用户账户信息类SurenessAccount如下: - -```` -public class DefaultAccount implements SurenessAccount { - - private String appId; - private String password; - private String salt; - private List ownRoles; - private boolean disabledAccount; - private boolean excessiveAttempts; -} -```` - -比较简单,主要是需要提供用户的密码相关信息即可,供sureness认证时密钥判断正确与否。 -这个具体的数据库接口实现可参考类 - [DatabaseAccountProvider](https://github.com/tomsun28/sureness/blob/master/sample-tom/src/main/java/com/usthe/sureness/sample/tom/sureness/provider/DatabaseAccountProvider.java) - - -具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/integrate/sample-tom) diff --git a/home/docs/advanced/custom-processor.md b/home/docs/advanced/custom-processor.md deleted file mode 100644 index 902119f..0000000 --- a/home/docs/advanced/custom-processor.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -id: custom-processor -title: 自定义processor -sidebar_label: 自定义processor ---- - -processor就是对请求的用户账户信息subject真正的认证鉴权处理器,我们需要实现BaseProcessor接口,来实现我们自定义的认证鉴权方式。 -sureness已经内置基于账户密码认证方式处理PasswordSubject的PasswordProcessor,基于jwt认证方式处理JwtSubject的JwtProcessor等。 - -自定义前建议了解`sureness`处理流程和提供的扩展接口,详见 [进阶扩展](/docs/advanced/extend-point) - -- `Processor`: `Subject`处理接口,根据Subject信息,进行认证鉴权 - -``` -public abstract class BaseProcessor implements Processor{ - - public abstract boolean canSupportSubjectClass(Class var); - - public abstract Subject authenticated (Subject var) throws SurenessAuthenticationException; - - public abstract void authorized(Subject var) throws SurenessAuthorizationException; -} - -``` - -上面就是BaseProcessor的一些重要接口方法,自定义processor需要我们去实现这些方法。 - -- `canSupportSubjectClass` 判断是否支持入参的此Subject类类型,比如 JwtProcessor只支持JwtSubject, PasswordProcessor只支持PasswordSubject -- `authenticated` 对subject进行认证,根据传入的subject信息和系统内信息,进行请求用户的账户认证 -- `authorized` 对subject进行鉴权,鉴权判断此用户是否拥有其访问api的访问权限 - -sureness使用异常流程模型,以上的认证失败或鉴权失败都会抛出不同类型的异常,用户在最外部捕获判断实现接下来的流程。 - -sureness默认异常类型参考 [默认异常类型](/docs/start/default-exception) -具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/integrate/sample-tom) diff --git a/home/docs/advanced/custom-subject-creator.md b/home/docs/advanced/custom-subject-creator.md deleted file mode 100644 index f4bea25..0000000 --- a/home/docs/advanced/custom-subject-creator.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: custom-subject-creator -title: 自定义subject creator -sidebar_label: 自定义subject creator ---- - -自定义`subject creator`是我们使用频率最高的扩展,当请求体对象并不是`servlet`或者`jax-rs`标准`api`时, -或者我们从request请求的不同地方获取账户信息时,我们就需要自定义`subject creator`, -使其通过请求对象获取我们需要的请求信息(请求路径,请求方法,认证信息等), 从而创建出对应的`subject`. - -sureness已经内置能创建出基于账户密码的PasswordSubject的BasicSubjectServletCreator, -和创建出jwt类型JwtSubject的JwtSubjectServletCreator等,当然我们可以自定义自己需要的subjectCreator来创建subject - -自定义前建议了解`sureness`处理流程和提供的扩展接口,详见 [进阶扩展](/docs/advanced/extend-point) - -- `SubjectCreate`: 创建`Subject`接口,根据请求内容创建不同类型的`Subject`对象 - -实现`SubjectCreate`接口方法,根据request请求的内容创建出对应需要的的`subject` - -具体扩展实践请参考 [sample-spring-webflux项目集成案例](/docs/integrate/sample-spring-webflux) \ No newline at end of file diff --git a/home/docs/advanced/custom-subject.md b/home/docs/advanced/custom-subject.md deleted file mode 100644 index 805075c..0000000 --- a/home/docs/advanced/custom-subject.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -id: custom-subject -title: 自定义subject -sidebar_label: 自定义subject ---- - -subject包含的就是我们request请求所带的用户信息,sureness已经内置基于账户密码的PasswordSubject, -基于jwt的JwtSubject等,当然我们可以自定义自己需要的subject来扩充自己的用户信息 - -自定义前建议了解`sureness`处理流程和提供的扩展接口,详见 [进阶扩展](/docs/advanced/extend-point) - -- `Subject`: 认证鉴权对象接口,提供访问对象的账户密钥,请求资源,角色等信息 - -自定义subject需要走以下流程: - -1. 实现`Subject`接口,添加自定义的`subject`内容 -2. 实现`SubjectCreate`接口方法,创建出自定义的`subject` 参考[自定义Subject Creator](/docs/advanced/custom-subject-creator) -3. 实现`Processor`接口,支持处理自定义的`subject` 参考[自定义Processor](/docs/advanced/custom-processor) - -具体扩展实践请参考 [使用sureness30分钟项目集成案例](/docs/integrate/sample-tom) \ No newline at end of file diff --git a/home/docs/advanced/extend-point.md b/home/docs/advanced/extend-point.md index 160dbaf..091892c 100644 --- a/home/docs/advanced/extend-point.md +++ b/home/docs/advanced/extend-point.md @@ -1,22 +1,202 @@ --- id: extend-point -title: 进阶扩展 -sidebar_label: 扩展点 +title: 自定义监控 +sidebar_label: 自定义监控 --- +> HertzBeat拥有自定义监控能力,您只需配置两个YML文件就能适配一款自定义的监控类型。目前自定义监控支持HTTP协议,MYSQL协议,后续会支持更多通用协议。 -`sureness`支持自定义`subject`,自定义注册`subjectCreator`,自定义`processor`处理器,自定义数据源加载器等。 +### 自定义步骤 -进阶自定义扩展之前我们先来了解下sureness的大致流程: +配置自定义监控类型需新增配置两个YML文件 +1. 用监控类型命名的监控配置定义文件 - example.yml 需位于安装目录 /hertz-beat/define/app/ 下 +2. 用监控类型命名的监控参数定义文件 - example.yml 需位于安装目录 /hertz-beat/define/param/ 下 +3. 重启hertzbeat系统,我们就适配好了一个新的自定义监控类型。 -![flow](/img/docs/flow-cn.png) +------- +下面详细介绍下这俩文件的配置用法。 -如上面的流程所讲,Subject被SubjectCreate根据request请求体所创造,不同的认证鉴权处理器Processor来处理所支持的Subject。 +### 监控配置定义文件 +> 监控配置定义文件用于定义 *监控类型的名称(国际化), 请求参数映射, 指标信息, 采集协议配置信息*等。 -sureness提供了下面这些常用接口作为扩展点: +样例:自定义一个名称为example的自定义监控类型,其使用HTTP协议采集指标数据。 +文件名称: example.yml 位于 /hertz-beat/define/app/example.yml -- `Subject`: 认证鉴权对象接口,提供访问对象的账户密钥,请求资源,角色等信息 -- `SubjectCreate`: 创建`Subject`接口,根据请求内容创建不同类型的`Subject`对象 -- `Processor`: `Subject`处理接口,根据Subject信息,进行认证鉴权 -- `PathTreeProvider`: 资源的数据源接口,实现从数据库,文本等加载数据 -- `SurenessAccountProvider`: 用户的账户密钥信息接口,实现从数据库,文本等加载数据 +```yaml +# 监控应用类型(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example +name: + zh-CN: 模拟应用类型 + en-US: EXAMPLE APP +# 参数映射map. type是参数类型: 0-number数字, 1-string明文字符串, 2-secret加密字符串 +# 强制固定必须参数 - host +configmap: + - key: host + type: 1 + - key: port + type: 0 + - key: username + type: 1 + - key: password + type: 2 +# 指标组列表 +metrics: +# 第一个监控指标组 cpu +# 注意:内置监控指标有 (responseTime - 响应时间) + - name: cpu + # 指标组调度优先级(0-127)越小优先级越高,优先级低的指标组会等优先级高的指标组采集完成后才会被调度,相同优先级的指标组会并行调度采集 + # 优先级为0的指标组为可用性指标组,即它会被首先调度,采集成功才会继续调度其它指标组,采集失败则中断调度 + priority: 0 + # 指标组中的具体监控指标 + fields: + # 指标信息 包括 field名称 type字段类型:0-number数字,1-string字符串 instance是否为实例主键 unit:指标单位 + - field: hostname + type: 1 + instance: true + - field: usage + type: 0 + unit: '%' + - field: cores + type: 0 + - field: waitTime + type: 0 + unit: s +# (非必须)监控指标别名,与上面的指标名映射。用于采集接口数据字段不直接是最终指标名称,需要此别名做映射转换 + aliasFields: + - hostname + - core1 + - core2 + - usage + - allTime + - runningTime +# (非必须)指标计算表达式,与上面的别名一起作用,计算出最终需要的指标值 +# eg: cores=core1+core2, usage=usage, waitTime=allTime-runningTime + calculates: + - hostname=hostname + - cores=core1+core2 + - usage=usage + - waitTime=allTime-runningTime +# 监控采集使用协议 eg: sql, ssh, http, telnet, wmi, snmp, sdk + protocol: http +# 当protocol为http协议时具体的采集配置 + http: + # 主机host: ipv4 ipv6 域名 + host: ^_^host^_^ + # 端口 + port: ^_^port^_^ + # url请求接口路径 + url: /metrics/cpu + # 请求方式 GET POST PUT DELETE PATCH + method: GET + # 是否启用ssl/tls,即是http还是https,默认false + ssl: false + # 请求头内容 + headers: + apiVersion: v1 + # 请求参数内容 + params: + param1: param1 + param2: param2 + # 认证 + authorization: + # 认证方式: Basic Auth, Digest Auth, Bearer Token + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + # 响应数据解析方式: default-系统规则,jsonPath-jsonPath脚本,website-网站可用性指标监控 + # todo xmlPath-xmlPath脚本,prometheus-Prometheus数据规则 + parseType: jsonPath + parseScript: '$' + + - name: memory + priority: 1 + fields: + - field: hostname + type: 1 + instance: true + - field: total + type: 0 + unit: kb + - field: usage + type: 0 + unit: '%' + - field: speed + type: 0 + protocol: http + http: + host: ^_^host^_^ + port: ^_^port^_^ + url: /metrics/memory + method: GET + headers: + apiVersion: v1 + params: + param1: param1 + param2: param2 + authorization: + type: Basic Auth + basicAuthUsername: ^_^username^_^ + basicAuthPassword: ^_^password^_^ + parseType: default +``` + +### 监控参数定义文件 + +> 监控参数定义文件用于定义 *需要的输入参数字段结构定义(前端页面根据结构渲染输入参数框)*。 + +样例:自定义一个名称为example的自定义监控类型,其使用HTTP协议采集指标数据。 +文件名称: example.yml 位于 /hertz-beat/define/param/example.yml + +```yaml +# 监控应用类型名称(与文件名保持一致) eg: linux windows tomcat mysql aws... +app: example +# 强制固定必须参数 - host(ipv4,ipv6,域名) +param: + # field-字段名称标识符 + - field: host + # name-参数字段显示名称 + name: 主机Host + # type-字段类型,样式(大部分映射input标签type属性) + type: host + # 是否是必输项 true-必填 false-可选 + required: true + - field: port + name: 端口 + type: number + # 当type为number时,用range表示范围 + range: '[0,65535]' + required: true + # 端口默认值 + defaultValue: 80 + # 参数输入框提示信息 + placeholder: '请输入端口' + - field: username + name: 用户名 + type: text + # 当type为text时,用limit表示字符串限制大小 + limit: 20 + required: false + - field: password + name: 密码 + type: password + required: false + - field: ssl + name: 启动SSL + # 当type为boolean时,前端用switch展示开关 + type: boolean + required: false + - field: method + name: 请求方式 + type: radio + required: true + # 当type为radio单选框,checkbox复选框时,option表示可选项值列表 {name1:value1,name2:value2} + options: + - label: GET请求 + value: GET + - label: POST请求 + value: POST + - label: PUT请求 + value: PUT + - label: DELETE请求 + value: DELETE +``` diff --git a/home/docs/design.md b/home/docs/design.md deleted file mode 100644 index ae4bde2..0000000 --- a/home/docs/design.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -id: design -title: 设计文档 -sidebar_label: 设计文档 ---- - -### 高性能匹配 - -![pathRoleMatcher](/img/docs/PathRoleMatcher.svg) - -### 处理流程 - -![sureness-core](/img/docs/sureness-core.svg) diff --git a/home/docs/help/help.md b/home/docs/help/help.md new file mode 100644 index 0000000..7f58ef1 --- /dev/null +++ b/home/docs/help/help.md @@ -0,0 +1,5 @@ +--- +id: help +title: 帮助入门 +sidebar_label: 帮助入门 +--- diff --git a/home/docs/integrate/sample-bootstrap.md b/home/docs/integrate/sample-bootstrap.md deleted file mode 100644 index 9e8372d..0000000 --- a/home/docs/integrate/sample-bootstrap.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -id: sample-bootstrap -title: Springboot项目集成-配置文件方案 -sidebar_label: Springboot项目集成-配置文件方案 ---- - -[Springboot项目集成-配置文件方案代码仓库地址](https://github.com/tomsun28/sureness/tree/master/sample-bootstrap) - -- 基于`springboot` -- 从默认的配置文件`sureness.yml`加载账户信息,资源角色,过滤资源等信息 -- 使用默认的`sureness-config` -- 使用默认的`JWT, Basic Auth, Digest Auth`方式认证鉴权 -- 保护入口: `SurenessFilterExample` -- 推荐使用`postman`测试,测试样例为`sample-bootstrap-postman.json`,导入`postman`即可 diff --git a/home/docs/integrate/sample-javalin.md b/home/docs/integrate/sample-javalin.md deleted file mode 100644 index 9589a99..0000000 --- a/home/docs/integrate/sample-javalin.md +++ /dev/null @@ -1,296 +0,0 @@ ---- -id: sample-javalin -title: Javalin项目集成 -sidebar_label: Javalin项目集成 ---- - - -# Using Sureness to protect the security of Javalin REST API - -[javalin-sureness sample repository](https://github.com/tomsun28/sureness/tree/master/samples/javalin-sureness) - -Using Sureness to secure Javalin REST API by providing authentication(JWT,Basic,Digest) and authorization(RBAC) - - -## What You Will Learn - -* Creating a simple REST API using Javalin -* Learn how to integrate Sureness into a Javalin application -* Learn how to issue a JWT -* Test API authentication - use JWT Auth, Basic Auth, Digest Auth to test the security of the REST API -* Test API authorization - use different users to verify that they can access the REST API - - -The tutorial assumes that you know what JWT, Basic Auth, Digest Auth, RBAC are. If you -do not, then you can check [jwt](https://jwt.io/introduction/), [basic auth](https://docs.oracle.com/cd/E50612_01/doc.11122/user_guide/content/authn_http_basic.html) , [digest auth](https://docs.oracle.com/cd/E50612_01/doc.11122/user_guide/content/authn_http_digest.html), [rbac](https://en.wikipedia.org/wiki/Role-based_access_control) for an introduction. - -## Setting Up Dependencies - -First, you will need to create a maven project and add Javalin, Sureness dependencies coordinate - -```` - - io.javalin - javalin - {{site.javalinversion}} - - - com.usthe.sureness - sureness-core - 1.0.2 - - - org.slf4j - slf4j-simple - 1.7.30 - -```` - - -## Setting Up Javalin and Create REST API - -We need to create a simple Javalin app and provide some REST API for test. - -``` - // init javalin - Javalin app = Javalin.create().start(8088); -``` - -``` - // create simple rest api - // simple rest api - app.routes(() -> - path("api", () -> { - path("v3", () -> { - get("host", ctx -> ctx.result("get /api/v3/host success")); - put("book", ctx -> ctx.result("put /api/v3/book success")); - }); - path("v2", () -> { - path("host", () -> { - get(ctx -> ctx.result("get /api/v2/host success")); - post(ctx -> ctx.result("post /api/v2/host success")); - put(ctx -> ctx.result("put /api/v2/host success")); - delete(ctx -> ctx.result("delete /api/v2/host success")); - }); - }); - path("v1", () -> { - path("source1", () -> { - get(ctx -> ctx.result("get /api/v1/source1 success")); - post(ctx -> ctx.result("post /api/v1/source1 success")); - put(ctx -> ctx.result("put /api/v1/source1 success")); - delete(ctx -> ctx.result("delete /api/v1/source1 success")); - }); - }); - })); -``` - - -## Setting Up Sureness - -#### 1. Use the Default Configuration to Configure Sureness - -The default configuration -`DefaultSurenessConfig` uses the document datasource `sureness.yml` as the auth datasource. -It supports JWT, Basic Auth, Digest Auth authentication. -``` - public static void main(String[] args) { - // init sureness default config - new DefaultSurenessConfig(); - } -``` - -#### 2. Config Document Datasource - `sureness.yml` - -Sureness authentication requires us to provide our own account data, role permission data. These data may come from document, databases,, annotations, etc. When we use sureness default configuration above, the datasource is document - `sureness.yml`. - -Create a file named `sureness.yml` in the `resource` directory. Configure account data, role permission data in the `sureness.yml`. eg: - -````yaml -## -- sureness.yml document dataSource-- ## - -# load api resource which need be protected, config role who can access these resource. -# resources that are not configured are also authenticated and protected by default, but not authorized -# eg: /api/v2/host===post===[role2,role3] means /api/v2/host===post can be access by role2,role3 -# eg: /api/v1/source2===get===[] means /api/v1/source2===get can not be access by any role -resourceRole: - - /api/v1/source1===get===[role2] - - /api/v1/source1===post===[role1] - - /api/v1/source1===delete===[role3] - - /api/v1/source1===put===[role1,role2] - - /api/v1/source2===get===[] - - /api/v2/host===post===[role2,role3] - - /api/v2/host===get===[role2,role3] - - /api/v2/host===delete===[role2,role3] - - /api/v2/host===put===[role2,role3] - - /api/v3/*===*===[role1,role2,role3] - -# load api resource which do not need be protected, means them need be excluded. -# these api resource can be access by everyone -excludedResource: - - /api/v3/host===get - - /**/*.html===get - - /**/*.js===get - - /**/*.css===get - - /**/*.ico===get - -# account info -# there are three account: admin, root, tom -# eg: admin has [role1,role2] ROLE, unencrypted password is admin, encrypted password is 0192023A7BBD73250516F069DF18B500 -# eg: root has role1, unencrypted password is 23456 -# eg: tom has role3, unencrypted password is 32113 -account: - - appId: admin - # if add salt, the password is encrypted password - the result: MD5(password+salt) - # digest auth not support encrypted password - # if no salt, the password is unencrypted password - credential: 0192023A7BBD73250516F069DF18B500 - salt: 123 - role: [role1,role2] - - appId: root - credential: 23456 - role: [role1,role2] - - appId: tom - credential: 32113 - role: [role3] - -```` - - - -#### 3. Add an Interceptor Intercepting All Requests - -The essence of sureness is to intercept all rest requests for authenticating and authorizing. The interceptor can be a filter or interceptor, it intercepts all request to check them. In Javalin, we use `app.before()`. - -``` - // intercept all rest requests for authenticating and authorizing - app.before(ctx -> { - SubjectSum subject = SurenessSecurityManager.getInstance().checkIn(ctx.req); - // when auth error , the exception throw, you should use app.exception() catch it and define return - if (subject != null) { - SurenessContextHolder.bindSubject(subject); - } - }); - - app.after(ctx -> SurenessContextHolder.unbindSubject()); - -``` - -#### 4. Last, Implement Auth Exception Handling Process - -Sureness uses exception handling process: - -- If auth success, method - `checkIn()` will return a `SubjectSum` object containing user information. -- If auth failure, method - `checkIn()` will throw different types of auth exceptions. - -We need to continue the subsequent process based on these exceptions.(eg: return the request response) - -Here we need to customize the exceptions thrown by `checkIn`, passed directly when auth success, catch exception when auth failure and do something: - -```` - // when auth error , the exception throw, you should use app.exception() catch it and define return - app.exception(UnknownAccountException.class, (e, ctx) -> { - log.debug("this request user account not exist"); - ctx.status(401).result(e.getMessage()); - }).exception(IncorrectCredentialsException.class, (e, ctx) -> { - log.debug("this account credential is incorrect"); - ctx.status(401).result(e.getMessage()); - }).exception(ExpiredCredentialsException.class, (e, ctx) -> { - log.debug("this account credential expired"); - ctx.status(401).result(e.getMessage()); - }).exception(NeedDigestInfoException.class, (e, ctx) -> { - log.debug("you should try once again with digest auth information"); - ctx.status(401).header("WWW-Authenticate", e.getAuthenticate()); - }).exception(UnauthorizedException.class, (e, ctx) -> { - log.debug("this account can not access this resource"); - ctx.status(403).result(e.getMessage()); - }).exception(Exception.class, (e, ctx) -> { - log.error("other exception happen: ", e); - ctx.status(500).result(e.getMessage()); - }); - -```` - - -## Provide an Issue JWT Api - -Now we provide a REST API to issue JWT. We can use this JWT to test JWT auth. - -```` - // issue jwt rest api - app.get("/auth/token", ctx -> { - SubjectSum subjectSum = SurenessContextHolder.getBindSubject(); - if (subjectSum == null) { - ctx.result("Please auth!"); - } else { - String principal = (String) subjectSum.getPrincipal(); - List roles = (List) subjectSum.getRoles(); - // issue jwt - String jwt = JsonWebTokenUtil.issueJwt(UUID.randomUUID().toString(), principal, - "token-server", 3600L, roles); - ctx.result(jwt); - } - }); -```` - -**All done, we can test now!** - -## Test - -Through the above steps, a complete auth function project is completed. Someone maybe think that with only these few steps, where is its complete function and what can it support? -This built project is based on the RBAC permission model and supports Baisc authentication, Digest authentication and JWT authentication. It can fine-grained control the user's access to the restful api provided by the Javalin. That is to control which users can access which api. - -Let's test it. (we use postman and chrome to test.) - -### Test Authentication - -#### 1. Basic Auth Test - -Use postman Basic auth, as shown below: - -* success - input username: admin, password: admin - -![success](/img/docs/javalin/test1.PNG) - - -* fail - input username: admin, password: 12345 - -![fail](/img/docs/javalin/test2.PNG) - -#### 2. Digest Auth Test - -Note: If password has been encrypted, Digest auth not support.(So the account admin not support Digest auth). -Use chrome to Digest auth, as shown below: - -![success](/img/docs/javalin/test3.PNG) - -![success](/img/docs/javalin/test4.PNG) - -#### 3. JWT Auth Test - -First, we should access **[GET /auth/token]** api to get a JWT to use, as shown below: - -![success](/img/docs/javalin/test5.PNG) - -Then, use the JWT as Bearer Token to access REST API, as shown below: - -![success](/img/docs/javalin/test6.PNG) - - -### Test Authorization - -* success - user **tom** has role **role3**, the api **[DELETE - /api/v2/host]** support **role3** access, so **tom** can access api **[DELETE - /api/v2/host]** success, as shown below: - -![success](/img/docs/javalin/test7.PNG) - - -* fail - user **tom** only has role **role3**, the api **[GET - /api/v1/source1]** only support **role2** access, not support **role3**, so **tom** can not access api **[GET - /api/v1/source1]**, as shown below: - -![fail](/img/docs/javalin/test8.PNG) - - -## Conclusion - -Javalin is a framework dedicated to simplicity and ease of use, and so is Sureness. -We hope you enjoy this tutorial. Of course, the tutorial only introduces a simple introduction. Our account data, role permission data can not only be written in `sureness.yml`, but also loaded and obtained from the database and annotations. We can also customize the authentication method, data source, etc. -Finally, thank you again for reading. - -[DEMO SOURCE CODE ON GITHUB](https://github.com/usthe/sureness/tree/master/samples/javalin-sureness) \ No newline at end of file diff --git a/home/docs/integrate/sample-ktor.md b/home/docs/integrate/sample-ktor.md deleted file mode 100644 index 538c3bc..0000000 --- a/home/docs/integrate/sample-ktor.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -id: sample-ktor -title: Ktor项目集成 -sidebar_label: Ktor项目集成 ---- - -[ktor-sureness例子项目仓库地址](https://github.com/tomsun28/sureness/tree/master/samples/ktor-sureness) - -- 基于`ktor, servlet` -- 从默认的配置文件`sureness.yml`加载账户信息,资源角色,过滤资源等信息 -- 使用默认的`sureness-config` -- 使用默认的`JWT, Basic Auth, Digest Auth`方式认证鉴权 -- 例子中包含`REST API` -- 保护入口: `Application.kt` -- 推荐使用`postman`测试 - - diff --git a/home/docs/integrate/sample-micronaut.md b/home/docs/integrate/sample-micronaut.md deleted file mode 100644 index aedc017..0000000 --- a/home/docs/integrate/sample-micronaut.md +++ /dev/null @@ -1,423 +0,0 @@ ---- -id: sample-micronaut -title: Micronaut项目集成 -sidebar_label: Micronaut项目集成 ---- - -Using Sureness to secure micronaut REST API by providing authentication(JWT,Basic,Digest) and authorization(RBAC) - - -## What You Will Learn - -* Creating a simple REST API using micronaut -* Learn how to integrate Sureness into a micronaut application -* Test API authentication - use JWT Auth, Basic Auth, Digest Auth to test the security of the REST API -* Test API authorization - use different users to verify that they can access the REST API - - -The tutorial assumes that you know what JWT, Basic Auth, Digest Auth, RBAC are. If you -do not, then you can check [jwt](https://jwt.io/introduction/), [basic auth](https://docs.oracle.com/cd/E50612_01/doc.11122/user_guide/content/authn_http_basic.html) , [digest auth](https://docs.oracle.com/cd/E50612_01/doc.11122/user_guide/content/authn_http_digest.html), [rbac](https://en.wikipedia.org/wiki/Role-based_access_control) for an introduction. - -## Setting Up Dependencies - -First, you will need to create a maven project and add micronautn, Sureness dependencies coordinate - -```` - - - 8 - 1.8 - 1.8 - jar - 1.8 - 2.4.3 - 1.1.8 - 3.8.1 - com.usthe.sureness.micronaut.Application - netty - - - - - - io.micronaut - micronaut-bom - ${micronaut.version} - pom - import - - - - - - - org.slf4j - slf4j-simple - 1.7.30 - - - com.usthe.sureness - sureness-core - - - io.micronaut - micronaut-inject - compile - - - io.micronaut - micronaut-validation - compile - - - ch.qos.logback - logback-classic - runtime - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - io.micronaut.test - micronaut-test-junit5 - test - - - io.micronaut - micronaut-http-client - compile - - - io.micronaut - micronaut-http-server-netty - compile - - - io.micronaut - micronaut-runtime - compile - - - - - - - - io.micronaut.build - micronaut-maven-plugin - ${micronaut-maven-plugin.version} - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - - io.micronaut - micronaut-inject-java - ${micronaut.version} - - - io.micronaut - micronaut-validation - ${micronaut.version} - - - - -Amicronaut.processing.group=com.usthe.sureness - -Amicronaut.processing.module=micronaut-sureness - - - - - - - - -```` - - -- [User Guide](https://docs.micronaut.io/2.4.3/guide/index.html) -- [API Reference](https://docs.micronaut.io/2.4.3/api/index.html) -- [Configuration Reference](https://docs.micronaut.io/2.4.3/guide/configurationreference.html) -- [Micronaut Guides](https://guides.micronaut.io/index.html) - -We need to create a simple micronautn app and provide some REST API for test. - - - -## Setting Up Sureness - -#### 1.Run Micronaut Application - -``` - -import io.micronaut.runtime.Micronaut; - - -public class Application{ - - public static void main(String[] args) { - Micronaut.run(Application.class, args); - - } -} - -``` - -#### 2. Config Document Datasource - `sureness.yml` - -Sureness authentication requires us to provide our own account data, role permission data. These data may come from document, databases,, annotations, etc. When we use sureness default configuration above, the datasource is document - `sureness.yml`. - -Create a file named `sureness.yml` in the `resource` directory. Configure account data, role permission data in the `sureness.yml`. eg: - -````yaml -## -- sureness.yml document dataSource-- ## - -# load api resource which need be protected, config role who can access these resource. -# resources that are not configured are also authenticated and protected by default, but not authorized -# eg: /api/v2/host===post===[role2,role3] means /api/v2/host===post can be access by role2,role3 -# eg: /api/v1/source2===get===[] means /api/v1/source2===get can not be access by any role -resourceRole: - - /api/v1/source1===get===[role2] - - /api/v1/source1===post===[role1] - - /api/v1/source1===delete===[role3] - - /api/v1/source1===put===[role1,role2] - - /api/v1/source2===get===[] - - /api/v2/host===post===[role2,role3] - - /api/v2/host===get===[role2,role3] - - /api/v2/host===delete===[role2,role3] - - /api/v2/host===put===[role2,role3] - - /api/v3/*===*===[role1,role2,role3] - -# load api resource which do not need be protected, means them need be excluded. -# these api resource can be access by everyone -excludedResource: - - /api/v3/host===get - - /**/*.html===get - - /**/*.js===get - - /**/*.css===get - - /**/*.ico===get - -# account info -# there are three account: admin, root, tom -# eg: admin has [role1,role2] ROLE, unencrypted password is admin, encrypted password is 0192023A7BBD73250516F069DF18B500 -# eg: root has role1, unencrypted password is 23456 -# eg: tom has role3, unencrypted password is 32113 -account: - - appId: admin - # if add salt, the password is encrypted password - the result: MD5(password+salt) - # digest auth not support encrypted password - # if no salt, the password is unencrypted password - credential: 0192023A7BBD73250516F069DF18B500 - salt: 123 - role: [role1,role2] - - appId: root - credential: 23456 - role: [role1,role2] - - appId: tom - credential: 32113 - role: [role3] - -```` - - - -#### 3. Add an Interceptor Intercepting All Requests - -The essence of sureness is to intercept all rest requests for authenticating and authorizing. The interceptor can be a filter or interceptor, it intercepts all request to check them. In Micronaut, we use Filter -```java -@Filter("/**") -public class MicronautSurenessFilterExample implements HttpServerFilter { - - private static final Logger logger = LoggerFactory.getLogger(MicronautSurenessFilterExample.class); - - @Inject - private SurenessSecurityManager securityManager ; - - - @Override - public Publisher> doFilter(HttpRequest request, - ServerFilterChain chain) { - Integer statusCode = null; - String errorMsg = null; - try { - SubjectSum subject =securityManager.checkIn(request); - if (subject != null) { - SurenessContextHolder.bindSubject(subject); - } - } catch (ProcessorNotFoundException | UnknownAccountException | UnsupportedSubjectException e4) { - logger.debug("this request is illegal"); - statusCode = HttpStatus.BAD_REQUEST.getCode(); - errorMsg = e4.getMessage(); - } catch (DisabledAccountException | ExcessiveAttemptsException e2 ) { - logger.debug("the account is disabled"); - statusCode = HttpStatus.FORBIDDEN.getCode(); - errorMsg = e2.getMessage(); - } catch (IncorrectCredentialsException | ExpiredCredentialsException e3) { - logger.debug("this account credential is incorrect or expired"); - statusCode = HttpStatus.FORBIDDEN.getCode(); - errorMsg = e3.getMessage(); - } catch (UnauthorizedException e5) { - logger.debug("this account can not access this resource"); - statusCode = HttpStatus.FORBIDDEN.getCode(); - errorMsg = e5.getMessage(); - } catch (RuntimeException e) { - logger.error("other exception happen: ", e); - statusCode = HttpStatus.FORBIDDEN.getCode(); - errorMsg = e.getMessage(); - } - if (statusCode != null && errorMsg != null) { - String finalErrorMsg = errorMsg; - Integer finalStatusCode = statusCode; - logger.info(statusCode+"--->"+errorMsg); - try { - URI location = new URI("/auth/error"); - request = request.mutate().headers(httpHeaders -> { - httpHeaders.add("statusCode", String.valueOf(finalStatusCode)); - httpHeaders.add("errorMsg", finalErrorMsg); - }).uri(location); - }catch (URISyntaxException e){ - logger.error("uri error"); - } - } - return chain.proceed(request); - } - - - - @Override - public int getOrder() { - return ServerFilterPhase.SECURITY.order(); - } - - -} -``` -SurenessSecurityManager configuration - -```java -import io.micronaut.context.annotation.Factory; - -@Factory -public class SurenessConfiguration { - private static final Logger logger = LoggerFactory.getLogger(SurenessConfiguration.class); - - @Factory - public SurenessSecurityManager init() { - SurenessAccountProvider accountProvider = new DocumentAccountProvider(); - List processorList = new LinkedList<>(); - NoneProcessor noneProcessor = new NoneProcessor(); - processorList.add(noneProcessor); - PasswordProcessor passwordProcessor = new PasswordProcessor(); - passwordProcessor.setAccountProvider(accountProvider); - processorList.add(passwordProcessor); - DefaultProcessorManager processorManager = new DefaultProcessorManager(processorList); - if (logger.isDebugEnabled()) { - logger.debug("DefaultProcessorManager init"); - } - PathTreeProvider pathTreeProvider = new DocumentPathTreeProvider(); - DefaultPathRoleMatcher pathRoleMatcher = new DefaultPathRoleMatcher(); - pathRoleMatcher.setPathTreeProvider(pathTreeProvider); - pathRoleMatcher.buildTree(); - if (logger.isDebugEnabled()) { - logger.debug("DefaultPathRoleMatcher init"); - } - - // SubjectFactory init - SubjectFactory subjectFactory = new SurenessSubjectFactory(); - List subjectCreates = Arrays.asList( - new NoneSubjectReactiveCreator(), - new BasicSubjectReactiveCreator()); - subjectFactory.registerSubjectCreator(subjectCreates); - if (logger.isDebugEnabled()) { - logger.debug("SurenessSubjectFactory init"); - } - - // surenessSecurityManager init - SurenessSecurityManager securityManager = SurenessSecurityManager.getInstance(); - securityManager.setPathRoleMatcher(pathRoleMatcher); - securityManager.setSubjectFactory(subjectFactory); - securityManager.setProcessorManager(processorManager); - if (logger.isDebugEnabled()) { - logger.debug("SurenessSecurityManager init"); - } - return securityManager; - } - -} - - -``` - -#### 4. Last, Implement Auth Exception Handling Process - -Sureness uses exception handling process: - -- If auth success, method - `checkIn()` will return a `SubjectSum` object containing user information. -- If auth failure, method - `checkIn()` will throw different types of auth exceptions. - -We need to continue the subsequent process based on these exceptions.(eg: return the request response) - -Here we need to customize the exceptions thrown by `checkIn`, passed directly when auth success, catch exception when auth failure and do something: - -```` -// when auth error , add error msg to HttpRequest - if (statusCode != null && errorMsg != null) { - String finalErrorMsg = errorMsg; - Integer finalStatusCode = statusCode; - logger.info(statusCode+"--->"+errorMsg); - try { - URI location = new URI("/auth/error"); - request = request.mutate().headers(httpHeaders -> { - httpHeaders.add("statusCode", String.valueOf(finalStatusCode)); - httpHeaders.add("errorMsg", finalErrorMsg); - }).uri(location); - }catch (URISyntaxException e){ - logger.error("uri error"); - } - } - -```` - - -**All done, we can test now!** - -## Test - -Through the above steps, a complete auth function project is completed. Someone maybe think that with only these few steps, where is its complete function and what can it support? -This built project is based on the RBAC permission model and supports Baisc authentication, Digest authentication and JWT authentication. It can fine-grained control the user's access to the restful api provided by the Javalin. That is to control which users can access which api. - -Let's test it. (we use postman and chrome to test.) - -### Test Authentication - -#### 1. Basic Auth Test - -Use postman Basic auth, as shown below: - -* success - input username: admin, password: admin - -![success](/img/docs/micronaut/success.png) - - -* fail - input username: admin, password: admin1234 - -![fail](/img/docs/micronaut/error.png) - - -## Conclusion - -micronaut is a framework dedicated to simplicity and ease of use, and so is Sureness. -We hope you enjoy this tutorial. Of course, the tutorial only introduces a simple introduction. Our account data, role permission data can not only be written in `sureness.yml`, but also loaded and obtained from the database and annotations. We can also customize the authentication method, data source, etc. -Finally, thank you again for reading. - -[DEMO SOURCE CODE ON GITHUB](https://github.com/usthe/sureness/tree/master/samples/javalin-sureness) \ No newline at end of file diff --git a/home/docs/integrate/sample-quarkus.md b/home/docs/integrate/sample-quarkus.md deleted file mode 100644 index c90873b..0000000 --- a/home/docs/integrate/sample-quarkus.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -id: sample-quarkus -title: Quarkus项目集成 -sidebar_label: Quarkus项目集成 ---- - -[quarkus-sureness例子项目仓库地址](https://github.com/tomsun28/sureness/tree/master/samples/quarkus-sureness) - -- 基于`quarkus, jax-rs` -- 从默认的配置文件`sureness.yml`加载账户信息,资源角色,过滤资源等信息 -- 使用默认的`sureness-config` -- 使用默认的`JWT, Basic Auth, Digest Auth`方式认证鉴权 -- 例子中包含`REST API` -- 保护入口: `SurenessFilterExample` -- 推荐使用`postman`测试 - diff --git a/home/docs/integrate/sample-spring-webflux.md b/home/docs/integrate/sample-spring-webflux.md deleted file mode 100644 index f2af8ab..0000000 --- a/home/docs/integrate/sample-spring-webflux.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: sample-spring-webflux -title: Spring-Webflux项目集成 -sidebar_label: Spring-Webflux项目集成 ---- - -[spring-webflux-sureness例子项目仓库地址](https://github.com/tomsun28/sureness/tree/master/samples/spring-webflux-sureness) - -- 基于`spring-webflux` -- 自定义 `subject creator (BasicSubjectReactiveCreator, JwtSubjectReactiveCreator, NoneSubjectReactiveCreator)` 适配 `ServerHttpRequest` 请求体 -- 从默认的配置文件`sureness.yml`加载账户信息,资源角色,过滤资源等信息 -- 使用默认的`JWT, Basic Auth`方式认证鉴权 -- 例子中包含`REST API` -- 保护入口: `SurenessFilterExample` -- 推荐使用`postman`测试 diff --git a/home/docs/integrate/sample-tom.md b/home/docs/integrate/sample-tom.md deleted file mode 100644 index 549fcd4..0000000 --- a/home/docs/integrate/sample-tom.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -id: sample-tom -title: Springboot项目集成-数据库方案 -sidebar_label: Springboot项目集成-数据库方案 ---- - -- 基于`springboot,jpa...` -- 自定义数据源,使用从数据库加载账户信息,资源角色,过滤资源等信息,这样便于动态调整(见`AccountProvider ResourceProvider`) -- 除了使用了默认的`JWT, Basic Auth`方式认证鉴权,新增自定义认证鉴权(自定义`subject subjectCreator processor...`) -- 推荐使用`postman`测试,测试样例为`sample-tom-postman.json`,导入`postman`即可 - -样例中包含2种自定义认证鉴权方式: - -1. 自定义了一个单独的`subjectCreator` 见 `CustomPasswdSubjectCreator` - 演示功能就是自定义的从不同地方获取请求体的账户密码,来创建默认的`PasswordSubject`,走默认的账户密码认证流程 - -2. 自定义了一整套流程(包含`subject subjectCreator processor`) 见 `CustomTokenSubject CustomTokenSubjectCreator CustomTokenProcessor` - 演示功能就是自定义一个简单的`token`作为`subject`对象,对其自定义创建获取方式-`creator`和自定义认证鉴权处理流程-`processor`. - 此自定义流程也演示了一个简单的`token`刷新流程 diff --git a/home/docs/others/contact.md b/home/docs/others/contact.md new file mode 100644 index 0000000..7b0f91d --- /dev/null +++ b/home/docs/others/contact.md @@ -0,0 +1,32 @@ +--- +id: contact +title: 交流联系 +sidebar_label: 交流联系 +--- +> 如果您在使用过程有任何需要帮助或者想交流建议,可以通过 微信群、QQ群 社区网站 ISSUE 讨论交流。 + +## BUG问题报告,功能建议相关建议通过仓库ISSUE + +[GITEE仓库ISSUES](https://gitee.com/usthe/hertzbeat/issues) +[GITHUB仓库ISSUES](https://github.com/usthe/hertzbeat/issues) + +## 微信交流群 + +加微信号 tan-cloud 或 扫描下面账号二维码拉您进微信群。 + +tan-cloud + +## QQ交流群 + +加QQ群号 718618151 或 扫描下面的群二维码进群, 验证信息: tancloud + +tan-cloud + +## 社区交流网站 + +[社区交流](https://support.qq.com/products/379369) https://support.qq.com/products/379369 + +## 其它联系 +其它工作联系,请联系电话:18781603458 + + diff --git a/home/docs/others/design.md b/home/docs/others/design.md new file mode 100644 index 0000000..f77bfcf --- /dev/null +++ b/home/docs/others/design.md @@ -0,0 +1,13 @@ +--- +id: design +title: 设计文档 +sidebar_label: 设计文档 +--- + +### HertzBeat架构 + +![architecture](/img/docs/hertzbeat-stru.svg) + +### TanCloud架构 + +TanCloud是基于HertzBeat的公网SAAS集群版本,采用多集群,多租户的架构模式。 diff --git a/home/docs/others/private.md b/home/docs/others/private.md new file mode 100644 index 0000000..337765c --- /dev/null +++ b/home/docs/others/private.md @@ -0,0 +1,17 @@ +--- +id: private +title: 私有化部署 +sidebar_label: 私有化部署 +--- +如果您的团队想私有化部署此监控系统,目前我们提供两种方案。 + +#### 社区版监控产品HertzBeat(完全免费) + +我们提供社区版监控产品 HertzBeat, 可以直接参考[HertzBeat部署文档](/docs)下载部署, 对个人或企业完全免费。 +安装部署过程中遇到的问题可以通过[社区,微信群,QQ群等](/docs/others/contact)反馈交流学习。 +我们也提供有偿远程安装部署服务。 + +#### HertzBeat的集群SAAS版本-TanCloud(付费) + +此版本即[TanCloud官网](https://console.tancloud.cn)环境对应版本,对比HertzBeat拥有集群,用户,租户等功能,适合中大型团队企业。 +此版本为付费版本,关于TanCloud私有化部署方案及价格,请加我们工作人员微信 tomsun28 咨询,加微信请备注:私有化+团队名 diff --git a/home/docs/others/resource.md b/home/docs/others/resource.md new file mode 100644 index 0000000..ebea973 --- /dev/null +++ b/home/docs/others/resource.md @@ -0,0 +1,19 @@ +--- +id: resource +title: 相关资源 +sidebar_label: 相关资源 +--- + +## 图标资源 + +### TANCLOUD-HertzBeat LOGO + +![logo](/img/tancloud-logo.svg) + +下载: [SVG](https://gitee.com/usthe/hertzbeat/raw/master/home/static/img/tancloud-logo.svg) [JPG](https://gitee.com/usthe/hertzbeat/raw/master/home/static/img/tancloud-logo.jpg) + +### TANCLOUD 品牌 LOGO + +![logo](/img/tancloud-brand.svg) + +下载: [SVG](https://gitee.com/usthe/hertzbeat/raw/master/home/static/img/tancloud-brand.svg) [JPG](https://gitee.com/usthe/hertzbeat/raw/master/home/static/img/tancloud-brand.jpg) diff --git a/home/docs/sponsor.md b/home/docs/others/sponsor.md similarity index 62% rename from home/docs/sponsor.md rename to home/docs/others/sponsor.md index c164773..0cf3964 100644 --- a/home/docs/sponsor.md +++ b/home/docs/others/sponsor.md @@ -5,7 +5,7 @@ sidebar_label: 赞助 --- -**sureness对个人或企业完全免费,如果您喜欢这个项目并且愿意提供帮助,请作者喝杯咖啡吧** +**HertzBeat对个人或企业完全免费,如果您喜欢这个项目并且愿意提供帮助,请我们喝杯咖啡吧** ### 微信支付宝 diff --git a/home/docs/start/docker-deploy.md b/home/docs/start/docker-deploy.md index 8aa684a..166362c 100644 --- a/home/docs/start/docker-deploy.md +++ b/home/docs/start/docker-deploy.md @@ -15,12 +15,13 @@ sidebar_label: Docker方式部署 ``` 2. 拉取HertzBeat Docker镜像 + 镜像版本TAG可查看[官方镜像仓库](https://hub.docker.com/r/tancloud/hertzbeat/tags) ``` $ docker pull tancloud/hertzbeat:latest ``` 3. 配置HertzBeat的配置文件 在主机目录下创建application.yml,eg:/opt/application.yml - 配置文件内容参考 项目仓库/script/application.yml,需要替换里面的MYSQL服务和TDengine服务参数,IP端口账户密码(若使用邮件告警,需替换里面的邮件服务器参数) + 配置文件内容参考 项目仓库[/script/application.yml](https://gitee.com/usthe/hertzbeat/raw/master/script/application.yml),需要替换里面的MYSQL服务和TDengine服务参数,IP端口账户密码(若使用邮件告警,需替换里面的邮件服务器参数) 具体替换参数如下: ``` spring.datasource.url @@ -38,7 +39,7 @@ sidebar_label: Docker方式部署 ``` -5. 启动HertzBeat Docker容器 +4. 启动HertzBeat Docker容器 ``` $ docker run -d -p 1157:1157 -v /opt/application.yml:/opt/hertz-beat/config/application.yml --name hertzbeat tancloud/hertzbeat:latest 526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd @@ -50,7 +51,7 @@ sidebar_label: Docker方式部署 - --name hertzbeat : 命名容器名称 hertzbeat - tancloud/hertzbeat:latest : 使用拉取的HertzBeat官方发布的应用镜像来启动容器 -6. 开始探索HertzBeat +5. 开始探索HertzBeat 浏览器访问 http://ip:1157 开始使用HertzBeat进行监控告警。 **HAVE FUN** diff --git a/home/docs/start/mysql-init.md b/home/docs/start/mysql-init.md index ee79a76..ed7eb67 100644 --- a/home/docs/start/mysql-init.md +++ b/home/docs/start/mysql-init.md @@ -25,6 +25,6 @@ MYSQL是一款值得信赖的关系型数据库,HertzBeat使用其存储监控 ### SQL脚本执行 1. 进入MYSQL或使用客户端连接MYSQL服务 2. 创建名称为hertzbeat的数据库 -3. 执行位于项目仓库/script/sql/目录下的数据库建表初始化脚本 schema.sql +3. 执行位于项目仓库/script/sql/目录下的数据库建表初始化脚本 [schema.sql](https://gitee.com/usthe/hertzbeat/raw/master/script/sql/schema.sql) 4. 查看hertzbeat数据库是否成功建表 diff --git a/home/docs/start/package-deploy.md b/home/docs/start/package-deploy.md index 0c7a501..013074b 100644 --- a/home/docs/start/package-deploy.md +++ b/home/docs/start/package-deploy.md @@ -20,14 +20,36 @@ sidebar_label: 安装包方式部署 - 从[GITEE Release](https://gitee.com/usthe/hertzbeat/releases) 仓库下载 - 从[GITHUB Release](https://github.com/usthe/hertzbeat/releases) 仓库下载 -3. 部署启动 +3. 配置HertzBeat的配置文件 解压安装包到主机 eg: /opt/hertz-beat ``` $ tar zxvf hertz-beat-1.0.tar.gz ``` - 执行位于安装目录/bin/下的启动脚本 startup.sh + 修改位于 hertz-beat/config/application.yml 的配置文件 + 需要替换里面的MYSQL服务和TDengine服务参数,IP端口账户密码(若使用邮件告警,需替换里面的邮件服务器参数) + 具体替换参数如下: + ``` + spring.datasource.url + spring.datasource.username + spring.datasource.password + + warehouse.store.td-engine.url + warehouse.store.td-engine.username + warehouse.store.td-engine.password + + spring.mail.host + spring.mail.port + spring.mail.username + spring.mail.password + + ``` + +4. 部署启动 + 执行位于安装目录hertz-beat/bin/下的启动脚本 startup.sh ``` $ ./startup.sh ``` +5. 开始探索HertzBeat + 浏览器访问 http://ip:1157 开始使用HertzBeat进行监控告警。 **HAVE FUN** diff --git a/home/docs/start/quickstart.md b/home/docs/start/quickstart.md index 5f1b46e..277abb6 100644 --- a/home/docs/start/quickstart.md +++ b/home/docs/start/quickstart.md @@ -17,7 +17,7 @@ sidebar_label: 快速开始 1. docker安装MYSQl `docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql` 2. 创建名称为hertzbeat的数据库 -3. 执行位于项目仓库/script/sql/目录下的数据库脚本 schema.sql +3. 执行位于项目仓库/script/sql/目录下的数据库脚本 [schema.sql](https://gitee.com/usthe/hertzbeat/raw/master/script/sql/schema.sql) 详细步骤参考 [依赖服务MYSQL安装初始化](mysql-init.md) @@ -36,8 +36,10 @@ sidebar_label: 快速开始 详细步骤参考 [通过Docker方式安装HertzBeat](docker-deploy.md) -#### 通过安装包安装 -todo +#### 通过安装包安装 +1. 下载您系统环境对应的安装包 [GITEE Release](https://gitee.com/usthe/hertzbeat/releases) [GITHUB Release](https://github.com/usthe/hertzbeat/releases) +2. 配置HertzBeat的配置文件 hertz-beat/config/application.yml +3. 部署启动 `$ ./startup.sh ` 详细步骤参考 [通过安装包安装HertzBeat](package-deploy.md) diff --git a/home/docusaurus.config.js b/home/docusaurus.config.js index 2f3acbe..350d7c7 100644 --- a/home/docusaurus.config.js +++ b/home/docusaurus.config.js @@ -1,9 +1,9 @@ const path = require('path') const organizationName = 'usthe' // Usually your GitHub org/user name. -const projectName = 'sureness' // Usually your repo name. +const projectName = 'hertzbeat' // Usually your repo name. const branch = 'master' -const repoUrl = `https://github.com/dromara/${projectName}` +const repoUrl = `https://github.com/usthe/${projectName}` const cdnUrl = '/' module.exports = { @@ -85,51 +85,33 @@ module.exports = { { label: '博客', position: 'left', - to: 'blog', + to: 'blog/', }, { label: '讨论交流', position: 'left', - to: 'docs/', + to: 'docs/others/contact', }, { label: '私有化部署', position: 'left', - to: 'docs/', - }, - { - label: '反馈建议', - position: 'left', - items: [ - { - label: 'Github Discussion', - href: 'https://github.com/dromara/sureness/discussions', - }, - { - label: 'Gitter Channel', - href: 'https://gitter.im/usthe/sureness', - }, - { - label: 'QQ Group - 390083213', - href: 'https://qm.qq.com/cgi-bin/qm/qr?k=3IpzQjFOztJe464_eMBmDHfT0YTWK5Qa&jump_from=webapi', - }, - ], + to: 'docs/others/private', }, { label: '其它', position: 'left', items: [ { - label: 'Design', - to: 'docs/design', + label: '设计文档', + to: 'docs/others/design', }, { - label: 'Contributing', - to: 'docs/contributing', + label: '赞助我们', + to: 'docs/others/sponsor', }, { - label: 'Sponsor', - to: 'docs/sponsor', + label: '相关资源', + to: 'docs/others/resource', }, ], }, @@ -149,19 +131,19 @@ module.exports = { items: [ { label: '使用介绍', - to: 'docs/introduce', + to: 'docs/', }, { label: '安装文档', to: 'docs/start/quickstart', }, { - label: 'High Performance', - href: 'https://github.com/tomsun28/sureness-shiro-spring-security-benchmark', + label: '自定义监控', + to: 'docs/advanced/extend-point' }, { - label: 'Dashboard', - href: 'https://github.com/dromara/sureness/projects/1', + label: '帮助文档', + to: 'docs/help/help' }, ], }, @@ -169,20 +151,20 @@ module.exports = { title: '探云科技', items: [ { - label: 'Dromara', - href: 'https://dromara.org', + label: '交流联系', + to: 'docs/others/contact', }, { - label: 'Github Discussion', - href: 'https://github.com/dromara/sureness/discussions', + label: '社区网站', + href: 'https://support.qq.com/products/379369', }, { - label: 'Gitter Channel', - href: 'https://gitter.im/usthe/sureness', + label: 'TANCLOUD探云', + href: 'https://tancloud.cn', }, { - label: 'QQ Group - 390083213', - href: 'https://qm.qq.com/cgi-bin/qm/qr?k=3IpzQjFOztJe464_eMBmDHfT0YTWK5Qa&jump_from=webapi', + label: 'HertzBeat赫兹节拍', + href: 'https://hertzbeat.com', }, ], }, @@ -198,12 +180,8 @@ module.exports = { href: 'https://gitee.com/usthe/hertzbeat', }, { - label: 'HertzBeat赫兹节拍', - href: 'https://hertzbeat.com', - }, - { - label: 'TanCloud探云', - href: 'https://tancloud.cn', + label: '相关资源', + to: 'docs/others/resource', }, ], }, @@ -213,7 +191,7 @@ module.exports = { src: cdnUrl + 'img/tancloud-brand.svg', href: 'https://tancloud.cn', }, - copyright: `Apache License 2.0 | Copyright © ${new Date().getFullYear()}`, + copyright: `蜀ICP备2022002218号 | Copyright TANCLOUD© ${new Date().getFullYear()}`, }, }, presets: [ diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-datasource.md b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-datasource.md index 164300e..dadb906 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-datasource.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-datasource.md @@ -78,4 +78,4 @@ public class DefaultAccount implements SurenessAccount { 这个具体的数据库接口实现可参考类 - [DatabaseAccountProvider](https://github.com/tomsun28/sureness/blob/master/sample-tom/src/main/java/com/usthe/sureness/sample/tom/sureness/provider/DatabaseAccountProvider.java) -具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/integrate/sample-tom) +具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/help/sample-tom) diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-processor.md b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-processor.md index 902119f..02551b9 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-processor.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-processor.md @@ -32,4 +32,4 @@ public abstract class BaseProcessor implements Processor{ sureness使用异常流程模型,以上的认证失败或鉴权失败都会抛出不同类型的异常,用户在最外部捕获判断实现接下来的流程。 sureness默认异常类型参考 [默认异常类型](/docs/start/default-exception) -具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/integrate/sample-tom) +具体扩展实践请参考 [Springboot项目集成-数据库方案](/docs/help/sample-tom) diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject-creator.md b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject-creator.md index f4bea25..ca484a4 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject-creator.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject-creator.md @@ -17,4 +17,4 @@ sureness已经内置能创建出基于账户密码的PasswordSubject的BasicSubj 实现`SubjectCreate`接口方法,根据request请求的内容创建出对应需要的的`subject` -具体扩展实践请参考 [sample-spring-webflux项目集成案例](/docs/integrate/sample-spring-webflux) \ No newline at end of file +具体扩展实践请参考 [sample-spring-webflux项目集成案例](/docs/help/sample-spring-webflux) diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject.md b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject.md index 805075c..c26c730 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/advanced/custom-subject.md @@ -17,4 +17,4 @@ subject包含的就是我们request请求所带的用户信息,sureness已经 2. 实现`SubjectCreate`接口方法,创建出自定义的`subject` 参考[自定义Subject Creator](/docs/advanced/custom-subject-creator) 3. 实现`Processor`接口,支持处理自定义的`subject` 参考[自定义Processor](/docs/advanced/custom-processor) -具体扩展实践请参考 [使用sureness30分钟项目集成案例](/docs/integrate/sample-tom) \ No newline at end of file +具体扩展实践请参考 [使用sureness30分钟项目集成案例](/docs/help/sample-tom) diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/introduce.md b/home/i18n/en/docusaurus-plugin-content-docs/current/introduce.md index 06ee17f..0f5e6c4 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/introduce.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/introduce.md @@ -62,13 +62,13 @@ slug: / ##### ✌ 框架支持样例 -- [x] Sureness集成**Spring Boot**样例(配置文件方案) [sample-bootstrap](/docs/integrate/sample-bootstrap) -- [x] Sureness集成**Spring Boot**样例(数据库方案) [sample-tom](/docs/integrate/sample-tom) -- [x] Sureness集成**Quarkus**样例 [sample-quarkus](/docs/integrate/sample-quarkus) -- [x] Sureness集成**Javalin**样例 [sample-javalin](/docs/integrate/sample-javalin) -- [x] Sureness集成**Ktor**样例 [sample-ktor](/docs/integrate/sample-ktor) -- [x] Sureness集成**Spring Webflux**样例 [spring-webflux-sureness](/docs/integrate/sample-spring-webflux) -- [x] Sureness集成**Micronaut**样例 [sample-micronaut](/docs/integrate/sample-micronaut) +- [x] Sureness集成**Spring Boot**样例(配置文件方案) [sample-bootstrap](/docs/help/sample-bootstrap) +- [x] Sureness集成**Spring Boot**样例(数据库方案) [sample-tom](/docs/help/sample-tom) +- [x] Sureness集成**Quarkus**样例 [sample-quarkus](/docs/help/sample-quarkus) +- [x] Sureness集成**Javalin**样例 [sample-javalin](/docs/help/sample-javalin) +- [x] Sureness集成**Ktor**样例 [sample-ktor](/docs/help/sample-ktor) +- [x] Sureness集成**Spring Webflux**样例 [spring-webflux-sureness](/docs/help/sample-spring-webflux) +- [x] Sureness集成**Micronaut**样例 [sample-micronaut](/docs/help/sample-micronaut) - [x] Sureness使用Session样例 [sureness-session](https://github.com/usthe/sureness/tree/master/samples/sureness-session) - [x] Sureness分布式缓存Session样例 [sureness-redis-session](https://github.com/usthe/sureness/tree/master/samples/sureness-redis-session) - [x] More samples todo diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-auth.md b/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-auth.md index c9fb622..c9c9b23 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-auth.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-auth.md @@ -46,6 +46,6 @@ Authorization: Basic dG9tOjMyMTEz #### 其他认证方式 目前`sureness`默认支持这三种主流的认证方式,满足绝大部分需求,当然你也可以很轻松的自定义认证方式,详见[自定义Subject](/docs/advanced/custom-subject) -我们提供了默认认证方式的使用`DEMO`,请参考 [一步一步搭建认证鉴权系统](/docs/integrate/sample-bootstrap) -当然我们也提供了自定义认证方式的扩展`DEMO`,请参考 [Springboot项目集成-数据库方案](/docs/integrate/sample-tom) +我们提供了默认认证方式的使用`DEMO`,请参考 [一步一步搭建认证鉴权系统](/docs/help/sample-bootstrap) +当然我们也提供了自定义认证方式的扩展`DEMO`,请参考 [Springboot项目集成-数据库方案](/docs/help/sample-tom) diff --git a/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-datasource.md b/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-datasource.md index 06955b8..19961a0 100644 --- a/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-datasource.md +++ b/home/i18n/en/docusaurus-plugin-content-docs/current/start/default-datasource.md @@ -60,5 +60,5 @@ account: ``` -我们提供了默认文本数据源使用`DEMO`,默认文本数据源具体实现,请参考 [一步一步搭建认证鉴权系统](/docs/integrate/sample-bootstrap) -当然数据源也可以来自数据库等存储,我们提供了接口让用户轻松的自定义数据源,详见[自定义数据源](/docs/advanced/custom-datasource) \ No newline at end of file +我们提供了默认文本数据源使用`DEMO`,默认文本数据源具体实现,请参考 [一步一步搭建认证鉴权系统](/docs/help/sample-bootstrap) +当然数据源也可以来自数据库等存储,我们提供了接口让用户轻松的自定义数据源,详见[自定义数据源](/docs/advanced/custom-datasource) diff --git a/home/sidebars.json b/home/sidebars.json index 181e691..7277dc4 100644 --- a/home/sidebars.json +++ b/home/sidebars.json @@ -16,47 +16,39 @@ "type": "category", "label": "自定义监控", "items": [ - "advanced/extend-point", - "advanced/custom-subject", - "advanced/custom-subject-creator", - "advanced/custom-processor", - "advanced/custom-datasource" + "advanced/extend-point" ] }, { "type": "category", "label": "帮助文档", "items": [ + "help/help", { "type": "category", "label": "应用服务监控", "items": [ - "integrate/sample-bootstrap" + "help/help" ] }, { "type": "category", "label": "数据库监控", "items": [ - "integrate/sample-bootstrap" + "help/help" ] - }, - "integrate/sample-bootstrap", - "integrate/sample-tom", - "integrate/sample-quarkus", - "integrate/sample-javalin", - "integrate/sample-spring-webflux", - "integrate/sample-ktor", - "integrate/sample-micronaut" + } ] }, { "type": "category", "label": "Others", "items": [ - "design", - "contributing", - "sponsor" + "others/contact", + "others/design", + "others/sponsor", + "others/private", + "others/resource" ] } ] diff --git a/home/static/img/docs/help/qq-qr.jpg b/home/static/img/docs/help/qq-qr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc7b4e1615155ee39621b876260b9198c1b71bcf GIT binary patch literal 106786 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%0DF+);%EHjq=Hc(IpfL2Ne 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
  • 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 literal 0 HcmV?d00001