我想获得完整的SAML响应以验证响应的签名。
我正在使用spring SAML扩展,下面的代码只提供SAML断言,但没有提供完整的SAML响应。
Authentication authentication = SecurityContextHolder.getContext()。getAuthentication(); SAMLCredential credential =(SAMLCredential)authentication.getCredentials(); 断言断言= credential.getAuthenticationAssertion();
有人可以帮我吗?
答案 0 :(得分:0)
您可以扩展默认 SAMLAuthenticationProvider 并覆盖authenticate方法。在此方法中,您可以按如下方式获得完整的SAML响应:
SAMLAuthenticationToken token = (SAMLAuthenticationToken) authentication;
SAMLMessageContext context = token.getCredentials();
try {
String assertion = XMLHelper.nodeToString(SAMLUtil.marshallMessage(context.getInboundMessage()));
System.out.println(assertion);
} catch (MessageEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}