|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
es.mcu.yingo.filtros.FiltroAbstracto
es.mcu.yingo.filtros.FiltroArrobaFirma
public class FiltroArrobaFirma
Comprueba el certificado del usuario contra aarrobafirma y crea el usuario
según la factoria de usuarios configurada.
Obtiene el certificado del usurio o bien del valor almacenado en sesión con
la clave claveSesionCertificado o bien de la configuración del
Jboss/Apache.
Si el atributo errorSiNoExisteCertificado esta a '1' se mostrará
y no existe usuario se provocará un error.
Ejemplo configuración:
| Field Summary | |
|---|---|
private java.lang.String |
claveSesionCertificado
Si se definie será la clave de los objetos de sesión con la que se obtendrá en valor del certificado en base64 |
private java.lang.String |
errorSiNoExisteCertificado
Si tiene valor '1' se generará una excepción si no existe el certificado en sesión o no se puede obtener del entorno del Jboss/Apache. |
private java.lang.String |
factoriaUsuariosCertSpringId
Id de bean en la configuración de spring de la factoría de usuarios con certificado |
| 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 | |
|---|---|
FiltroArrobaFirma()
|
|
| Method Summary | |
|---|---|
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 obtienen los certificados del usuario y de la CA. |
java.lang.String |
getClaveSesionCertificado()
|
java.lang.String |
getErrorSiNoExisteCertificado()
|
java.lang.String |
getFactoriaUsuariosCertSpringId()
|
private java.security.cert.X509Certificate |
obtenerCaApache(javax.servlet.http.HttpServletRequest request)
Obtiene la Ca del apache con lo que nos devuelve en la propiedad SSL_CLIENT_CERT_CHAIN_0, Es importante que esta variable se exporte en la configuración del apache como JkEnvVar SSL_CLIENT_CERT_CHAIN_0 |
private java.security.cert.X509Certificate[] |
obtenerCertificados(javax.servlet.http.HttpServletRequest request)
Obtiene el array de certificados. |
private java.security.cert.X509Certificate[] |
obtenerCertificadosJbossApache(javax.servlet.http.HttpServletRequest request)
Devuelve el array de objetos X509Certificate del JBOSS con el certificado del cliente en la primera posición y de la CA en la segunda si lo hubeira. |
private java.security.cert.X509Certificate[] |
obtenerCertificadosSesion(javax.servlet.http.HttpServletRequest request)
Obtiene el certificado del valor que se ha almacenado en sesión con la clave claveSesionCertificado. |
private UsuarioConCertificado |
obtenerUsuario(java.security.cert.X509Certificate[] certificados)
Obtiene el usuario de la factoria de usuarios definida como id de spring en el parámetro de inicio del filtro |
void |
setClaveSesionCertificado(java.lang.String claveSesionCertificado)
|
void |
setErrorSiNoExisteCertificado(java.lang.String errorSiNoExisteCertificado)
|
void |
setFactoriaUsuariosCertSpringId(java.lang.String factoriaUsuariosCertSpringId)
|
| 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 |
|---|
private java.lang.String factoriaUsuariosCertSpringId
private java.lang.String claveSesionCertificado
private java.lang.String errorSiNoExisteCertificado
| Constructor Detail |
|---|
public FiltroArrobaFirma()
| Method Detail |
|---|
protected void doFilterInternal(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain chain)
throws javax.servlet.ServletException,
java.io.IOException
doFilterInternal in class org.springframework.web.filter.OncePerRequestFilterjavax.servlet.ServletException
java.io.IOException
protected void filtrar(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
javax.servlet.FilterChain chain)
throws java.lang.Exception
factoriaUsuariosCertSpringId
request - response - chain -
java.lang.Exception
private UsuarioConCertificado obtenerUsuario(java.security.cert.X509Certificate[] certificados)
throws SeguridadYingoException
x509Certificate -
SeguridadYingoException
private java.security.cert.X509Certificate[] obtenerCertificados(javax.servlet.http.HttpServletRequest request)
throws java.security.cert.CertificateException,
java.io.IOException,
SeguridadYingoException
errorSiNoExisteCertificado es igual a '1' se producirá
un error si no se han encontrado certificados.
request -
java.security.cert.CertificateException
java.io.IOException
SeguridadYingoException
private java.security.cert.X509Certificate[] obtenerCertificadosJbossApache(javax.servlet.http.HttpServletRequest request)
throws java.security.cert.CertificateException
obtenerCaApache
request -
java.security.cert.CertificateException
private java.security.cert.X509Certificate[] obtenerCertificadosSesion(javax.servlet.http.HttpServletRequest request)
throws java.security.cert.CertificateException,
java.io.IOException
claveSesionCertificado.X509Certificate y se almacenará
en la primera posición del array resultado. La segunda posición, la del
certificado de la CA será siempre nulo.claveSesionCertificado.
request -
java.security.cert.CertificateException
java.io.IOException
private java.security.cert.X509Certificate obtenerCaApache(javax.servlet.http.HttpServletRequest request)
throws java.security.cert.CertificateException
request -
java.security.cert.CertificateExceptionpublic java.lang.String getFactoriaUsuariosCertSpringId()
public void setFactoriaUsuariosCertSpringId(java.lang.String factoriaUsuariosCertSpringId)
factoriaUsuariosCertSpringId - Carga el atributo factoriaUsuariosCertSpringIdpublic java.lang.String getClaveSesionCertificado()
public void setClaveSesionCertificado(java.lang.String claveSesionCertificado)
claveSesionCertificado - Carga el atributo claveSesionCertificadopublic java.lang.String getErrorSiNoExisteCertificado()
public void setErrorSiNoExisteCertificado(java.lang.String errorSiNoExisteCertificado)
errorSiNoExisteCertificado - Carga el atributo errorSiNoExisteCertificado
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||