Неверная подпись JWT после обновления jhipster

Я создал два микросервисных приложения с jhipster (4.14.5), сегодня я обновил оба до 5.1.0. С последним изображением докера jhister-registr (4.0.0)

Все работает как положено, но вызовы API с подписью jwt больше не работают.

MyRequestInterceptor

@Override
    public void apply(RequestTemplate requestTemplate) {
        String secret= Jwts.builder()
            .setSubject("admin")
            .claim("auth", AuthoritiesConstants.ADMIN)
            .signWith(SignatureAlgorithm.HS512, properties.getSecurity().getAuthentication().getJwt().getSecret())
            .compact();
        requestTemplate.header(JWTConfigurer.AUTHORIZATION_HEADER, "Bearer " + secret);
    }

Что нового в jhipster 5.1.0 с JWT? я должен изменить подпись алгоритма или как это исправить?


person 3logy    schedule 20.07.2018    source источник
comment
Какое приложение показывает ошибку? Я почти уверен, что ничего не изменилось в отношении JWT   -  person Jon Ruddell    schedule 20.07.2018
comment
Вызванное приложение отправляет ошибку, это тот, кто раскрывает свой API. Вызывающее приложение отправляет тот же носитель, что и в старой версии.   -  person 3logy    schedule 20.07.2018


Ответы (1)


Да, мы изменили способ обработки секретного ключа, посмотрите исходный код здесь.

Разница в том, что теперь секретный ключ JWT закодирован в Base64 (поэтому мы создаем кодировщик здесь).

Изначально это моя вина: метод .signWith() из JJWT принимает строку, поэтому я просто давал секретный ключ (который является строкой). Но если вы посмотрите на документацию метода, вы заметите, что эта строка должна быть закодирована в Base64. Так что теперь вам придется везде использовать зашифрованную версию секретного ключа. В конце концов, это ничего не меняет, просто нужно правильно использовать API.

person Julien Dubois    schedule 20.07.2018
comment
Я только что сгенерировал проект с нуля, используя приложение микросервиса jhipster-registry, uaa и gateway, и я почти уверен, что у меня возникла ошибка, связанная с этой новой конфигурацией. Я не заметил каких-либо обновлений в документации Jhipter-Registry, может быть, теперь мы должны передавать некоторые параметры, используя зашифрованную строку?? или это проблема, о которой нужно сообщать как об ошибке? так как это происходит и с новыми проектами - person delkant; 25.08.2018