客户端正在使用签名请求(我相信使用 SignPost)来调用我的 Spring boot REST API 服务器,我应该在允许访问我的资源之前验证或验证该签名。
我的问题是如何验证该签名?
编辑
我对 SignPost 不是很熟悉,但我忘了提到我有客户的密钥和秘密,我想我必须用它来验证签名。
另外要获得签名,我是否从请求的标头中获得它?
客户端正在使用签名请求(我相信使用 SignPost)来调用我的 Spring boot REST API 服务器,我应该在允许访问我的资源之前验证或验证该签名。
我的问题是如何验证该签名?
编辑
我对 SignPost 不是很熟悉,但我忘了提到我有客户的密钥和秘密,我想我必须用它来验证签名。
另外要获得签名,我是否从请求的标头中获得它?
一种方法是将签名字节与请求一起发送,您可以使用 REST 的 GET 方法获取签名(如果您的请求是 RESTful api),并使用内置的 Java 安全类功能验证它,
Key publicKey = getPublicKey(); //provide path of public key here...
Signature sig = Signature.getInstance("SHA256WITHRSA");
sig.initVerify((PublicKey) publicKey);
sig.update(<Request on which sig are applied>);
boolean result = sig.verify(verifyRequest.getSignature());
这是在允许访问您的资源之前验证签名的最简单方法。