es.mcu.yingo.filtros
Class FiltroUsuarioConCertificadoRequest
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
es.mcu.yingo.filtros.FiltroAbstracto
es.mcu.yingo.filtros.FiltroUsuarioConCertificadoRequest
- 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 FiltroUsuarioConCertificadoRequest
- extends FiltroAbstracto
Filtro que obtiene el usuario de la sesión. Si existe, comprueba que
instancia de UsuarioConCertificado
y lo sustituye en sesión por un
objeto del tipo UsuarioConCertificadoRequestImp
que contiene
información de la petición http y del UsuarioConCertificado
almacenado en la sesións.
Antes esto, si está definida la propiedad regex
comprobará que
la URL actual cumple la expresión regular. Si está no está definida siempre
hará el cambio.
- Author:
- miguel.esteban
Field Summary |
private java.lang.String |
comprobarIpUsuario
Si el parámetro comprobarIpUsuario es igual a '1', se
comprueba que la ip del request y la ip de la sesión son la misma. |
private java.lang.String |
regex
La expresión regular con la que se comprobará la url actual |
Fields inherited from class org.springframework.web.filter.OncePerRequestFilter |
ALREADY_FILTERED_SUFFIX |
Method Summary |
private void |
_doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Método privado que recoge todas las excepiones. |
private boolean |
comprobarExpresionRegular(javax.servlet.http.HttpServletRequest request)
Comprueba que la url actual cumpla con la expresión regular cargada en
el atributo. |
protected void |
doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain chain)
|
java.lang.String |
getComprobarIpUsuario()
|
java.lang.String |
getRegex()
|
private UsuarioConCertificado |
obtenerUsuarioConCertificado(javax.servlet.http.HttpServletRequest request)
Obtiene el objeto UsuarioConCertificado de la sesión. |
void |
setComprobarIpUsuario(java.lang.String comprobarIpUsuario)
|
void |
setRegex(java.lang.String regex)
|
private void |
validarIp(javax.servlet.http.HttpServletRequest request,
ConDatosDeRequest conDatosDeRequest)
Si el parámetro comprobarIpUsuario es igual a '1', se
comprueba que la ip del request y la ip de la sesión son la misma. |
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 |
regex
private java.lang.String regex
- La expresión regular con la que se comprobará la url actual
comprobarIpUsuario
private java.lang.String comprobarIpUsuario
- Si el parámetro
comprobarIpUsuario
es igual a '1', se
comprueba que la ip del request y la ip de la sesión son la misma.
FiltroUsuarioConCertificadoRequest
public FiltroUsuarioConCertificadoRequest()
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
_doFilterInternal
private void _doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws SeguridadYingoException,
java.net.UnknownHostException
- Método privado que recoge todas las excepiones.
-
Comprueba si la url actual cumple con la expresión regular
del atributo
regex
(Si esta no está definida siempre
se continua con el filtro).
-
Obtiene el usuario de la sesión y comprueba que es instancia de
UsuarioConCertificado
. Si es nulo no se continua con el
filtro
-
Obtiene el usuario de la sesión y comprueba que es instancia de
UsuarioConCertificado
. Si es nulo no se continua con el
filtro
-
Comprueba si es instancia de
ConDatosDeRequest
. Si es así
no se continua con el filtro porque ya están cargados los datos
del request.
-
Si no es instancia de
ConDatosDeRequest
crea un
UsuarioConCertificadoRequestImp
con los datos de
UsuarioConCertificado
y la petición http. Este nuevo usuario
se almacenará en la sesión.
- Parameters:
request
- response
-
- Throws:
java.net.UnknownHostException
SeguridadYingoException
validarIp
private void validarIp(javax.servlet.http.HttpServletRequest request,
ConDatosDeRequest conDatosDeRequest)
throws SeguridadYingoException,
java.net.UnknownHostException
- Si el parámetro
comprobarIpUsuario
es igual a '1', se
comprueba que la ip del request y la ip de la sesión son la misma. Así
es más complicado el robo de sesiones
- Parameters:
request
- conDatosDeRequest
-
- Throws:
SeguridadYingoException
java.net.UnknownHostException
obtenerUsuarioConCertificado
private UsuarioConCertificado obtenerUsuarioConCertificado(javax.servlet.http.HttpServletRequest request)
- Obtiene el objeto
UsuarioConCertificado
de la sesión.
Obtiene el Usuario
de la sesión y comprueba que sea instancia de
UsuarioConCertificado
.
Si es devuelve el casting del usuario de la sesión. Si el usuario es nulo
o no es intancia de UsuarioConCertificado
se devolverá nulo.
- Parameters:
request
-
- Returns:
comprobarExpresionRegular
private boolean comprobarExpresionRegular(javax.servlet.http.HttpServletRequest request)
- Comprueba que la url actual cumpla con la expresión regular cargada en
el atributo.
Devolverá correcto si la expresión regular no se ha definido o cuando la
url actual cumpla con la expresión regular. En otro caso devolvera false.
- Parameters:
request
-
- Returns:
getRegex
public java.lang.String getRegex()
- Returns:
- Devuelve el atributo regex
setRegex
public void setRegex(java.lang.String regex)
- Parameters:
regex
- Carga el atributo regex
getComprobarIpUsuario
public java.lang.String getComprobarIpUsuario()
- Returns:
- Devuelve el atributo comprobarIpUsuario
setComprobarIpUsuario
public void setComprobarIpUsuario(java.lang.String comprobarIpUsuario)
- Parameters:
comprobarIpUsuario
- Carga el atributo comprobarIpUsuario