#java #security #policy
#java #Безопасность #политика
Вопрос:
Я работаю над примером из Learning Java, в котором обсуждается создание политики безопасности для разрешения подключения к сокетам. Я добавил файл политики, который позволяет приложению открывать соединение. Но когда я запускаю ее, соединение не разрешено.
Любая помощь очень важна.
Том
Here is the code
//file: EvilEmpire.java
import java.net.*;
public class EvilEmpire {
public static void main(String[] args) throws Exception{
try {
Socket s = new Socket("192.168.0.1", 80);
System.out.println("Connected!");
}
catch (SecurityException e) {
System.out.println("SecurityException: could not connect.");
}
}
}
And here is the policy file
grant codeBase "file:/c:/users/flash/eclipse-workspace/learning java/bin/" {
permission java.net.SocketPermission "192.168.0.1", "connect";
};
Комментарии:
1. Что такое фактическая ошибка? Возможно, вы получили
connection refused
, что не связано с Security Manager, а скорее из-за того, что конечная точка, к которой вы пытаетесь подключиться, не запущена.2. По умолчанию обычные приложения Java уже имеют разрешение на открытие / подключение к любому сокету в сети. В каком контексте вы выполняете свою программу, которая, по вашему мнению, нуждается в дополнительных разрешениях?
3. В нем говорится «SecurityException: не удалось подключиться». из предложения catch
4. Я запускаю ее из среды разработки Eclipse
Ответ №1:
Ну, только что обновил eclipse, и теперь программа работает правильно. Я не знаю, было ли это обновлением или тем фактом, что IDE была перезапущена.
Спасибо всем за ваши комментарии.
Том