Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Joaquin Lopez Cabezas
Conexiones https autenticadas
January 27, 2012 4:53 AM
Answer

Joaquin Lopez Cabezas

Rank: New Member

Posts: 11

Join Date: June 28, 2011

Recent Posts

Buenos dias,

Tengo desarrollada una libreria que realiza peticiones https autenticadas contra una serie de servicios web. Esta libreria funciona perfectamente en las aplicaciones web donde se usa. El problema viene cuando esa libreria la usa algun portlet dentro de un portal Liferay, es decir, tengo desarrollado un Portlet que necesita conectarse a unos servicios por https, he incluido la libreria y lo que obtengo a la hora de realizar la petición es la siguiente excepción:

javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:782)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1089)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1116)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1100)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at com.liferay.util.axis.SimpleHTTPSender.invoke(SimpleHTTPSender.java:77)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at es.jccm.aapp.afirma.proxy.ProxyWebServices.invoke(ProxyWebServices.java:64)
at es.jccm.aapp.afirma.certificado.CertificadoDAO.xmlValidarCertificado(CertificadoDAO.java:112)
at es.jccm.aapp.afirma.certificado.CertificadoDAO.obtieneDatosCertificado(CertificadoDAO.java:52)
at es.jccm.aapp.AFirmaFacade.validarEntidadCertificado(AFirmaFacade.java:64)
at es.jccm.aapp.portalempleado.core.servlet.ValidacionAFirmaServlet.doPost(ValidacionAFirmaServlet.java:57)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:193)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(VirtualHostFilter.java:271)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at com.liferay.portal.servlet.filters.threadlocalcache.ThreadLocalCacheFilter.processFilter(ThreadLocalCacheFilter.java:55)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)
at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)

No se si hay que configurar algo para poder realizar peticiones https, algún parámetro de SSL o que. La verdad que me ha sorprendido el error porque como he dicho, en otras aplicaciones EXTERNAS a liferay funciona sin problemas.

Muchas gracias.

Un saludo
Joaquin Lopez Cabezas
RE: Conexiones https autenticadas
February 13, 2012 4:29 AM
Answer

Joaquin Lopez Cabezas

Rank: New Member

Posts: 11

Join Date: June 28, 2011

Recent Posts

Hola, sigo investigando este tema de las peticiones https en liferay y he avanzado un poco en el asunto aunque parece que se aleja de la idea inicial que tenía.

He probado a desplegar en el Tomcat donde despliego el portal una de las aplicaciones que SÍ funciona fuera y mi sorpresa ha sido que esta aplicación no funciona en este tomcat por lo que el problema no es tanto del portal sino que todo apunta a un tema de configuración del Tomcat. He comparado los web.xml, context.xml, server.xml,... de los 2 Tomcat y no difieren mucho, asi que me he centrado en las librerias. He cambiar todo el directorio "common" del Tomcat del portal por el directorio common del Tomcat donde sí funcionan las aplicaciones. Ahora, el portal no arranca por problemas de dependencias, pero sí funciona la aplicación. He ido metiendo de uno en uno los JAR's con las dependencias del portal, portal-kernel.jar, portal-service.jar, etc....arrancando y parando el servidor a la vez que probaba la aplicación para ver que jar es el conflictivo y.....¡¡ENCONTRADO!!. Cuando meto el jar "container.jar" la aplicacion lanza el error de javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?, sin ese jar, la aplicacion funciona perfectamente.

El problema es que "container.jar" es imprescindible para arrancar el portal por lo que sigo sin conseguir nada.

¿Alguna idea?

Gracias

Un saludo
Joaquin Lopez Cabezas
RE: Conexiones https autenticadas
March 5, 2012 3:37 AM
Answer

Joaquin Lopez Cabezas

Rank: New Member

Posts: 11

Join Date: June 28, 2011

Recent Posts

Ya lo he solucionado.
El problema estaba en la configuración del Proxy. Lo que he hecho ha sido incluir la url del lugar al que me conecto por https en la propiedad "http.nonProxyHosts" del archivo system-ext.properties y con eso ya funciona.

Un saludo
Manuel de la Peña
RE: Conexiones https autenticadas
March 5, 2012 3:47 AM
Answer

Manuel de la Peña

LIFERAY STAFF

Rank: Junior Member

Posts: 55

Join Date: July 6, 2011

Recent Posts

Genial Joaquín!

Gracias por compartir tu solución emoticon

Saludos!