Как я могу издеваться над авторизованным пользователем с претензиями OAuth2 при использовании Jhipster UAA - PullRequest
0 голосов
/ 25 сентября 2019

Я использую JHipster UAA и добавил идентификатор пользователя в качестве заявки к сгенерированному JWT.

Мои другие микросервисы зависят от чтения этой заявки для правильной работы.Как я могу создать макет вошедшего в систему пользователя для тестирования моих контроллеров REST?

В контроллере микросервиса бизнес-логики я использую следующий служебный метод:

public static Optional<Long> getCurrentUserIdClaim() {
    SecurityContext securityContext = SecurityContextHolder.getContext();
    return Optional.ofNullable(securityContext.getAuthentication())
        .map(authentication -> {
            Object details = authentication.getDetails();
            if (details instanceof OAuth2AuthenticationDetails) {
                Object decodedDetails = ((OAuth2AuthenticationDetails) details).getDecodedDetails();
                if (decodedDetails instanceof Map) {
                    return Long.parseLong(((Map) decodedDetails).get("user_id").toString());
                }
            }

            return null;
        });
}
...