Sign插件

    • sign插件是 soul网关自带的,用来对请求进行签名认证的插件。

    插件设置

    • 在 -> 插件管理中 —> sign插件设置为开启。

    插件使用

    • 在网关的 pom.xml 文件中添加 sign 的支持。
      • 只有匹配的请求,才会进行签名认证。
    • 在soul-admin —> 认证管理中,点击新增,新增一条 AK/SK。

    网关技术实现

    • 采用Ak/SK鉴权技术方案。
    • 采用鉴权插件,责任链的模式来完成。

    鉴权使用指南

    • 第一步:AK/SK由网关来进行分配,比如分配给你的AK为: 1TEST123456781 SK为:506EEB535CF740D7A755CB4B9F4A1536
    • 第二步:确定好你要访问的网关路径 比如
    • 第三步:构造参数(以下是通用参数)

    对上述2个字段进行key的自然排序,然后进行字段与字段值拼接最后再拼接上SK,代码示例。

    第二步:进行Key的自然排序,然后Key,Value值拼接最后再拼接分配给你的Sk。

    • 你得到的sign值应该为:path/api/service/abctimestamp1571711067186version1.0.0506EEB535CF740D7A755CB4B9F4A1536
    • 最后得到的值为:A021BF82BE342668B78CD9ADE593D683
    • 假如你访问的路径为:/api/service/abc

    • 设置头,header头参数为:

    字段描述
    timestamp1571711067186上述你进行签名的时候使用的时间值
    appKey1TEST123456781分配给你的Ak值
    signA90E66763793BDBC817CF3B52AAAC041上述得到的签名值
    version写死,就为这个值

    如果认证不通过会返回 code 为401 message可能会有变动。

    签名认证算法扩展