java - 如何使用 Open SAML 签署 SAML 响应?

标签 java saml-2.0 opensaml

我必须实现与 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/

相关文章:

metadata - Keycloak SAML 适配器 : how to export SP XML metadata?

wso2 - 单点登录中的自定义 claim 处理失败

xml - SAML SP 元数据 XML SSO、收件人和目标 URL

java - SAML 响应的 SAML2.0 签名验证失败

java - 如何在 java LWJGL 的游戏中添加光照?

java - JAVA中的简单沙堆代码

java - 获取模型中的对象列表并实现到 ng-repeat 中

java - 以编程方式添加未知数量的按钮

java - OpenSAML 自定义属性值

java - Opensaml 验证与 ComponentSpace 验证