Как выполнить аутентификацию веб-сайта в Java-апплете?

У меня есть беспроводная IP-камера, и я хочу создать свою собственную веб-страницу, чтобы показывать прямую трансляцию. Адрес потока "http://192.168.1.2:8082/index.cgi" (предполагаемый) и требует аутентификации пользователя. Это означает, что когда мы вводим указанный выше URL-адрес в браузере, он запрашивает имя пользователя и пароль.

Все, что я хочу, это сделать java-апплет при загрузке java-апплета, он должен аутентифицировать URL-адрес и показать изображение/поток.

Такова ситуация, теперь основная проблема заключается в том, что

В: Как выполнить HTTP-аутентификацию в Java-апплете?

Буду благодарен за каждый ответ.


person Azeem Akram    schedule 08.06.2012    source источник


Ответы (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-адресу) вы можете попробовать (не уверен, разрешено ли это в апплете) установить аутентификатор по умолчанию для HTTP-запросов следующим образом:

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

Вы также можете использовать Apache HttpComponents HttpClient, который очень прост в использовании. Чтобы узнать больше о том, как HTTP-запросы работают в Java, см. этот ответ.

person Umer Hayat    schedule 08.06.2012
comment
:: мой апплет запускается, но аутентификация выдает эту ошибку. Я цитирую полную ошибку ниже. - person Azeem Akram; 12.06.2012
comment
@azeemAkram Какое решение вы используете? вы добавляете имя пользователя/пароль в URL? или с помощью аутентификатора? - person Umer Hayat; 12.06.2012
comment
первый, добавляя udername/passowrd в URL. - person Azeem Akram; 12.06.2012
comment
@azeemAkram: хм... похоже, это как-то связано с безопасностью. Пожалуйста, посмотрите мой ответ здесь: stackoverflow.com/a/10992811/945945. - person Umer Hayat; 12.06.2012