自定义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
中的信息输出到前端。把新增的实现类注册成为
Spring
的bean
,如下
@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();}