jre8u191之后,GetRequest授权不起作用

时间:2019-02-19 09:07:58

标签: java rest authorization

我为我的公司创建了一个Java工具,该工具正在使用Team Foundation Server的REST接口来访问工作项和测试运行。

对于几个GET,POST和PATCH请求,我正在使用com.google.api.client和google-http-client-jackson。 对于POST和PATCH请求,我使用的是基本授权以及个人访问令牌。对于GET-Request,我没有向我的请求发送任何其他标头。在jre8u191之前,它一直工作良好。

但是由于jre8u201,此功能不再起作用。我认为原因是此错误的修复:

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8211883

所以实际上我有两个问题。第一个问题是“变通办法”,以使我和我的同事快速重新运行我的工具。

  1. 基本上撤消了上述修复:我的应用程序如何再次显式启用匿名TLS握手?如何dd TLS匿名和NULL?我从java.security文件中的“ jdk.tls.disabledAlgorithms”中删除了它们。

  2. 我宁愿完全避免基本授权,而要使用更安全(更复杂)的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);`

0 个答案:

没有答案