页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

注意秘钥长度,如果秘钥不是8个字符的,使用AES-GCM加密加密会报错如下:The key length must be 16 bytes

(3)链接转码


拿到令牌之后需要对令牌进行url转码,如果是Java加密注意事项:

  • V11版本不同的加密算法得到的结果是不一样的,令牌的前缀一般会表示当前使用的是什么样的加密算法,T1_表示AES算法、T0_表示为DES算法。而V10版本的加密算法是没有前缀的,需要特别注意。
  • V11版本使用的加密jar包和V10版本使用的jar包不一致,加密出来的结果也完全不一致参考。

下面使用相同用户、密码、时间戳、令牌,算法不同来加密之后得到的结果参考如下:

代码块
// V10版本加密之后的令牌
54f296bd4649b0d44628a5c32faee32b8dcc1603e65f5926bcff5ecd042f5176ebefa28274987245be277798ca3175c6ac93f1e0ae92bd16841e7713b31959e6edf967ea6f13b4bc
// V11版本DES算法加密之后的令牌
T0_VPKWvUZJsNRGKKXDL67jK43MFgPmX1kmvP9ezQQvUXbr76KCdJhyRb4nd5jKMXXGrJPx4K6SvRaEHncTsxlZ5u35Z+pvE7S8
// V11版本AES算法加密之后的令牌
T1_DNEJke1569+HbJtUBb9a4m9l1ZtI4UR4CGUfwn+mMsuuw9PkNKoHAchSpoXDxc0CsFgVwVMlibe9uOa+QliqOrNxg05qz7ZzDlHNLYCsvi6kmliCNBPio2MstouYIw==


(3)链接转码

拿到令牌之后我们可以看到如下令牌他是存在特殊字符的,又因为令牌单点一般都是通过get请求来提交令牌参数,此时就可能会出现上一章节的相同问题:。此时就需要对令牌进行url转码,如果是Java系统可以使用 java.net.URLEncoder.encode(token, "UTF-8")进行转码,js代码则可以使用encodeURIComponent函数来进行转码。如果说不转码的情况下,同样会出现进行转码,js代码则可以使用encodeURIComponent函数来进行转码。如果说不转码的情况下拼接地址访问之后,同样会出现问题1“解析令牌失败”的问题。


(4)拼接登录链接

拼接的单点地址需要使用loginByToken,然后smartbiToken参数用来指定token:"http://localhost:8080/smartbi/vision/loginByToken?smartbiToken=" + encodedToken;

...