如何从IDP完成身份验证后获取完整的SAMLResponse

时间:2017-12-15 15:27:34

标签: spring spring-security spring-saml

我想获得完整的SAML响应以验证响应的签名。

我正在使用spring SAML扩展,下面的代码只提供SAML断言,但没有提供完整的SAML响应。

Authentication authentication = SecurityContextHolder.getContext()。getAuthentication();                                 SAMLCredential credential =(SAMLCredential)authentication.getCredentials();                                 断言断言= credential.getAuthenticationAssertion();

有人可以帮我吗?

1 个答案:

答案 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();
        }