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