セッションを維持している間に、管理者としてjsfアプリケーションでユーザーをログアウトしようとしていますが、何も得られません。ユーザーは自分のアプリケーションで自分のセッションを簡単に無効にすることができますが、私が達成したいのは、管理者が他のユーザーをログアウトできると別のユーザーが言う状況です。
私の主な質問は、他のユーザーのセッションにアクセスするにはどうすればよいですか? また、jsf セッションをデータベースに保存することは可能ですか?
ご協力ありがとうございます。
セッションを維持している間に、管理者としてjsfアプリケーションでユーザーをログアウトしようとしていますが、何も得られません。ユーザーは自分のアプリケーションで自分のセッションを簡単に無効にすることができますが、私が達成したいのは、管理者が他のユーザーをログアウトできると別のユーザーが言う状況です。
私の主な質問は、他のユーザーのセッションにアクセスするにはどうすればよいですか? また、jsf セッションをデータベースに保存することは可能ですか?
ご協力ありがとうございます。
このコードは、挿入可能なリスト内の開いているセッションを管理する Sessionlistener を作成します。次に、セッションのリストを挿入できます@SessionList
SessionListener.java
public class SessionListener implements HttpSessionListener {
@Inject
@SessionList
private List<HttpSession> sessions;
@Override
public void sessionCreated(HttpSessionEvent event) {
session.add(event.getSession());
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
session.remove(event.getSession());
}
}
SessionList.java
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Qualifier
public @interface SessionList {
}
セッションプロデューサー.Java
@ApplicationScoped
public class SessionProducer {
private List<HttpSession> session;
@Produces
@SessionList
public void List<Session> getSessions() {
if(sessions == null) sessions = new LinkedList<HttpSession>();
return sessions;
}
}