【发布时间】:2015-07-01 14:51:12
【问题描述】:
有一个WebSession的实现,它应该存储登录用户的ID:
public class SecurityWebSession extends AuthenticatedWebSession {
public SecurityWebSession(Request request) {
super(request);
bind();
}
...
@Override
public boolean authenticate(String username, String password) {
user = usersFacadeLocal.findByEmail(username);
if (user != null) {
try {
boolean valid = PasswordHash.validatePassword(password, user.getPassword());
if (valid) {
WebSession.get().setAttribute(USER_ID, user.getId());
}
return valid;
} catch (Exception ex) {
logger.error("Authenticate ERROR", ex);
}
}
return false;
}
}
但是,当我访问 SecurityWebSession 以从 WebPage 类获取登录用户的 ID 时,它返回 null。我发现 Session 不存储从其主体添加的值。但是,如果从 Wicket 的网页继承的类中设置值,它会完美地存储值。
我没有在文档中找到任何关于这种情况的提及。如何从 Session 中添加 Session 属性?
【问题讨论】: