Subversion Repositories bacoAlunos

Rev

Rev 2009 | Rev 2049 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.es.exemplos.hibernate.web;

import org.apache.log4j.Logger;
import pt.estgp.es.exemplos.hibernate.HibernateUtils;
import pt.estgp.es.exemplos.hibernate.UserSession;
import pt.estgp.es.exemplos.hibernate.web.pluginSession.PluginFactory;
import pt.estgp.es.exemplos.hibernate.web.pluginSession.RegisterSession;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class SecurityFilter implements 1.5.0/docs/api/java/util/logging/Filter.html">Filter {

  private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(SecurityFilter.class);
  private static final 1.5.0/docs/api/java/lang/String.html">String SESSION_IN_REQUEST_KEY = "UserSession";

  @1.5.0/docs/api/java/lang/Override.html">Override
  public void init(FilterConfig filterConfig) throws ServletException{

  }

  @1.5.0/docs/api/java/lang/Override.html">Override
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws 1.5.0/docs/api/java/io/IOException.html">IOException, ServletException {
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    loadSessionProxy(servletRequest);
    filterChain.doFilter(servletRequest, response);
  }

  public static UserSession loadSessionProxy(ServletRequest servletRequest) throws 1.5.0/docs/api/java/io/IOException.html">IOException, ServletException{
    UserSession session = (UserSession) servletRequest.getAttribute(SESSION_IN_REQUEST_KEY);

    try {
      if(session == null) {
        RegisterSession plugin;
        plugin = (RegisterSession) PluginFactory.getPlugin(RegisterSession.class);
        session = plugin.openSession(servletRequest);
        servletRequest.setAttribute(SESSION_IN_REQUEST_KEY,session);
      }
    } catch (1.5.0/docs/api/java/lang/ClassNotFoundException.html">ClassNotFoundException | 1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException | 1.5.0/docs/api/java/lang/InstantiationException.html">InstantiationException e) {
        logger.error(e,e);
        return null;
      }
    return session;
  }

  @1.5.0/docs/api/java/lang/Override.html">Override
  public void destroy() {

  }
}