我使用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>
答案 0 :(得分:3)
您需要配置IDP以发送所需的属性。
在SP端,您可以从SAMLCredential
中的SecurityContextHolder.getContext().getAuthentication().getCredentials()
对象加载IDP发送的属性。致电例如credential.getAttributeAsString("myAttribute")
将返回IDP发送的值。 IDP发送的NameID
值在SecurityContextHolder.getContext().getAuthentication().getPrincipal()
中以主体形式提供。