ak sk认证java demo,【华为云微服务引擎】从代码机制看AK/SK认证问题

前言

用户开发的微服务要想注册到华为云CSE的服务中心,就需要用到AK/SK认证。由于CSEJavaSDK提供了较多的配置方式,有时候容易出现错配和漏配的情况,本文从CSEJavaSDK读取AK/SK的关键代码入手进行分析,希望能够给大家提供一点AK/SK认证失败时的定位思路。(本文基于CSEJavaSDK-2.3.30进行说明)

代码逻辑分析

首先需要说明的是,AK/SK也是一个配置项,因此它可以配置在microservice.yaml文件里,可以通过-D设置系统属性来指定,也可以通过环境变量来指定(Windows的环境变量貌似可以带点号.,因此你可以直接在环境变量中指定cse.credentials.accessKey=ak;而Linux的环境变量不能带点,所以不能这么做)。另一方面来说,AK/SK又是一个比较特殊的配置项,因此CSEJavaSDK又提供了一个加密存储的配置方式。无论AK/SK的来源是哪里,最终CSEJavaSDK都是在AKSKManager中完成AK/SK的读取逻辑的。

public static Credentials getCredential() throws Exception {

// 读取AK/SK

AKSKOption option = AKSKOption.readAKSK();

// 中间读写缓存等等逻辑忽略……

// 根据cse.credentials.akskCustomCipher配置获取cipher,对AK/SK进行解密

AKSKCipher cipher = (AKSKCipher)CIPHERS.get(option.getAkskCustomCipher());

// 检查逻辑忽略...

char[] ak = cipher.decode(TYPE.AK, option.getAccessKey().toCharArray());

char[] sk = cipher.decode(TYPE.SK, option.getSecretKey().toCharArray());

String project = option.getProject();

if (project == null || project.isEmpty()) {

// 如果用户没有配置cse.credentials.project,就尝试从配置的服务中心地址进行解析&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值