You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
52 lines
1.3 KiB
package org.ros.chatto.logged;
|
|
|
|
import javax.servlet.http.HttpSessionBindingEvent;
|
|
import javax.servlet.http.HttpSessionBindingListener;
|
|
|
|
import org.ros.chatto.model.UserSession;
|
|
import org.ros.chatto.service.UserService;
|
|
|
|
import lombok.Getter;
|
|
import lombok.Setter;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@Getter
|
|
@Setter
|
|
@Slf4j
|
|
public class LoggedUser implements HttpSessionBindingListener {
|
|
|
|
private final String username;
|
|
private final UserService userService;
|
|
|
|
public LoggedUser(String username) {
|
|
this.username = username;
|
|
userService = BeanUtil.getBean(UserService.class);
|
|
}
|
|
|
|
@Override
|
|
public void valueBound(HttpSessionBindingEvent event) {
|
|
|
|
LoggedUser user = (LoggedUser) event.getValue();
|
|
|
|
log.debug("Incrementing session count for user {}", user.getUsername());
|
|
|
|
userService.incrementUserSession(user.getUsername());
|
|
|
|
// log.trace("Username = {} with sessions = {}", userSession.getUser(),
|
|
// userSession.getNumSessions());
|
|
}
|
|
|
|
@Override
|
|
public void valueUnbound(HttpSessionBindingEvent event) {
|
|
LoggedUser user = (LoggedUser) event.getValue();
|
|
|
|
log.debug("Decrementing session count for user {}", user.getUsername());
|
|
|
|
UserSession userSession = userService
|
|
.decrementUserSession(user.getUsername());
|
|
|
|
log.trace("Username = {} with sessions = {}", userSession.getUser(),
|
|
userSession.getNumSessions());
|
|
|
|
}
|
|
}
|