客户端正在使用已签名的请求(我相信使用SignPost)来调用我的Spring启动REST API服务器,我应该在允许访问我的资源之前验证或验证该签名。
我的问题是如何验证签名?
修改
我对SignPost不太熟悉,但我忘了提到我有客户端的密钥和秘密,我想我必须使用它来验证签名。
同样要获取签名,我是否从请求的标题中获取?
答案 0 :(得分:1)
一种方法是发送签名字节以及请求,您可以使用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());
这是在允许访问您的资源之前验证签名的最简单方法。