2011-01-08 3 views
1

HTML/자바 스크립트/jquery 페이지에 자바 애플릿을 약간 편집하고 있습니다.자바에서 자바로 호출 할 때 통신 권한 문제가 발생했습니다.

Java 기능을 호출하는 jquery 대화 상자가 나타나는 페이지에 저장 버튼이 있습니다.

해당 기능이 서버에 액세스하려고 시도하면 권한 오류로 인해 종료됩니다. 동일한 코드가 그래픽 객체를로드하는 데 사용됩니다.

현재 Java에서 Java 호출이 애플릿 컨텍스트 (별도 스레드입니까?)에 있지 않으므로로드 된 곳이 없으므로 대화 할 수 없다고 가정합니다.

올바른 컨텍스트를 얻을 수있는 방법이 있습니까?

Java 애플릿에 저장 버튼을두고 Java 대화 상자를 사용하여 다른 데이터를 가져 와서 처리 할 수있을 것으로 예상됩니다. 장기적으로 HTML5 캔버스로가는 것은 내가 생각하는 해결책이다.

+0

애플릿에 서명이되어 있습니까? –

+0

아니요, 저는 사람들이 그것을 믿을 필요가 없길 바랍니다. –

답변

0

JavaScript -> Java 호출의 security model은 서명 된 애플릿으로의 호출조차도 신뢰할 수없는 것으로 취급됩니다. 이를 피하기 위해 어떤 메소드가 호출되는지 알고 있다면 AccessController.doPrivileged()을 사용하여 올바른 권한으로 호출을 실행할 수 있습니다. 그러나 누구나 애플릿을 임베드하고 자신의 JavaScript를 사용하여 호출 할 수 있으므로이 솔루션은 신중하게 고려해야하는 보안상의 영향을 미친다는 점에 유의하십시오.

+0

애플릿 (서버 측 유효성 검사 및 위생 처리)을 이미 신뢰하지 않았으므로 조금 성가 셨지만, 적어도 이것은 설명입니다. –

0

정책 파일 ($ {user.home} .java.policy)에 권한을 설정했거나 수동으로 또는 polictool (JDK bin 디렉토리에 있음)으로 할 수 있습니다. Set up a Policy File to Grant the Required Permission을 참조하십시오.이 작업은 애플릿을 사용할 각 클라이언트의 컴퓨터에서 수행해야합니다.

또 다른 방법은 애플릿에 서명하는 것입니다.

애플릿 보안에 대한 자세한 내용은 wikiJava Plug-in Developer Guide에서 확인할 수 있습니다.

0

서명되지 않은 애플릿은 서비스를 제공 한 서버와 만 통신 할 수 있다는 점에 유의해야합니다. 다른 서버와 통신하려면 애플릿에 서명해야합니다. 더 많은 정보 here.

관련 문제