package auth;
import java.io.IOException;
import java.security.Principal;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse;
public class UserPrincipalRequestWrapper extends HttpServletRequestWrapper {
private String user;
private List<String> roles = null;
private HttpServletRequest realRequest;
public UserPrincipalRequestWrapper(String user, List<String> roles, HttpServletRequest request) {
super(request);
this.user = user;
this.roles = roles;
this.realRequest = request;
}
@Override
public boolean isUserInRole(String role) {
if (roles == null) {
return this.realRequest.isUserInRole(role);
}
return roles.contains(role);
}
@Override
public Principal getUserPrincipal() {
if (this.user == null) {
return realRequest.getUserPrincipal();
}
return new Principal() {
@Override
public String getName() {
return user;
}
};
}
@Override
public boolean authenticate(HttpServletResponse response) throws IOException,
ServletException {
// TODO Auto-generated method stub
return super.authenticate(response);
}
@Override
public String getAuthType() {
// TODO Auto-generated method stub
return super.getAuthType();
}
@Override
public String getRemoteUser() {
// TODO Auto-generated method stub
return super.getRemoteUser();
}
@Override
public void login(String username, String password) throws ServletException {
// TODO Auto-generated method stub
super.login(username, password);
}
}