JaasBean.java 1.6 KB
package fi.insomnia.bortal.beans;

import java.util.Enumeration;
import java.util.Vector;

import javax.ejb.EJB;
import javax.ejb.Stateless;

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

import fi.insomnia.bortal.facade.UserFacade;
import fi.insomnia.bortal.model.User;

/**
 * Session Bean implementation class SessionHandlerBean
 */
@Stateless
public class JaasBean implements JaasBeanLocal, JaasBeanRemote {

    public static final String JAAS_SUPERADMINGROUP = "superadmin";
    public static final String JAAS_USERGROUP = "user";
    private static final Logger logger = LoggerFactory.getLogger(JaasBean.class);
    @EJB
    private UserFacade userfacade;


 
    @EJB
    private UserBean userbean;

    /**
     * Default constructor.
     */
    public JaasBean() {
        // TODO Auto-generated constructor stub
    }

  

    public User tryLogin(String username, String password) {
        User user = userfacade.findByLogin(username.trim());

        if (user != null && user.checkPassword(password)) {
            return user;
        }

        return null;
    }

  
    @Override
    public boolean authenticate(String username, String password) {
        return (tryLogin(username, password) != null);
    }

    @Override
    public Enumeration<String> getGroupNames(String user) {
        User usr = userbean.getUser(user);

        Vector<String> rights = new Vector<String>();
        if (usr != null) {
            rights.add(JAAS_USERGROUP);
            if (usr.isSuperadmin()) {
                rights.add(JAAS_SUPERADMINGROUP);
            }
        }

        return rights.elements();
    }


}