我必须实现与 this 类似的逻辑在Java中。
我有一个未签名的 XML 以及发送给服务提供商之前的消息。我有私钥和公钥以及未签名的 XML。
有人可以帮我提供一个代码片段,确切地说是调用哪个方法,以便使用公钥和私钥对消息进行签名。
最佳答案
您还可以使用 Onelogin Saml Java 中的 onelogin saml-java utils - 这个似乎更容易使用(他们有方法加载公钥、私钥、字符串文档等。然后您可以使用它来签署整个 SAML 响应或签署断言,然后是响应:
Document document = Util.loadXML(saml); //loads string to document
//load private key and certificate
X509Certificate cert = Util.loadCert(pubKeyBytes);
PrivateKey privateKey = Util.loadPrivateKey(privKeyBytes);
//sign the response
String signedResponse = Util.addSign(document, privateKey, cert, null);
要使用这个库,只需添加
<dependency>
<groupId>com.onelogin</groupId>
<artifactId>java-saml</artifactId>
<version>2.0.0</version>
</dependency>
对项目 pom.xml 的依赖
关于java - 如何使用 Open SAML 签署 SAML 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42426433/