Tomcat6 で基本認証を有効にしました。ユーザーがブラウザで認証された後、JNLP が起動され、Java Web Start でアプリケーションが起動されます。起動時に、Java Web Start はサーバーから jar ファイルをダウンロードしようとしますが、ブラウザーによって既に認証されている同じセッションを使用していません。フォーラムに基づいて、sid プロパティを使用し、URL に追加して、JNLP でセッション ID を渡そうとしました。環境が制限されているため、すべてのリクエストを認証する必要があるため、認証されていない jar ファイルのリクエストを除外するとは言えません。以下はJNLPファイルを作成する私のJSPです。ブラウザによってすでに認証されているjarをダウンロードするために同じセッションを続行する方法を教えてください。
<% response.setContentType("application/x-java-jnlp-file"); %>
<%= "<?xml version=\"1.0\" encoding=\"utf-8\"?>" %>
<!-- JNLP File for SimpleTableDemo -->
<%
String baseURL = request.getRequestURL().toString().replace(request.getRequestURI(), request.getContextPath());
%>
<jnlp codebase="<%=baseURL%>">
<information>
<title>Simple Table Demo Application</title>
<vendor>Try</vendor>
<description>SimpleTableDemo</description>
<description kind="short">An application that demonstrates a simple table.</description>
</information>
<resources>
<j2se version="1.6+" />
<property name="sid" value="<%=request.getSession().getId()%>" />
<property name="serviceHost" value="<%=request.getServerName()%>"/>
<property name="servicePort" value="<%=request.getServerPort()%>"/>
<jar href="AuthenticateJNLPJars.jar;JSESSIONID=<%=request.getSession().getId()%>" />
</resources>
<application-desc main-class="SimpleTableDemo" >
</application-desc>
</jnlp>