SecurityController.java 1.2 KB
package fi.insomnia.intra.web;

import java.util.Collections;
import java.util.HashSet;
import java.util.Set;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class SecurityController {

    private Set<String> revokeList = Collections.synchronizedSet(new HashSet<String>());
    private static final Logger logger = LoggerFactory.getLogger(SecurityController.class);
    protected ExternalContext getContext()
    {
	return FacesContext.getCurrentInstance().getExternalContext();
    }
    public String getAuthType()
    {
	return getContext().getAuthType();
    }
    
    public String getUsername()
    {
	return getContext().getRemoteUser();
    }
    public boolean isUserInRole(String role)
    {
	if(revokeList.contains(role))
	{
	    logger.debug("RevokeList contained role {}, returning false..");
	    return false;
	}
	return getContext().isUserInRole(role);
    }
    
    public void resetRevokeList()
    {
	revokeList.clear();
    }
    public void addRevokeList(String role)
    {
	revokeList.add(role);
    }
    public void removeRevokeList(String role)
    {
	revokeList.remove(role);	
    }
    
    
}