【问题标题】:How to do Website Authentication in Java Applet?如何在 Java Applet 中进行网站身份验证?
【发布时间】:2012-06-08 06:33:01
【问题描述】:

我有一个无线网络摄像机,我想制作自己的网页来显示其实时流。 流的地址是"http://192.168.1.2:8082/index.cgi"(假设),它需要用户认证。这意味着当我们在浏览器中输入上述 URL 时,它会要求输入用户名和密码。

我想要的是制作一个 java applet,在加载 java applet 时,它应该验证 URL 并显示图像/流。

就是这种情况,现在基本的问题是

Q:Java小程序中如何进行Http认证?

我会感谢每一个答案。

【问题讨论】:

    标签: java jakarta-ee applet http-authentication


    【解决方案1】:

    您可以通过创建HttpURLConnection 并在 URL 中附加用户名和密码来实现它。如:

    URL myURL = new URL("http://192.168.1.2:8082/index.cgi?username=user&password=");
    HttpURLConnection myConnection = (HttpURLConnection) myURL.openConnection();
    myConnection.setDoOutput(false);
    int status = ((HttpURLConnection) myConnection).getResponseCode();
    

    或者(而不是将用户名/密码附加到 url),您可以尝试(不确定 Applet 中是否允许)为 http 请求设置默认身份验证器,如下所示:

    Authenticator.setDefault (new Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication ("username", "password".toCharArray());
        }
    });
    

    您也可以使用Apache HttpComponents HttpClient,它非常易于使用。要了解有关 HTTP 请求在 Java 中如何工作的更多信息,请参阅answer

    【讨论】:

    • :: 我的小程序启动但身份验证给出了这个错误我引用下面的完整错误“异常:java.lang.RuntimeException:java.security.AccessControlException:访问被拒绝(java.net.SocketPermission 192.168.1.20:8082 连接,解析)"
    • @azeemAkram 您使用的是哪种解决方案?您是否在 url 中附加用户名/密码?还是使用身份验证器?
    • 第一个,在 url 中附加 udername/passowrd。
    • @azeemAkram:嗯 .. 看起来它与安全有关。请在此处查看我的答案:stackoverflow.com/a/10992811/945945.
    猜你喜欢
    • 1970-01-01
    • 2023-03-11
    • 2017-09-04
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多