Skip to main content
Version: 2.4.1

自定义sign插件检验算法

说明#

  • 用户可以自定义签名认证算法来实现验证。

扩展#

  • 默认的实现为 org.apache.shenyu.plugin.sign.service.DefaultSignService

  • 新增一个类 CustomSignService 实现 org.apache.shenyu.plugin.sign.api.SignService

 public interface SignService {      /**      * Sign verify pair.      *      * @param exchange   the exchange      * @return the pair      */     Pair<Boolean, String> signVerify(ServerWebExchange exchange); }
  • Pair中返回true,表示验证通过,为false的时候,会把String中的信息输出到前端。

  • 把新增的实现类注册成为Springbean,如下

@Beanpublic SignService customSignService() {    return new CustomSignService();}

其他扩展#

当你只希望修改签名算法时可以参考如下。

  • 签名算法,默认使用的 org.apache.shenyu.common.utils.SignUtils#generateSign,还可以新增一个类 CustomSignProvider 实现 org.apache.shenyu.plugin.sign.api.SignProvider.
/** * The Sign plugin sign provider. */public interface SignProvider {
    /**     * acquired sign.     *     * @param signKey sign key     * @param params  params     * @return sign     */    String generateSign(String signKey, Map<String, String> params);}
  • 把新增的实现类 CustomSignProvider 注入到Spring IoC即可,如下
@Beanpublic SignProvider customSignProvider() {    return new CustomSignProvider();}