내 Java Web Start 앱의 경우 지정된 도메인에서만 실행할 수 있도록 제한하려고합니다. 내 앱이 실행 된 URL을 어떻게 얻을 수 있습니까? 그것은 잘 작동하고 나에게 출처를 표시하지만 내 JNLP 파일의 코드베이스 매개 변수가 비어있는 경우에만jnlp가 실행 된 URL을 얻는 방법은 무엇입니까?
final BasicService bs = (BasicService) ServiceManager.lookup("javax.jnlp.BasicService");
final URL codeBase = bs.getCodeBase();
:이 방법을 시도했다. 그것이 설정되면, 코드베이스에 대한 URL을 보여 주며, 이는 내 jnlp가 실행 된 곳의 URL을 원하기 때문에 (다른 서버에서 libs를 호스팅 할 때) 잘못된 것입니다. 예를 들어 "www.jnlpdomain.com"에서 jnlp를 실행하지만 코드베이스는 "www.libdomain.com"입니다.이 경우 첫 번째 URL을 알고 싶습니다. 나는 자바 콘솔 로그를 확인하면 내가 다음 볼 수 있습니다
JNLP Ref (absolute): ....
는 어떻게 얻을 수 있습니다 :
JNLP Ref (absolute): www.jnlpdomain.com/my_jnlp_file.jnlp
.... (some few lines)
=====CODEBASE=====: www.libdomain.com (this line is printed by me with the bs.getCodeBase())
그래서 내가 호스트 이름이 로그의 첫 번째 줄에 제대로 인쇄되는 것을 볼 수 있습니다로 시작 내 응용 프로그램에서, 그래서 도메인을 확인할 수 있습니까? JAR File Manifest Attributes for Security: Codebase Attribute에서
나는 알고있다. 그러나 이것은 각 클라이언트에 대한 맞춤 빌드를 준비해야한다는 것을 의미한다. 나는 이것을 피하고 각각의 클라이언트에 대해 작동 할 수있는 하나의 일반 빌드를 갖고 싶지만 여전히 (특정 도메인에서) 제대로 사용하는지 확인하십시오. –
* "이것은 각 클라이언트에 대한 사용자 정의 빌드를 준비해야 함을 의미합니다."* 빌드 파일의 한 줄로 나타납니다! 당신은 소리가 어렵게 .. –
그것은 나를위한 솔루션의 일종이지만, 여전히 "JNLP 참조 (절대) 에서이 호스트 이름을 알고 싶습니다 ..."에서 온 그리고 그것은 자바에서 나를 위해 액세스 할 수 있다면 암호. –