- PR -

axisでログインの状態管理について

1
投稿者投稿内容
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2004-12-16 13:42
 こんにちは、いつも読ませて頂いております。


 あいまいな表現で申し訳ないのですが、現在axis web serviceで
stateless session beanのメソッドをクライアント側に提供してい
ます。この度そのメソッドを「ログイン」している人のみに提供する
様に変更したいと考えております。

 ユーザの「ログイン」判定をどの様に設計するのか?という所で
悩んでいる状況です。

 
 ちなみにaxisでのセッション管理については調べたところ
・axisのsetMaintainSession(true)を使用すればweb serviceで
 session同様の機能が実現できる
・さらにstatefull beanをaxisで公開すれば通常のstatefull
 bean同様にstatefullで動作する
 というところはわかったのですが。。


 statefull session beanを使用してフロントコントローラ
の様にそのメソッドにアクセスを集中させて、ログイン判定を
おこなえば良いでしょうか?
 もしかしたらだいぶ的外れな事を言っているかもしれません
が、もし同様にログイン状態を保持する処理の経験をお持ち、
もしくは何かお気づきの点や参考資料をご存知であれば参考
サイトなどでも結構ですのでご教授下さい。
 よろしくお願いいたします。


[ メッセージ編集済み 編集者: matu 編集日時 2004-12-16 13:44 ]
nagaixx
会議室デビュー日: 2005/01/09
投稿数: 4
お住まい・勤務地: 東京
投稿日時: 2005-01-09 23:32
SOAPヘッダにsessionを記述する方法(HandlerにSimpleSesssionHnadlerを追加)を
すれば何とかなるような気がする。

セッションについて
http://ws.apache.org/axis/jp/wiki-java/DevelopmentQuestions.html#SessionSupport
SimpleSessionHandlerを使用する方法
http://ws.apache.org/axis/jp/wiki-java/ClientRelated.html#AxisClientConfiguration
スコープをapplicationにしてインスタンスをひとつにすれば、ログインしている人を判定できるのではだろうか?



[ メッセージ編集済み 編集者: nagaixx 編集日時 2005-01-09 23:32 ]

[ メッセージ編集済み 編集者: nagaixx 編集日時 2005-01-09 23:33 ]
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2005-01-10 11:18

nagaixxさんこんにちは
情報ありがとうございます。とても参考になります。
私も色々と調べて最終的にはASがjbossなのでjbossのJAAS認証との
連携処理JBossAuthenticationHandlerがあったのでAXISのrequestFlow
をSimpleAuthenticationHandler -> JBossAuthenticationHandlerの様
に書いてみました。
<requestFlow>
<handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" />
<handler type="java:org.jboss.net.axis.server.JBossAuthenticationHandler" />
<parameter name="securityDomain" value="java:/jaas/other"/>
</requestFlow>

ですが今のところ上手くいっていません。nagaixxさんにご教授頂いた
SimpleSessionHandlerの情報などを元にさらにwsddの書き方などを
調査してもう一度やってみたいと思います。

ありがとうございました。
TMT
会議室デビュー日: 2005/01/07
投稿数: 18
投稿日時: 2005-01-10 20:54
私もJBoss.NETを利用して、WebServiceを.NETクライアントに接続させています。

同様な問題についてはAxisのプロジェクトでも、
たくさんの人が疑問に思っていましたが、
WebServiceの仕様がそもそもStatelessなので、
みな自分で作ってるようでした。

私は、クライアントがログインの記録を残したいと要望していたので、
EntityBeanとSessionBeanでDatabaseLoginModuleを使ってログインを管理しています。
複数のインスタンスからのアクセス防止にUUIDをクライアントに生成させてもいます。
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2005-01-12 19:44

TMTさんはSimpleAuthenticationHandler->JBossAuthenticationHandler経由で
DatabaseLoginModuleに連携しているのですか?私もユーザ認証は
xoopsやイントラシステムのユーザデータベースを使って権限管理
しようとしていたのでまさにTMTさんが利用されいているDatabaseLoginModule
を使おうとしていました。DatabaseLoginModule認証は勿論上手くいったのですが
AXISとの連携がまだうまくいってません。

甘えて恐縮ですがもしさしつかえなければrequestFlowをどの様に書かれたか
お教えいただけないでしょうか。もし難しければぜんぜんかまいません。

ただ私が上手くいっていないのはどうもJavaWebStartクライアント側でのAIXS
の呼び出し時の処理の仕方の様な気がしています。。でも実際に同様の環境で
成功されているので私もあと少しでできそうな気がしてきました。

UUIDの部分はどういう意味なのでしょうか?もし良かったら教えてください。
ありがとうございます。
1

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