Я пытаюсь использовать KeyCloak для разработки поставщика услуг и аутентификации в отношении OpenAM IDP.
Я следовал этим инструкциям: http://keycloak.github.io/docs/userguide/saml-client-adapter/html/ch07.html
Теперь моя проблема в том, что после аутентификации я не могу получить данные пользователя (такие как электронная почта, имя пользователя, роли...)
userPrinciple имеет тип SamlPrinciple, а не KeycloakPrinciple.
оба атрибута и дружественные атрибуты пусты.
import org.keycloak.adapters.saml.SamlPrincipal;
import org.keycloak.KeycloakPrincipal;
@Path("/user")
public class User {
@GET
@Path("/")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public Object info(@Context SecurityContext context) {
SamlPrincipal userPrincipal = (SamlPrincipal) context
.getUserPrincipal();
Set<String> attributeNames = userPrincipal.getAttributeNames();
Set<String> friendlyNames = userPrincipal.getFriendlyNames();
...
}
Оба атрибутаNames и friendlyNames являются пустыми наборами (размер = 0).
Когда я смотрю на связь между KeyCloak SP и OpenAP IDP, я вижу запрос-ответ, который отправляет пользовательские данные:
Как и где я могу получить эту информацию о пользователе из объекта SamlPrinciple?