localhost
에 ServerSocket을 여는 프로젝트에 Eclipse Kepler (Windows 7)를 사용하면 80
포트입니다. VM 인수를위한 프로젝트 실행 구성의 속성, 이클립스에서예외 : 액세스가 거부 됨 ("java.net.SocketPermission" "localhost : 80" "listen, resolve")
C:\Users\John\Developpement\workspace\security\my.policy
:
나는에있는 정책 파일 보안 관리자를 사용
이-Djava.security.manager
-Djava.security.policy=${workspace_loc}/security/my.policy
실행 된 bin 파일입니다 (Eclipse에서 별도의 소스 및 출력 폴더 사용) :
C:\Users\John\Developpement\workspace\SocketApps\bin\TinyHttpd.class
,:
grant codeBase "file:\C:\Users\John\Developpement\workspace\SocketApps\bin\-" {
permission java.net.SocketPermission "localhost:80", "listen,resolve";
};
이클립스에서 실행 :
Exception in thread "main" java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:80" "listen,resolve")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessController.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkListen(SecurityManager.java:1134)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:128)
at TinyHttpd.main(TinyHttpd.java:35)
하는 코드에 도달하는 경우는 :
grant {
permission java.net.SocketPermission "localhost:80", "listen,resolve";
};
문제 disapp :
ServerSocket ss = new ServerSocket(80));
나는 codeBase
필터를 제거하는 경우 귀, 그래서 이것이 codeBase
이 잘못 표현 된 방법이라고 상상해보십시오.
this question에 대해 제안 된 해결책을 시도했지만 작동하지 않습니다. 도와 주시겠습니까?