gpt4 book ai didi

java - 有多于一个用户登录的 Wicket session

转载 作者:行者123 更新时间:2023-12-01 04:29:39 26 4
gpt4 key购买 nike

我正在使用 Wicket 构建我的第一个 Java 应用程序,但 Wicket session 存在一些问题。

我的问题:当第二个用户登录应用程序时,他会覆盖第一个用户的 session -> 现在两个用户都在处理第二个 session 。尽管两个用户在登录时都会创建一个新 session 。

我的代码:

WicketSession.java:

public class WicketSession extends WebSession {

private UserBean currentUser;

public WicketSession(Request request) {
super(request);
}

public static WicketSession get() {
return (WicketSession) Session.get();
}
// getter/setter

在我的应用程序类中:

@Override
public Session newSession(Request request, Response response) {
return new WicketSession(request);
}

和登录名(没有 ifs 的简短版本,以使其可读):

@Override
public final void onSubmit() {

if (signIn(wiaUsername, wiaPassword)) {
getSession().bind();
setResponsePage(new CharListDetail());
} else {
error("Unknown username/ password");
}
}

private boolean signIn(String username, String password) {
currentUser = UserProxy.getInstance().getElementByUser(username, password);
WicketSession.get().setCurrentUser(currentUser);
return true;
}

这对于一个用户来说一切正常。但是当第二个用户登录时

WicketSession.get().setCurrentUser(currentUser); 

将当前用户设置为新用户,并且两个登录用户是相同的。如何防止这个问题?

最佳答案

经过大量的网络搜索,我找到了解决方案。

问题是我将 currentUser 保存为 UserBean 而不是字符串。我不知道为什么在 Wicket 中不能将 User 存储为 Bean,但现在它终于可以工作了。

关于java - 有多于一个用户登录的 Wicket session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com