2017-03-17 16 views
1

웹 응용 프로그램에서 JNLP/Java Web Start를 사용하여 클라이언트 컴퓨터에서 jar를 실행하여 일부 작업을 수행합니다. JNLP 파일은 해당 항아리와 항상 다른 여러 매개 변수를 전달해야하므로 JNLP 파일은 서버에서 동적으로 생성됩니다."이 응용 프로그램을 실행 하시겠습니까?" 프롬프트는 항상 동적으로 생성 된 JNLP에 대해 표시됩니다. 주위에?

문제는 그 "이 응용 프로그램을 실행 하시겠습니까?"입니다 보안 메시지는 때마다 으로 표시되며 "다시 표시하지 않음 ..."옵션을 선택한 후에도 JNLP가 생성되어 실행됩니다. 그리고 그것은 매우 불편할 수 있습니다!

처음에는 해당 옵션의 텍스트가 " 위의 게시자로부터이 앱 이 앱을 다시 표시하지 않음"이었습니다. 그러나 나는 단지의 MANIFEST.MF 파일에 이러한 특성을 추가 : 이것은 " 위 게시자 및 위치에서 앱을 다시 표시하지 않음"하는 옵션의 텍스트를 변경

Application-Name: The name Application-Library-Allowable-Codebase: * Codebase: * Permissions: all-permissions 

하지만, 여전히 작동하지 않습니다. 프롬프트가 계속 표시됩니다.

텍스트는 더 이상 특정 응용 프로그램을 참조하지 않습니다,하지만 지금은 그 발행인 및 위치에서 모든 응용 프로그램을 참조한다. 그러나 이것들은 응용 프로그램의 호출 사이에서 결코 바뀌지 않습니다!

내가 누락 된 항목이 있습니까? 또는 텍스트가 잘못 되었습니까? 아니면이 버그입니까?

내가 찾은 유일한 해결책은 만들고 내가 좋아하지 않는 솔루션 클라이언트 컴퓨터에 DeploymentRuleSet.jar를 설치하는 것이 었습니다. 표시되었습니다이 문제가 "하지 이슈"가 도입 된

답변

1

new feature in java 8u112에 의한 부작용이있다.

jnlp 태그에서 href가 지정되지 않은 경우 jnlp의 위치는 알 수없는 것으로 간주되어 java 8u112로 업데이트됩니다. chekbox와 관련된 정보는 고려되지 않았습니다. 이러한 경우에,보고 된 문제로 구현 향상, 체크 박스를 체크하면, 정보는 "생산자"의 인증서와 함께 저장 파크 는 항아리의 호스트와 jnlp 파일의 해시입니다.

하지만, 변화 부 (예컨대 인자)로 동적 JNLP의 경우

는 해시 항상 다를 수 있으며 다른 어플리케이션이었던 것에 체크 박스마다 나타난다.

지금 좋은 소식을 도착 :

나는 또한 제거

이 JNLP 태그에서 코드베이스와 항아리 자원에 대한 HREF 매개 변수에 절대 URL을 넣어. 이러한 구성을 사용하면 응용 프로그램이 "다중 호스트"로 간주되지 않으며 검사 된 플래그가 jar 파일의 Producer와 호스트의 인증서에서 완전히 참조됩니다. 문제가 해결되면 jnlp 파일이 변경 될 때 경고가 다시 표시되지 않습니다!

경고 :이 속임수 작업을 수행하려면 어떤 매개 변수에도 href 매개 변수를 사용하면 안됩니까? 다른 태그. 예를 들어 아이콘 태그의 href 매개 변수에 정의 된 절대 URL을 사용하면 이전에 설명한 것처럼 작동합니다 (체크 박스가 jnlp가 변경 될 때마다 체크 상자가 나타남).

+0

불행히도 jar href가 있어야하므로 재배포 가능 웹 스타트 앱에는 불행히도 작동하지 않습니다. 상대적인. https://bugs.openjdk.java를 참조하십시오.net/browse/JDK-8175981 - 인수를 변경하는 재배포 가능 웹 스타트 앱이 Java 8u112 이후에 좋은 사용자 경험을 제공하지 않습니다. – tanderson

+0

"JNLP 태그의 href"란 정확히 무엇을 의미합니까? – user93353

+0

이상한 문제가 있습니다. 동적으로 생성 된 JNLP (매번 변경)가 있습니다. 체크 박스를 체크 한 후 jre 1.8.0_151이 설치된 컴퓨터에서 ** 다시 묻지 않습니다 **. 그러나 고객 사이트에서 동적으로 생성 된 JNLP가있는 동일한 jar 파일은 매번 대화 상자를 표시합니다. – user93353