1

すでにログインしているときにログインしようとすると、wicket から LoginException が返されます。追加のログインは許可されていません。これは当然のことです。

私がやりたいことは、すでにログインしているユーザーがいる場合はセッションを無効にし、同じイベントにログインすることです。

if (((AuthenticatedWebSession) getSession()).isUserAuthenticated()) {
   ((AuthenticatedWebSession) getSession()).invalidateNow();
}
((AuthenticatedWebSession) getSession()).login(secureLoginContext);

onSubmit イベントの後、invalidateNow が完了したようです。これは、Wicket が引き続き同じ LoginException を返すためです。

これを機能させる方法はありますか?

4

1 に答える 1

0

なぜ再度ログインしたいのですか?別の資格情報でログインしようとしていますか?

十分な権限があれば、(すでにログインしている) ユーザーが別のユーザーとしてログインできるパネルを作成したことがあります。私は同様の問題に遭遇し、改札に新しいセッションを強制的に作成することで修正しましたThreadContext.setSession(null)

したがって、コードは次のようになります。

if (((AuthenticatedWebSession) getSession()).isUserAuthenticated()) {
   ((AuthenticatedWebSession) getSession()).invalidateNow();
   ThreadContext.setSession(null);
}
((AuthenticatedWebSession) getSession()).login(secureLoginContext);
于 2013-07-26T12:35:53.777 に答える