Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
httpclient能否将当前登录用户作为java URLConnection自动创建授权头?_Java_Httpclient_Apache Httpclient 4.x_Apache Httpcomponents - Fatal编程技术网

httpclient能否将当前登录用户作为java URLConnection自动创建授权头?

httpclient能否将当前登录用户作为java URLConnection自动创建授权头?,java,httpclient,apache-httpclient-4.x,apache-httpcomponents,Java,Httpclient,Apache Httpclient 4.x,Apache Httpcomponents,全部: --更新-- 客户端计算机和运行受保护资源的计算机位于同一域中,登录的用户可以使用其用户/密码访问资源 当使用httpclient访问intranet中受保护的web资源时,我们可以提供带有windows用户/密码和域名的NTCredentials。 但是,是否有办法获取此计算机中当前登录用户的默认windows用户/密码和域名。 因此,无需向用户索要用户的NTCredentials,我们可以使用用户登录的NTCredentials来访问受保护的资源 URLConnection可以成功访

全部:

--更新--

客户端计算机和运行受保护资源的计算机位于同一域中,登录的用户可以使用其用户/密码访问资源

当使用httpclient访问intranet中受保护的web资源时,我们可以提供带有windows用户/密码和域名的NTCredentials。 但是,是否有办法获取此计算机中当前登录用户的默认windows用户/密码和域名。 因此,无需向用户索要用户的NTCredentials,我们可以使用用户登录的NTCredentials来访问受保护的资源

URLConnection可以成功访问资源:当URLConnection接收到第一个请求的未授权错误401,并检测到远程服务器支持nltm时,URLConnection将创建一个令牌并添加http头,如:Authorization:NTLM tlrmtvtuaabaaaba7iiogwa。 然后请求就会成功

我想知道我们是否可以使用httpclient来实现这一点?httpclient能否使用登录的用户信息自动添加授权令牌


非常感谢您的回复和帮助。

Oracle的HttpURLConnection实现通过JNI使用本机的Windows操作系统特定功能,以便访问当前的用户安全上下文。人们也可以在HttpClient上使用相同的技术,但这将使它依赖于Oracle的JRE实现和Windows安全API。

NTLM安全性不是这样工作的。您可能想开始阅读指南,了解如何将Apache HttpComponents与NTLM安全性集成。感谢您的回复,我阅读了文章:以及一些示例,它需要创建一个包含用户、密码和域名的NTCredentials。但我的项目的要求是使用当前登录用户的凭据来访问远程受保护的资源。是否有方法获取或使用当前登录用户的凭据?我尝试了java中的URLConnection,它可以成功访问资源:当URLConnection收到第一个请求的未经授权的错误401,并检测到远程服务器支持nltm,URLConnection将创建一个令牌并添加http头,如:Authorization:NTLM tlrmtvntuaabaaab7iiogwa。我想知道我们是否可以使用httpclient来实现这一点?httpclient能否使用登录的用户信息自动添加授权令牌?谢谢,oleg。所以对于我的项目,如果用户没有指定用户名/密码,我将使用URLConnection。如果用户设置用户名/密码,我可以使用ApacheHttpClient。