首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java将记住的HTTP基本身份验证密码存储在哪里,以及如何删除它们?

问Java将记住的HTTP基本身份验证密码存储在哪里,以及如何删除它们?
EN

Stack Overflow用户
提问于 2011-12-15 06:51:17
回答 2查看 2.1K关注 0票数 0

我有一个Java Swing应用程序,它通过web start启动,并通过URL访问服务器上的数据文件。这些文件由Apache2提供,并带有HTTP basic Auth。Java会弹出一个对话框,提示您登录,这很好用。

当用户选中“将此密码保存在您的密码列表中”时,问题就来了。然后密码改变或者一开始就是错误的,你就会被卡住。显然它还不够聪明,不能再给你一次机会。如果您保存的登录失败,您将得到一个401错误,仅此而已。

那么,它将保存的密码存储在哪里,以及如何删除它们?

涉及的代码如下所示:

代码语言:javascript
复制
// uri is a String
URL url = new URL(uri);
HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();

// check HTTP response code
int responseCode = urlConnection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK)
  throw new IOException("\nHTTP response code: " + responseCode);

// read the file
BufferedReader reader = new BufferedReader 
               (new InputStreamReader (urlConnection.getInputStream ()));
... etc ...

该代码运行良好,除非在这种情况下,用户保存了一个错误的密码,在这种情况下,您会得到401。

我的理解是java.net将其钩子放在java.net类中,这样您就可以获得密码提示符之类的东西,而从命令行或WebStart运行相同的代码是无法获得的。所以,这个问题实际上是关于这种行为的。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-12-15 07:04:08

没有代码?现在你得到了一个模糊的答案。根据您的HttpClient,它可能存储在cookies中或其他什么地方。重新初始化您的HttpClient将是很好的第一个调试步骤。如果这不起作用,在这里发布一些代码会非常有帮助。

票数 1
EN

Stack Overflow用户

发布于 2017-05-05 20:43:49

在windows中,密码保存在下面的文件中。

{user_name}\AppData\LocalLow\Sun\Java\Deployment\security\auth.dat

您可以删除此文件以清除保存的密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8512896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档