从SAMLResponse检索用户名和详细信息

时间:2015-03-27 06:27:45

标签: spring-saml

我使用ssocircle作为我的IDP。 如何获取用户名以响应任何代码示例将有所帮助。 我的saml请求如下。

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                     AssertionConsumerServiceURL="http://localhost:38080/ICDWeb/saml/SSO"
                     Destination="https://idp.ssocircle.com:443/sso/SSORedirect/metaAlias/ssocircle"
                     ForceAuthn="false"
                     ID="a3h6ehei2fjhghi3240a10e2ad03ifj"
                     IsPassive="false"
                     IssueInstant="2015-03-27T06:12:49.597Z"
                     ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                     Version="2.0"
                     >
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">http://172.16.246.146:38080:ICDWeb/saml/metadata</saml2:Issuer>
</saml2p:AuthnRequest>

1 个答案:

答案 0 :(得分:3)

您需要配置IDP以发送所需的属性。

在SP端,您可以从SAMLCredential中的SecurityContextHolder.getContext().getAuthentication().getCredentials()对象加载IDP发送的属性。致电例如credential.getAttributeAsString("myAttribute")将返回IDP发送的值。 IDP发送的NameID值在SecurityContextHolder.getContext().getAuthentication().getPrincipal()中以主体形式提供。