Я создал инструмент Java для своей компании, который использует интерфейс REST нашего Team Foundation Server для получения доступа к рабочим элементам и тестовым прогонам.
Для нескольких запросов GET, POST и PATCH яиспользуя com.google.api.client и google-http-client-jackson.Для запросов POST и PATCH я использовал базовую авторизацию с использованием маркера персонального доступа.Для GET-запроса я не отправлял никаких дополнительных заголовков к моему запросу.Это работало нормально до jre8u191
.
Но так как jre8u201
это больше не работает.Я думаю, что причина заключается в исправлении этой ошибки:
https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8211883
Так что на самом деле у меня есть два вопроса.Первый вопрос - это «обходной путь», чтобы снова быстро запустить мой инструмент для меня и моих коллег.
По сути, отмените вышеупомянутое исправление: как простота моего приложения может включить анонимный TLSснова рукопожатие?Как добавить эти TLS в анон и NULL?Я удалил их из "jdk.tls.disabledAlgorithms" внутри файла java.security.
Я скорее хочу полностью отказаться от базовой авторизации и хочу использовать более безопасную (и сложную).как NTLM или что-то.Я хочу использовать один способ, когда пользователю не нужно вводить специальный токен или другие учетные данные.Затем я хочу использовать эту авторизацию для каждого типа запроса (также GET), что сделает мой вопрос 1 устаревшим.Может ли кто-нибудь помочь мне с авторизацией моего Java-клиента?
Мой фрагмент кода для отправки запроса GET выглядит так:
HttpRequestFactory requestFactory = new ApacheHttpTransport().createRequestFactory();
HttpResponse response = request.execute();
// for POST and PATCH I added these two lines:
request.getHeaders().setBasicAuthentication("", token);
request.getHeaders().setContentType(contentType);`