Weblogic 11gのすべてのアプリケーションでのセッションを無効にします
-
30-09-2019 - |
質問
私はWeblogicを初めて使用しており、JBossからの一連のWebアプリケーションを移植しています。同じWeblogicサーバーに展開するという複数の戦争があります。それらはすべて、Active Directoryに裏打ちされたフォームベースの認証用に構成されています。
ただし、アプリケーションからログアウトするのに問題があります。実際のlogin.jspフォームを含むログインアプリケーションとして機能するアプリケーションの1つがあります。また、session.invalidate()を呼び出すログアウトサーブレットもあります。これを呼び出した後、メインアプリケーションで保護されたページにアクセスすることはできませんが、他のアプリケーションで保護されたページにアクセスできます。
私が読んでいることから、Weblogic 11gはすべてのアプリケーションで同じセッションを共有しています。これは、私が見ているものに理にかなっています。以下を使用して、すべてのアプリケーションでセッションを無効にすることへの参照を見つけています。
invalidateAll(HttpServletRequest req)
パッケージで
weblogic.servlet.security.ServletAuthentication
ただし、Weblogic 11gでこれや類似したものは見つかりません。このユーティリティクラスはどこにありますか、それともどうすればいいですか?
ありがとう
アップデート:
以下のJosekの回答に基づいて、展開しているすべてのアプリケーションのWeblogic.xmlファイルに以下を追加する必要がありました。
<session-descriptor>
<sharing-enabled>true</sharing-enabled>
</session-descriptor>
私が探していた瓶は、サーブレットアテンティケーションクラスを含むwls-api.jarと呼ばれます。 Web Logic ServerのZIPベースの10.3.3.0バージョンを使用していました。 WLSERVER_10.3サーバーのインストールのインストールで、Weblogic Fusionのインストールの一部としてJARが見つかりました。私はちょうど瓶を取り、それをNexus Mavenリポジトリに追加しました。
解決
invalidateAll
WLS 10.3(別名11g)の一部として文書化されているため、ログアウトサーブレットで動作するはずです。試してみて、エラーに直面しましたか?
また、session.invalidate()を呼び出すログアウトサーブレットもあります。これを呼び出した後、メインアプリケーションで保護されたページにアクセスできませんが、他のアプリケーションで保護されたページにアクセスできます
これは私に、セッションがあることを示しています いいえ デフォルトの動作であるWebアプリケーション全体で共有されます。セッションが共有された場合、ユーザーはすべてのアプリケーションからログアウトされます。セッションを共有するには、設定する必要があります sharing-enabled
本当です
として ドキュメントの状態,
デフォルトでは、Webアプリケーションは同じセッションを共有しません。 Webアプリケーションに同じセッションを共有したい場合は、Weblogic-Application.xml展開記述子のアプリケーションレベルでセッション記述子を構成できます。 Webアプリケーションが同じセッションを共有できるようにするには、セッション記述子の共有対応属性をWeBlogic-Application.xml deployment DecruptorでTrueに設定します。