reduce session size and prevent potential session loss (and exceptions) when server restarts

This commit is contained in:
Athou
2013-08-16 17:40:02 +02:00
parent 33eb469520
commit 24f2b17416
2 changed files with 45 additions and 11 deletions

View File

@@ -2,32 +2,27 @@ package com.commafeed.frontend;
import java.util.Set;
import javax.inject.Inject;
import lombok.Getter;
import org.apache.wicket.Session;
import org.apache.wicket.authroles.authentication.AuthenticatedWebSession;
import org.apache.wicket.authroles.authorization.strategies.role.Roles;
import org.apache.wicket.request.Request;
import com.commafeed.backend.dao.UserRoleDAO;
import com.commafeed.backend.model.User;
import com.commafeed.backend.model.UserRole.Role;
import com.commafeed.backend.services.UserService;
import com.google.common.collect.Sets;
public class CommaFeedSession extends AuthenticatedWebSession {
private static final long serialVersionUID = 1L;
@Inject
UserService userService;
@Inject
UserRoleDAO userRoleDAO;
private User user;
private Roles roles = new Roles();
@Getter(lazy = true)
private final CommaFeedSessionServices services = newServices();
public CommaFeedSession(Request request) {
super(request);
}
@@ -47,7 +42,7 @@ public class CommaFeedSession extends AuthenticatedWebSession {
@Override
public boolean authenticate(String userName, String password) {
User user = userService.login(userName, password);
User user = getServices().getUserService().login(userName, password);
setUser(user);
return user != null;
}
@@ -59,7 +54,7 @@ public class CommaFeedSession extends AuthenticatedWebSession {
} else {
Set<String> roleSet = Sets.newHashSet();
for (Role role : userRoleDAO.findRoles(user)) {
for (Role role : getServices().getUserRoleDAO().findRoles(user)) {
roleSet.add(role.name());
}
this.user = user;
@@ -67,4 +62,8 @@ public class CommaFeedSession extends AuthenticatedWebSession {
}
}
private CommaFeedSessionServices newServices() {
return new CommaFeedSessionServices();
}
}

View File

@@ -0,0 +1,35 @@
package com.commafeed.frontend;
import javax.inject.Inject;
import org.apache.wicket.Component;
import com.commafeed.backend.dao.UserRoleDAO;
import com.commafeed.backend.services.UserService;
// extend Component in order to benefit from injection
public class CommaFeedSessionServices extends Component {
@Inject
UserService userService;
@Inject
UserRoleDAO userRoleDAO;
public CommaFeedSessionServices() {
super("services");
}
public UserService getUserService() {
return userService;
}
public UserRoleDAO getUserRoleDAO() {
return userRoleDAO;
}
@Override
protected void onRender() {
// do nothing
}
}