- PR -

JavaWebStartでアプレットへのパラメータの渡し方?

投稿者投稿内容
taka
会議室デビュー日: 2004/10/05
投稿数: 5
投稿日時: 2004-10-05 23:13
現在ServletとJWSを用いたシステムを開発しております。
当初は、サーバ上でアプレットのパラメータを記入したJNLPファイルを作成し、
JWSに渡していたのですが、
現在、セキュリティ上JNLPファイルにパラメータを記入せずにアプレットに渡すことが
必要となってきました。
どなたか解決策をご存知の方いらっしゃいませんか?
もしよろしければ、ご教授願いたいのですが。

よろしくお願いいたします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-06 09:11
サーバへWebサービスなりなんなりで JWS アプリケーションからアクセスすることは可能です。
しかし、HTTP または HTTPS でデータを受け渡すという意味では JNLP にパラメータを記述するのとセキュリティ上なんら変わりはないと思います。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-10-06 09:12 ]
taka
会議室デビュー日: 2004/10/05
投稿数: 5
投稿日時: 2004-10-06 10:33
インギさん、ご返答ありがとうございました。
サーバからJWSにCookie or Socket経由でパラメータを渡すことは可能でしょうか?
できれば、JNLPファイル自体もサーバ上に作成したくありません。

サーバとユーザだけでクローズしたパラメータの渡し方ができたらと思っております。

素人なもので、的が外れていたらすいません。

どうしても解決策が見つからず、途方にくれております。
どうか、よろしくお願いいたします。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-10-06 10:46
引用:

サーバからJWSにCookie or Socket経由でパラメータを渡すことは可能でしょうか?


インギさんのおっしゃっている「Webサービス」というのは、技術的にはSOAP over HTTP
もしくはSOAP over HTTPSなどです。これがtakaさんの希望される「Socket経由」に
マッチしますか?

Cookieの場合、HTTPのrequest / responseの先頭にCookieヘッダを入れるだけですから、
まあ、これもHTTPもしくはHTTPSでやってるわけですが。

ちなみに、通信路の暗号化を考えられるのでしたら、どちらもHTTPSを使うというのが
まずは安易な手段です。それに追加して、データの中身をアプリ独自の可逆暗号で
暗号化すれば、さらに強固にはなるでしょうね。

私はHTTPSで十分な気がしますが。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-10-06 11:02
>サーバからJWSにCookie or Socket経由でパラメータを渡すことは可能でしょうか?
まず JWS がなんであるかは理解していらっしゃいますか?
JWS は署名さえしていれば Java で可能なことはなんでもできます。

>できれば、JNLPファイル自体もサーバ上に作成したくありません。
静的、動的に関わらず JNLP を用意しないと JWS アプリケーションを起動することはできません。
なにを懸念されているのでしょうか?

>サーバとユーザだけでクローズしたパラメータの渡し方ができたらと思っております。
HTTPS で十分ではないでしょうか。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-10-06 11:07 ]
taka
会議室デビュー日: 2004/10/05
投稿数: 5
投稿日時: 2004-10-06 12:26
>まずは安易な手段です。それに追加して、データの中身をアプリ独自の可逆暗号で
>暗号化すれば、さらに強固にはなるでしょうね。
おばけさん、アドバイスありがとうございました。

>静的、動的に関わらず JNLP を用意しないと JWS アプリケーションを起動することはできません。
>なにを懸念されているのでしょうか?
JNLPファイルをローカルからアクセスできる場所に作るということは、
ファイル名さえ分かれば、誰でもアクセス可能にはならないのかどうか
が一番心配です。Apacheの設定でなんとかなるものでしょうか?

どうか、よろしくお願い致します。
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-10-06 13:36
引用:

JNLPファイルをローカルからアクセスできる場所に作るということは、
ファイル名さえ分かれば、誰でもアクセス可能にはならないのかどうか
が一番心配です。Apacheの設定でなんとかなるものでしょうか?


いったんファイルを生成する必要はありますか?
無ければWebサービスで動的に生成したデータをクライアントに渡せば済むと思います。

もしどうしてもファイルにしたいのであれば、Apacheの公開ディレクトリ以下には
ファイルを置かず、CGIやServletなどを通してファイルを公開するようにすれば
良いでしょう。この際、CGIやServletへのアクセス時に独自の認証ロジックを使う
様にする必要はあるでしょうね。CGIならApacheだけでも可能ですが、Servletなら
別途Webコンテナ(Tomcatなど)が必要です。

まあ、ベーシック認証で代用しても良いですけど、あれは認証情報がHTTPのヘッダで
流れちゃうんで、あんまりよろしくないかと。まあ、HTTPSなら良いのかな。。。
taka
会議室デビュー日: 2004/10/05
投稿数: 5
投稿日時: 2004-10-06 13:58
>いったんファイルを生成する必要はありますか?
まったくファイルを生成する必要はありません。
ファイルを作成すること無しに
以下の方法では試しましたが、うまくいきませんでした。

response.setContentType("application/x-java-jnlp-file");
response.setHeader("Content-Disposition", "inline; filename=" + jnlpFile.getName());

byte[] bytes = jnlp.toXml().getBytes();
response.setContentLength(bytes.length);
ServletOutputStream out = response.getOutputStream();
out.write(bytes);

>無ければWebサービスで動的に生成したデータをクライアントに渡せば済むと思います。
上記以外でクライアントにデータを渡す方法を知りません。
もしよろしければ、ご教授願えませんでしょうか?

よろしくお願い致します。

スキルアップ/キャリアアップ(JOB@IT)