SecurityBean.java 2.14 KB
package fi.insomnia.bortal.beans;

import java.util.Calendar;

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

import org.slf4j.Logger;

import fi.insomnia.bortal.facade.LogEntryFacade;
import fi.insomnia.bortal.facade.LogEntryTypeFacade;
import fi.insomnia.bortal.model.LogEntry;
import fi.insomnia.bortal.model.LogEntryType;
import fi.insomnia.bortal.model.User;

/**
 * Session Bean implementation class SercurityBean
 */
@Stateless
public class SecurityBean implements SecurityBeanLocal {

  
    private final Logger logger = org.slf4j.LoggerFactory.getLogger(SecurityBean.class);
    @EJB
    private LogEntryTypeFacade typeFacade;
    @EJB
    private LogEntryFacade entryFacade;

    @Override
    public LogEntry logPermissionDenied(User user, Exception exception) {
        LogEntry entry = logMessage(SecurityLogType.permissionDenied, user, exception.getMessage());
        logger.debug(entry.toString(), exception);
        return entry;

    }

    public LogEntry logException(User user, Exception exception) {

        LogEntry entry = logMessage(SecurityLogType.unknownException, user, exception.getMessage());
        logger.debug(entry.toString(), exception);
        return entry;
    }

    public LogEntry logMessage(User user, String description) {
        LogEntry entry = logMessage(SecurityLogType.genericMessage, user, description);
        return entry;
    }

    public LogEntry logMessage(String description) {
        LogEntry entry = logMessage(SecurityLogType.genericMessage, description);
        return entry;

    }

    public LogEntry logMessage(SecurityLogType type, String description) {
        return logMessage(type, null, description);
    }

    public LogEntry logMessage(SecurityLogType paramType, User user, String description) {
        LogEntryType type = typeFacade.findOrCreate(paramType);
        LogEntry entry = new LogEntry();

        entry.setType(type);
        entry.setTime(Calendar.getInstance());
        entry.setDescription(description);
        entry.setUser(user);

        entryFacade.create(entry);
        return entry;
    }

    public void logPermissionDenied(User currentuser, String string) {
       
    }
}