【问题标题】:how to get SAMLResponse from request如何从请求中获取 SAMLResponse
【发布时间】:2015-05-23 16:18:57
【问题描述】:

任何人都可以帮助我如何捕获 SAMLResponse。我正在使用 Spring SAML。

我在authenticatinSuccesshandler 发送的自定义过滤器中使用了下面的片段。但得到一个空值。 String responseMessage = httpServletRequest.getParameter("SAMLResponse");

请给我建议。

【问题讨论】:

    标签: spring-security spring-saml opensaml


    【解决方案1】:

    典型的用例是访问 SAML 断言,这可以按照in this response 的描述来实现。断言也可以在 Authentication 对象中使用,您可以使用以下代码加载它,例如从您的身份验证成功处理程序中:

    Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    SAMLCredential credential = (SAMLCredential) authentication.getCredentials();
    String assertion = XMLHelper.nodeToString(SAMLUtil.marshallMessage(credential.getAuthenticationAssertion();
    

    断言存储为一个未编组的 java 对象,它不会保留所有接收到的细节。如果您需要保持与收到的值完全相同的格式(包括空格,...),请确保在 WebSSOProfileConsumerImpl bean 上将 releaseDOM 设置为 false

    您可以访问 SAML Response 对象,例如通过覆盖 bean WebSSOProfileConsumerImpl 中的类,它在 SAMLMessageContext 对象内部进行处理。

    【讨论】:

      猜你喜欢
      • 2018-05-13
      • 1970-01-01
      • 2015-06-19
      • 2013-05-30
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多