• 沒有找到結果。

return dcs.get();

} catch (Throwable th) {

if (th instanceof RequestNotPermitted) { response.setStatus(429);

response.getWriter().print("rate limited.");

LOGGER.warn("the request is rate limit by policy : {}", th.getMessage());

} else {

if (serverRecoverPolicy != null) { return serverRecoverPolicy.apply(th);

}

throw th;

}} finally {

SpringCloudInvocationContext.removeInvocationContext();

}

上面简单的介绍了自定义开发。对于更加深入的使用方式,也可以直接参考Java Chassis、Spring Cloud、Dubbo项目中的默认实现代码。

6.4 使用安全认证

开发指南 6 使用微服务引擎功能

6.4.1 安全认证概述

开启了“安全认证”的微服务引擎专享版,通过微服务控制台提供了基于RBAC

(Role-Based Access Control,基于角色的访问控制)的系统管理功能。权限与角色 相关联,您可以使用关联了admin角色权限的帐号创建新帐号,根据实际业务需求把 合适的角色同帐号关联。使用该帐号的用户则具有对该微服务引擎的相应的访问和操 作权限。

微服务引擎专享版开启了安全认证之后,所有调用的API都需要先获取token才能调 用,认证流程请参考服务中心RBAC说明。

开启了安全认证的微服务引擎专享版,在使用安全认证前需要完成以下工作:

1. 创建安全认证帐号名和密码

2. 配置微服务安全认证的帐号名和密码

说明

框架支持安全认证功能的版本要求:Spring Cloud需要集成Spring Cloud Huawei 1.6.1及以上版 本,Java Chassis需要2.3.5及以上版本。

6.4.2 创建安全认证帐号名和密码

为开启了安全认证的微服务引擎专享版创建帐号名和密码,请参考系统管理。

6.4.3 配置微服务安全认证的帐号名和密码

微服务引擎专享版开启安全认证后,需要对连接到该引擎的微服务组件开启安全认 证。开启安全认证是通过配置安全认证帐号名和密码的方式触发。目前支持通过配置 文件配置方式和环境变量注入的方式。

由于帐号和密码涉及安全问题,建议加密后使用。

Spring Cloud 微服务组件配置安全认证帐号名和密码

● 配置文件配置方式

为微服务的“bootstrap.yml”文件增加以下配置,若已配置请忽略。

spring:

cloud:

servicecomb:

credentials:

account:

name: test #结合用户实际值配置 password: mima #结合用户实际值配置 cipher: default

说明

用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考 自定义实现password的加密存储算法。

● 环境变量注入方式

为微服务添加如表1 所示环境变量。

添加环境变量,请参考设置应用环境变量。

开发指南 6 使用微服务引擎功能

6-8 环境变量

环境变量 说明

spring_cloud_servicecomb_credentials_account_na

me 结合用户实际值配置。

spring_cloud_servicecomb_credentials_account_pa

ssword 结合用户实际值配置。

说明用户密码password默认为 明文存储,无法保证安 全。建议您对密码进行加 密存储,请参考自定义实 现password的加密存储算 法。

Java Chassis 微服务组件配置安全认证帐号名和密码

● 配置文件配置方式

为微服务的“microservice.yml”文件增加以下配置,若已配置请忽略。

servicecomb:

credentials:

rbac.enabled: true #结合用户实际值配置 cipher: default

account:

name: test #结合用户实际配置 password: mima #结合用户实际配置 cipher: default

说明

用户密码password默认为明文存储,无法保证安全。建议您对密码进行加密存储,请参考 配置安全认证参数。

● 环境变量注入方式

为微服务添加如表2 所示环境变量。

添加环境变量,请参考设置应用环境变量。

6-9 环境变量

环境变量 说明

servicecomb_credentials_rbac_enabled ● true:开启安 全认证。

● false:不开启 安全认证。

servicecomb_credentials_account_name 结合用户实际值 配置。

开发指南 6 使用微服务引擎功能

环境变量 说明

servicecomb_credentials_account_password 结合用户实际值 配置。

说明用户密码password 默认为明文存储,

无法保证安全。建 议您对密码进行加 密存储,请参考配 置安全认证参数。

开发指南 6 使用微服务引擎功能

7 附录

Java Chassis版本升级参考 本地开发工具说明

7.1 Java Chassis 版本升级参考

● 使用2.1.3版本之前的Java Chassis接入微服务引擎

a. 需要额外引入CSE SDK。 引入CSE SDK使用如下Maven Dependency Management:

<dependencyManagement>

<dependencies>

<dependency>

<groupId>com.huawei.paas.cse</groupId>

<artifactId>cse-dependency</artifactId>

<version>版本号</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

b. 并引入依赖:

<dependency>

<groupId>com.huawei.paas.cse</groupId>

<artifactId>cse-solution-service-engine</artifactId>

</dependency>

引入CSE SDK,Maven Settings需要增加额外的仓库:

<repositories>

<repository>

<snapshots>

<enabled>false</enabled>

</snapshots>

<id>huaweicloudsdk-releases</id>

<name>huaweicloudsdk</name>

<url>https://repo.huaweicloud.com/repository/maven/huaweicloudsdk/</

url>

</repository>

</repositories>

● 升级到2.1.3及以上版本

开发指南 7 附录

a. 需要修改Maven Dependency Management:

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.apache.servicecomb</groupId>

<artifactId>java-chassis-dependencies</artifactId>

<version>${java-chassis.version}</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

b. 并引入依赖:

<dependency>

<groupId>org.apache.servicecomb</groupId>

<artifactId>solution-basic</artifactId>

</dependency>

<dependency>

<groupId>org.apache.servicecomb</groupId>

<artifactId>servicestage-environment</artifactId>

</dependency>

如果依赖了其他groupId为com.huawei.paas.cse的软件包,删除即可。2.1.3 之后,所有软件包可以从Maven中央库获取,不需要额外配置Maven仓库。

7.2 本地开发工具说明

本地开发工具包含了本地轻量化微服务引擎,用于本地开发的轻量服务中心、配置中 心,并提供简单的界面。

使用说明请参考README文件。

7-1 本地轻量化微服务引擎版本说明

版本 发行时间 获取路径

2.1.3 2022.01.11 Local-CSE-2.1.3-windows-amd64.zip Local-CSE-2.1.3-linux-amd64.zip Local-CSE-2.1.3-linux-arm64.zip

说明

本地轻量化微服务引擎仅作为本地开发调测,请勿用于商业使用。

开发指南 7 附录

相關文件