mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
reduce session size and prevent potential session loss (and exceptions) when server restarts
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user