2017-02-23 7 views
0

次のリンクを参照すると、まさに私は同じロジックをjavaに実装する必要があります。 https://www.samltool.com/sign_response.phpOpen SAMLを使用してSAML応答に署名する方法

私は署名されていないXMLを持っています。サービスプロバイダに送信する前にメッセージに署名する必要があります。私は秘密鍵と公開鍵と符号なしxmlの両方を持っています。

私はSAMLを初めて使用しています。公開鍵と秘密鍵を使用してメッセージに署名するために呼び出されるコードスニペットを提供するのに役立つものがありますか。

この点に関するご意見が必要です。

おかげで、 アシシュ

+0

<dependency> <groupId>com.onelogin</groupId> <artifactId>java-saml</artifactId> <version>2.0.0</version> </dependency> 

依存関係を追加し、このライブラリを使用するには? – gusto2

答えて

0

あなたは署名objecyを作成し、レスポンス

.setSignature(signature) 

次あなたマーシャルに署名オブジェクトを設定すると

signature.setSigningCredential(credential); 
signature.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1); 
signature.setCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS); 

に署名プロパティを設定します応答オブジェクト

がはるかに簡単であるように思わこと -

最後に私はあなたがまたOnelogin Saml JavaからSAML-のjava utilsのonelogin使用することができますthis post on my blog

1

でより多くの情報を持って署名

Signer.signObject(signature); 

を実行するために署名者のクラスを使用します公開鍵、秘密鍵、文字列からの文書などをロードする方法があります。次に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); 

だけOpenSAMLのバージョンは、使用しますプロジェクトののpom.xml

関連する問題