任何正文都可以帮助我捕获SAMLResponse。我正在使用Spring SAML。
我在authenticatinSuccesshandler发送的自定义过滤器中使用了下面的snipet。但得到一个空。 String responseMessage = httpServletRequest.getParameter(" SAMLResponse");
请告诉我。答案 0 :(得分:3)
典型的用例是访问SAML断言,这可以按照in this response所述来实现。断言也可以在Authentication
对象中使用,您可以使用以下代码加载它,例如从您的身份验证成功处理程序中加载:
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
SAMLCredential credential = (SAMLCredential) authentication.getCredentials();
String assertion = XMLHelper.nodeToString(SAMLUtil.marshallMessage(credential.getAuthenticationAssertion();
断言存储为unmarshalled java对象,它不会保留收到的所有细节。如果您需要保持与收到的格式完全相同的格式(包括空格,...),请确保在releaseDOM
bean上将false
设置为WebSSOProfileConsumerImpl
。
您可以访问SAML Response
对象,例如通过覆盖bean WebSSOProfileConsumerImpl
中的类,它们在SAMLMessageContext
对象中被处理。