そのため、フロントエンドのプレゼンテーションにjsfとprimefacesを利用するWebアプリがあります。
ログインメカニズムにSpringセキュリティを使用しており、同時実行性をそのように定義しています
<session-management session-fixation-protection="newSession">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true"
expired-url="multipleLogins.xhtml" />
</session-management>
問題は、ユーザーが異なるブラウザーから 2 つのログインを持っている場合に、リダイレクトをトリガーしない ajax アクションを実行する特定のボタンがあるようです。複数のログインアクションを認識するのは、フォームを送信するか、ページ自体にリダイレクトするボタンだけのようです。
たとえば、このボタン
<p:commandButton id="retrieve" value="#{msgs.BUTTON_RETRIEVE}"
action="#{removeContactForm.retrieve}" update="@form"/>
複数のログインがある場合、Web サービスから取得してページに表示するものはリダイレクトをトリガーしません。
<p:commandButton id="remove" value="#{msgs.BUTTON_REMOVE}"
action="/pages/confirm/confirmRemove.xhtml" ajax="false" process="@this"
immediate="true" rendered="#{!empty removeContactManager and
removeContactManager.contactRolesSuccessful}" />
ただし、このボタンは (別のページにリダイレクトされるため)
ajaxベースのすべてを新しいページに貼り付けずに、webappにこれらのajax呼び出しをイベントとして登録させる方法を知っている人はいますか?