У меня есть клиентская и серверная программа, которая пытается связаться друг с другом.В моем файле политики для сервера я указал следующее:
grant signedBy "vivin" {
permission java.io.FilePermission "-", "read, write";
permission java.net.SocketPermission "localhost:2220-2230", "accept, connect, listen, resolve", signedBy "vivin";
};
И в файле политики моего клиента у меня есть:
grant signedBy "vivin" {
permission java.net.SocketPermission "localhost:2220-2230", "accept, connect, listen, resolve", signedBy "vivin";
};
Я запускаю свой сервер, и он слушаетна порту 2225. Затем я запускаю свой клиент, и он пытается подключиться к серверу, который прослушивает порт 2225. К сожалению, я получаю эту ошибку на сервере:
[java] Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:45944 accept,resolve)
[java] at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
[java] at java.security.AccessController.checkPermission(AccessController.java:546)
[java] at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
[java] at java.lang.SecurityManager.checkAccept(SecurityManager.java:1157)
[java] at java.net.ServerSocket.implAccept(ServerSocket.java:457)
[java] at java.net.ServerSocket.accept(ServerSocket.java:421)
Номер порта постоянно меняется;Я предполагаю, что это номер порта для клиента (где сервер подключается обратно к клиенту?).Это верно?Для этого назначения существует ограничение, указанное для номеров портов:
Ваш клиент и сервер должны использовать диспетчер безопасности Java, и ваш проект должен включать файлы политики для каждого, который определяет необходимые разрешения для нихбежать.Разрешите вашему серверу и клиенту связываться друг с другом на локальном хосте, используя порты в диапазоне 2220-2230 .
Как я могу соблюдать это ограничение?Или это относится только к порту, который слушает сервер?Я полагаю, что смогу заставить его работать, если я дам разрешения accept
и resolve
для портов больше 2231. Но я не знаю, противоречит ли это ограничению.