es.mcu.yingo.filtros
Class FiltroSinCertificado

java.lang.Object
  extended by org.springframework.web.filter.GenericFilterBean
      extended by org.springframework.web.filter.OncePerRequestFilter
          extended by es.mcu.yingo.filtros.FiltroAbstracto
              extended by es.mcu.yingo.filtros.FiltroSinCertificado
All Implemented Interfaces:
javax.servlet.Filter, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.web.context.ServletContextAware

public class FiltroSinCertificado
extends FiltroAbstracto

Si el párametro 'regexUrl' es diferente de nulo se comprueba primero si la url actual cumple la expresion regular cargada en este parámetro.
Si no cumple las condiciones se sigue con la cadena de filtros. Si se cumplen las condiciones primero comprueba que la id de aplicación que tiene el usuario en la sesión es la misma que la que está configurada en el parámetro idAplicacion. Si no es la misma limpia todos los objetos en sesión dek usuario y coloca el id de aplicación en la sesión.
Después comprueba que existe el usuario en sesión.
Si el usuario no está en sesión, crea un usuario del tipo UsuarioConCertificado. Se obtiene del el objeto del tipo FactoriaUsuariosConCertificado que está definido en el contexto de spring con el valor que tiene el parámetro factoriaUsuariosCertSpringId. Se realizará una llamada al método crearValidarUsuario con argumentos nulos tanto en el certificado del usuario como en el certificado de la entidad emisora de este.
Ejemplo de configuración:

 
                FiltroInternetCustodiaCertBusqueda
            es.mcu.yingo.filtros.FiltroSinCertificado
                 
                        vistaError
                        /custodiaCert/inter/error.form
                
                 
                        idAplicacion
                        custodiaCert
                
                 
                        factoriaUsuariosCertSpringId
                        custodiaCert.factoriaUsuariosInternetBusqueda
                
        
 

Author:
miguel.esteban

Field Summary
private  java.lang.String factoriaUsuariosCertSpringId
          Id de bean en la configuración de spring de la factoría de usuarios con certificado
private  java.lang.String idAplicacion
          Id de aplicación.
private  java.lang.String regexUrl
          Expresión regular que deberá cumplir la url actual para que pase por las siguientes validaciones del filtro
 
Fields inherited from class es.mcu.yingo.filtros.FiltroAbstracto
FILTRO_URL_VISTAERROR, logger, VISTA_ERROR, vistaError
 
Fields inherited from class org.springframework.web.filter.OncePerRequestFilter
ALREADY_FILTERED_SUFFIX
 
Constructor Summary
FiltroSinCertificado()
           
 
Method Summary
private  void colocarAplicacionSession(javax.servlet.http.HttpServletRequest request)
          Coloca en la sesión el id de aplicación.
protected  void doFilterInternal(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
           
protected  void filtrar(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain)
          Se obtiene el usuario de la sesión.
 java.lang.String getFactoriaUsuariosCertSpringId()
           
 java.lang.String getIdAplicacion()
           
 java.lang.String getRegexUrl()
           
private  UsuarioConCertificado obtenerUsuario()
          Obtiene el usuario de la factoria de usuarios definida como id de spring en el parámetro de inicio del filtro
 void setFactoriaUsuariosCertSpringId(java.lang.String factoriaUsuariosCertSpringId)
           
 void setIdAplicacion(java.lang.String idAplicacion)
           
 void setRegexUrl(java.lang.String regexUrl)
           
 
Methods inherited from class es.mcu.yingo.filtros.FiltroAbstracto
colocarParametroRequestVistaError, getVistaError, obtenerUrlActual, recogerError, setVistaError
 
Methods inherited from class org.springframework.web.filter.OncePerRequestFilter
doFilter, getAlreadyFilteredAttributeName, shouldNotFilter
 
Methods inherited from class org.springframework.web.filter.GenericFilterBean
addRequiredProperty, afterPropertiesSet, destroy, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setFilterConfig, setServletContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

idAplicacion

private java.lang.String idAplicacion
Id de aplicación. Si no es la misma que tiene el usuario en sesión se limpiará la sesión del usuario


regexUrl

private java.lang.String regexUrl
Expresión regular que deberá cumplir la url actual para que pase por las siguientes validaciones del filtro


factoriaUsuariosCertSpringId

private java.lang.String factoriaUsuariosCertSpringId
Id de bean en la configuración de spring de la factoría de usuarios con certificado

Constructor Detail

FiltroSinCertificado

public FiltroSinCertificado()
Method Detail

doFilterInternal

protected void doFilterInternal(javax.servlet.http.HttpServletRequest request,
                                javax.servlet.http.HttpServletResponse response,
                                javax.servlet.FilterChain chain)
                         throws javax.servlet.ServletException,
                                java.io.IOException
Specified by:
doFilterInternal in class org.springframework.web.filter.OncePerRequestFilter
Throws:
javax.servlet.ServletException
java.io.IOException

filtrar

protected void filtrar(javax.servlet.http.HttpServletRequest request,
                       javax.servlet.http.HttpServletResponse response,
                       javax.servlet.FilterChain chain)
                throws java.lang.Exception
Se obtiene el usuario de la sesión. Si el usuario es nulo lo que se crea es un usuario UsuarioConCertificado se llama a la validación

Parameters:
request -
response -
chain -
Throws:
java.lang.Exception

colocarAplicacionSession

private void colocarAplicacionSession(javax.servlet.http.HttpServletRequest request)
Coloca en la sesión el id de aplicación. Si el id de sesión es diferente al idDeSession del filtro limpia la sesión y coloca el nuevo id de sesión

Parameters:
request -

obtenerUsuario

private UsuarioConCertificado obtenerUsuario()
                                      throws SeguridadYingoException
Obtiene el usuario de la factoria de usuarios definida como id de spring en el parámetro de inicio del filtro

Parameters:
x509Certificate -
Returns:
Throws:
SeguridadYingoException

getFactoriaUsuariosCertSpringId

public java.lang.String getFactoriaUsuariosCertSpringId()
Returns:
Devuelve el atributo factoriaUsuariosCertSpringId

setFactoriaUsuariosCertSpringId

public void setFactoriaUsuariosCertSpringId(java.lang.String factoriaUsuariosCertSpringId)
Parameters:
factoriaUsuariosCertSpringId - Carga el atributo factoriaUsuariosCertSpringId

getIdAplicacion

public java.lang.String getIdAplicacion()
Returns:
Devuelve el atributo idAplicacion

setIdAplicacion

public void setIdAplicacion(java.lang.String idAplicacion)
Parameters:
idAplicacion - Carga el atributo idAplicacion

getRegexUrl

public java.lang.String getRegexUrl()
Returns:
Devuelve el atributo regexUrl

setRegexUrl

public void setRegexUrl(java.lang.String regexUrl)
Parameters:
regexUrl - Carga el atributo regexUrl