Я хочу сделать простой аутентификации HTTP в апплет Java, который я пытаюсь так:Java-апплет не поддерживает Authenticator.setDefault
static class MyAuthenticator extends Authenticator
{
public PasswordAuthentication getPasswordAuthentication()
{
// I haven't checked getRequestingScheme() here, since for NTLM
// and Negotiate, the usrname and password are all the same.
System.err.println("Feeding username and password for " + getRequestingScheme());
return (new PasswordAuthentication(kuser, kpass.toCharArray()));
}
}
public void paint(Graphics g) {
try
{
// String authenticate=Authenticator.getPasswordAuthentication();
Authenticator.setDefault(new MyAuthenticator());
URL url = new URL("http://Ip_address/jpg/image.jpg");
InputStream ins = url.openConnection().getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
String str;
while((str = reader.readLine()) != null)
System.out.println(str);
//int s=2+2;
g.drawString("hello world", 50, 60);
}
catch (Exception e)
{
System.out.println("Exception : "+ e);
}
}
Но я получаю ошибку на этой линии
Authenticator.setDefault(new MyAuthenticator());
исключение:
Exception : java.security.AccessControlException: access denied
(java.net.NetPermission setDefaultAuthenticator)
Может кто-нибудь сказать мне, что теперь делать, или как проверить подлинность веб-сайта внутри из Java-апплета?
Нет ли команды/метода/класса, которые могут изменять параметры безопасности для конкретного апплета? –
Не изнутри апплета. Это приведет к победе в целях безопасности песочниц. (Q: что будет первым, что неприятный апплет делает? A: отключите проверки безопасности, которые мешают ему делать неприятные вещи!) –
Так есть ли какой-либо другой метод, который может выполнять базовую аутентификацию Http в java-апплете? –