|
||||||||||
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.OncePerRequestFilter
javax.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.CertificateException
public 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 |