0

http://community.jboss.org/wiki/HAWebSessionsviaDatabasePersistenceで提案されているソリューションを構成しました。その他、ファイルとデータベース ストレージの両方を使用して、context.xml でマネージャーを構成します。しかし、JBoss-6.0.0.Final では単純に機能しません。バグかも?

いくつかのテストを行いましたが、すべてのテストで、構成された永続性にセッションが適切に保存されています。しかし、アプリケーションを再デプロイするか、JBoss サーバーを再起動すると、永続化されたセッションが無視され、以前のセッションを再利用する代わりに新しいログインが必要になります。SessionID がセッション永続性に保存され、ブラウザーが正しい Cookie を送信していることを確認しました。

JBoss-6.0.0.Final のテスト ケースを添付しました。http://community.jboss.org/wiki/HAWebSessionsviaDatabasePersistenceとして設定されています

この行をファイル jboss-6.0.0.Final/server/default/data/hypersonic/localDB.script に追加するだけです (必要に応じて、独自の mysql データソースを使用できます)。

CREATE TABLE httpsessions (app VARCHAR(255) NOT NULL, id VARCHAR(255) NOT NULL, fullId VARCHAR(255) NOT NULL, creationtime BIGINT NOT NULL,  maxinactive BIGINT NOT NULL, version INT NOT NULL, lastaccess BIGINT NOT NULL,  isnew CHAR(1) NOT NULL, valid CHAR(1) NOT NULL, metadata VARBINARY NULL,  attributes LONGVARBINARY NOT NULL,  CONSTRAINT app_id PRIMARY KEY (app, id))

次に、アプリケーションをデプロイし、localhost:8080/web に移動します。ログイン フォームに資格情報を入力します: user:password suecssfull ログインの場合、「ok」が表示されます (index.html を参照)。次に、セッションがどのように保存されているかを確認できます。データベースで:

$ cat jboss-6.0.0.Final/server/default/data/hypersonic/localDB.log

あなたはそのようなものを得るでしょう:

...
DELETE FROM HTTPSESSIONS WHERE APP='/web' AND ID='vIUYhSZDkw7fjCnEealRFA__'
INSERT INTO HTTPSESSIONS VALUES('/web','vIUYhSZDkw7fjCnEealRFA__','vIUYhSZDkw7fjCnEealRFA__',1351177671379,1800,9,1351178495217,'0...
COMMIT

以下を使用してアプリケーションを再デプロイする場合:

$ touch jboss-6.0.0.Final/server/default/deploy/test.ear/META-INF/application.xml

次に、ブラウザーを localhost:8080/web でリロードします。セッション ID が保存されていても、ユーザーとパスワードを再度入力するように求められます。ネイティブの jbossweb.sar/context.xml 設定を使用すると、この動作も得られます。

構成を失った場合、または本当にバグである場合、誰でも私に言うことができますか? いくつかの構成間で多くの順列を実行しましたが、常に同じ結果が得られます。

フォーラムに添付する方法がわからないため、テストケースへのリンクを貼りました。

http://kcy.me/bww8

ご挨拶。

4

1 に答える 1

0

少し調べてみたところ、この構成が機能しない理由がわかりました。

認証フレームワークとしてJASSを使用している場合、セッションの永続性は、再デプロイ時にログインしているユーザーを維持するのに役立ちません。JAASプリンシパルは永続化されないため、とにかく失われます。

これはクラスターを使用して解決できます。方法は次のとおりです。

http://corecanarias.blogspot.com.es/2013/03/jaas-persistent-sessions-with-jboss-6.html

于 2013-03-09T10:01:03.500 に答える