Subversion Repositories bacoAlunos

Rev

Blame | Last modification | View Log | RSS feed

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

import org.apache.log4j.Logger;
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.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() {

    }
}