package com.ejie.ad74a.security;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.stereotype.Component;

import com.ejie.ad74a.util.comun.UtilSeguridad;
import com.ejie.ad74a.util.constantes.Constantes;

@Component
public class PerfilAuthenticationSuccessHandler implements AuthenticationSuccessHandler {

	@Override
	public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
			Authentication authentication) throws IOException, ServletException {

		HttpSession sesion = request.getSession();
		Long ayuntamientoSeleccionado = (Long) sesion.getAttribute(Constantes.VARCONTEXTO_AYUNTAMIENTO_SELECCIONADO);

		sesion.setAttribute(Constantes.VARCONTEXTO_URL_OBJETIVO, request.getContextPath() + request.getServletPath());

		String[] perfilSeguridad = { UtilSeguridad.Props.PERFIL_SEGURIDAD_SSB.getValue() };

		// String[] perfilSeguridad = {
		// UtilSeguridad.Props.PERFIL_SEGURIDAD_ADMINISTRADOR.getValue() };
		Boolean isSSB = UtilSeguridad.tienePerfilSeguridad(request, perfilSeguridad);

		if (Boolean.TRUE.equals(isSSB) && ayuntamientoSeleccionado == null) {
			response.sendRedirect(Constantes.URL_SELECCIONAYUNTAMIENTO);
		}

	}

}