package org.brixcms.plugin.demo.web;
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.injection.Injector;
import org.apache.wicket.request.Request;
import org.apache.wicket.spring.injection.annot.SpringBean;
import org.brixcms.plugin.usermgmt.user.User;
import org.brixcms.plugin.usermgmt.user.UserRepository;
@SuppressWarnings("serial")
public class AuthenticatedSession extends AuthenticatedWebSession {
private Long userId;
@SpringBean
private UserRepository userRepository;
public AuthenticatedSession(Request request) {
super(request);
Injector.get().inject(this);
}
public static AuthenticatedSession get() {
return (AuthenticatedSession) Session.get();
}
@Override
protected boolean authenticate(String username, String password) {
User user = userRepository.findByUsername(username);
if (user != null && user.getPassword().equals(password)) {
userId = user.getId();
return true;
}
return false;
}
@Override
public Roles getRoles() {
if (isSignedIn()) {
return new Roles(Roles.USER);
}
return new Roles();
}
public User getUser() {
if (isSignedIn()) {
return userRepository.findOne(userId);
}
return null;
}
}