次の問題があります。1つのサーバーに、SAMLトークンを使用した認証を必要とする/protected/フォルダーがあります。
このフォルダ内のリソースにアクセスしようとすると、最初にログインページにリダイレクトされ、ログイン後にリソースにアクセスできます。
ここで、必要なすべてのリソースを含む.jnlpファイルを/protected/フォルダー内に追加しました。.jnlpファイルにアクセスしようとすると、期待どおりにログインページが表示されます。Java Web Startにログインした後、初期化してリソースのダウンロードを試みます。
ただし、Smart Startはすぐに失敗し、.jnlpファイルを解析できなかったと文句を言います。デバッグコンソールを調べると、Javaがjnlpファイルではなくログインページをダウンロードしていることがわかります。したがって、Java Web Startアプリケーションはブラウザのクレデンシャルを共有していないようです。そのため、新しいログインが必要です。
私のIDプロバイダーはZXIDであり、SAMLを使用しています。Java Web Startは、どういうわけかブラウザと同じSAMLトークンを使用する必要があると思いますよね?これは正しいです?出来ますか?
これまでの調査では、ブラウザが.jnlpファイルを見つけると、すぐにJavaを起動し、Javaアプリケーションがjnlpをダウンロードしようとするため、この問題が発生するようです。JNLPファイルにコードベースエントリが含まれていてはならないことがわかりました。それ以外の場合、Java VMはファイルを再ダウンロードしようとしますが、認証されていないため、ログインページを取得します。
ただし、JNLPを読み取ることができる場合は、JWSが認証されないため、リソースを保護領域に配置することもできません。
したがって、必要なのは、JWS VMがブラウザからセッションIDを取得することであると思います。そのため、認証済みと見なされます。
何か案は?