2010-11-18 19 views
3

rmi 연결을 시도하고 있습니다. 나는 많은 보안 문제에 부딪 쳤지만이 모든 과거의 길을 찾을 수 없었습니다. 나는 내 jar 파일을 실행 :이 만들 사용하고RMI 연결이 거부되었습니다

java -Djava.security.policy=java.security.AllPermission -jar "myjarfile" 

코드 것은 :

public class server 
{ 
    public static void main(String args[])throws Exception 
    { 
    if (System.getSecurityManager() == null) 
     System.setSecurityManager (new RMISecurityManager() { 
     public void checkConnect (String host, int port) {} 
     public void checkConnect (String host, int port, Object context) {} 
     }); 

    try 
    { 
     sampleserverimpl server = new sampleserverimpl(); 
     System.out.println("SERVER IS WAITING"); 
     LocateRegistry.createRegistry(2020); 

     //Runtime.getRuntime().exec("rmiregistry 2020"); 
     Naming.rebind("//localhost:2020/SERVER", server); 

    } 
    catch(Exception e) 
    { 
     System.out.println(e); 
    } 
} 
}; 

내가 수신하고 오류 추적은 다음과 같습니다

Exception in thread "RMI TCP Connection(idle)" java.security.AccessControlExcept 
ion: access denied (java.net.SocketPermission 127.0.0.1:31199 accept,resolve)jav 
a.rmi.UnmarshalException: Error unmarshaling return header; nested exception is: 

    java.io.EOFException 

나는 시도 이 문제를 해결할 수있는 다양한 방법, 여기 누가 문제를 볼 수 있습니까?

감사합니다.

답변

6

-Djava.security.policy은 권한을 포함하는 정책 파일을 가리키는 URL을 허용합니다. 그래서 당신은이 있어야합니다 -Djava.security.policy=/some/path/my.policymy.policy 파일에 포함 된 JVM 인수로 :

grant { 
    permission java.security.AllPermission; 
}; 

을 또한, 코드에서 NULL 체크 존재하고 SecurityManager의 수동 생성을 방지하기 위해, 당신은 보안 관리자가 될 요청할 수 있습니다 JVM 스위치 (-Djava.security.manager)를 전달하여 애플리케이션에 자동으로 설치됩니다. 같은

귀하의 최종 JVM 호출이 보일 것입니다 : 나는 다소 같은 문제가

java -Djava.security.manager -Djava.security.policy=/some/path/my.policy 
+0

지금 실행, 감사합니다. 파일을 일찍 시도했지만 보안 관리자에 추가하지 않았습니다. +1 – chrissygormley

0

이것은 두 가지 예외입니다. 첫 번째는 권한 문제입니다. 두 번째 EOFException은 여러 가지 원인 중 하나를 가질 수 있습니다. 나는 java -version과 완전한 스택 트레이스를보아야 할 것이다.

+0

, RMI를 사용하여 내 응용 프로그램은 예외 : EOFException으로 실행하고, 충돌,하지만 난 AllPermissions에 권한을 설정하면 모두가 잘 실행됩니다. 허가로 인해 발생할 수있는 아이디어는 무엇입니까? – Oli