OpenSAML ライブラリを使用して SAML2 トークンを生成しています。トークンの検証署名も有効期限をチェックするという印象を受けましたが、明らかにそうではありません。有効期限を確認するために使用できるライブラリによって提供される API はありますか? checkIfExpired()
次のコード スニペットのように:
public static boolean validateSignature(String token, Credential credential)
{
try {
InputStream in = new ByteArrayInputStream(token.getBytes());
Document inCommonMDDoc = ppMgr.parse(in);
AssertionUnmarshaller unmarshaller = new AssertionUnmarshaller();
Assertion assertion = (Assertion) unmarshaller
.unmarshall(inCommonMDDoc.getDocumentElement());
SignatureValidator validator = new SignatureValidator(credential);
try {
validator.validate(assertion.getSignature());
return checkIfExpired(assertion) ; // -- Checks if assertion has expired and return true/false
} catch (ValidationException e) {
log.error("Invalid Signature", e);
return false;
}
} catch (Exception e) {
log.error("Unable to perform Signature Validation", e);
}
}
注: OpenSAML に既に API がある場合は、手動で行うことは避けたいと思います。