Обновленный ответ:
IdP, используемый по умолчанию в Cloud Foundry, не использует SAML.Таким образом, сопоставление атрибутов SAML не работает.Используйте подход, указанный ниже, только при использовании IdP, который поддерживает SAML.
Вместо этого, при использовании IdP по умолчанию, есть три поля (given_name
, family_name
, email
), к которым можно получить доступ какследующим образом:
AuthTokenAccessor.getCurrentToken().get().getJwt().getClaim("email").asString();
Исходный ответ:
вы можете сделать следующее:
Сначала добавьте шаблон роли к вашему xs-security.json
вамиспользуется для настройки вашего экземпляра XSUAA следующим образом:
{
"name": "Authenticated",
"description": "All authenticated users",
"attribute-references": [
"given_name",
"family_name",
"email"
]
}
Обратите внимание, что вам нужно заново создать экземпляр XSUAA с новой конфигурацией, чтобы это изменение заработало.
Теперь в роляхВ разделе вашего провайдера идентификации (если вы используете IdP Cloud Foundry по умолчанию, вы можете найти его на вкладке «Безопасность» в левой части облачной кабины), вы можете настроить способ заполнения этих полей.Выберите здесь «Identity Provider».
Конечно, убедитесь, что эта роль назначена каждому пользователю.
Наконец, вы читаете информацию, используя UserAccessor
:
final User currentUser = UserAccessor.getCurrentUser();
currentUser.getAttribute("email");
Это должно помочь вам получить необходимую информацию!