I'm having an issue with a Restlet server that's acting as a client and making
a connection to a different back-end server. The issue is that after a certain
amount of time has elapsed (seems to be about 2.5 days), all subsequent
requests fail. The particular message I get is "Insecure renegotiation is not
allowed.". I can't find any information about that error: everything I can find
about it seems to refer to SSL with client certificates enabled. The server I
am connecting to is not configured with client certificates.
If anyone has seen this or has any insight, I'd appreciate it.
Here are the particulars:
I'm currently using Java 1.6, Restlet 2.1 RC5 JSE, and the org.restlet.ext.net
extension. (I was previously using the built-in client connector, and had the
same issue.) The request I'm making to the other server is a POST over SSL.
Here's the code that makes the request, in case that's relevant:
ClientResource authResource = new CookieCopyClientResource(this.validateRef);
if (this.client != null)
{
authResource.setNext(this.client);
}
JSONObject request;
try
{
request = createValidationRequest(accessToken, req);
Representation repr = new JsonStringRepresentation(request);
Representation r = authResource.post(repr); //<--Throws exception.
Eventually.
repr.release();
...
Here's the stack trace I get from the exception when using the URLConnection
connector:
Communication Error (1001) - The connector failed to complete the communication
with the server
at
org.restlet.resource.ClientResource.doError(ClientResource.java:611)
at
org.restlet.resource.ClientResource.handleInbound(ClientResource.java:1201)
at
org.restlet.resource.ClientResource.handle(ClientResource.java:1068)
at
org.restlet.resource.ClientResource.handle(ClientResource.java:1043)
at
org.restlet.resource.ClientResource.post(ClientResource.java:1452)
at
com.alldata.adconnect.security.OAuthAuthorizer.authorize(OAuthAuthorizer.java:210)
at
org.restlet.security.Authorizer.beforeHandle(Authorizer.java:137)
at org.restlet.routing.Filter.handle(Filter.java:204)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at
org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:154)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at
org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
at
org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:84)
at org.restlet.Application.handle(Application.java:381)
at
org.restlet.ext.wadl.WadlApplication.handle(WadlApplication.java:753)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Router.doHandle(Router.java:431)
at org.restlet.routing.Router.handle(Router.java:648)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at
org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:154)
at org.restlet.routing.Filter.handle(Filter.java:206)
at org.restlet.routing.Filter.doHandle(Filter.java:159)
at org.restlet.routing.Filter.handle(Filter.java:206)
at
org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:211)
at org.restlet.Component.handle(Component.java:392)
at org.restlet.Server.handle(Server.java:516)
at org.restlet.engine.ServerHelper.handle(ServerHelper.java:72)
at
org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:152)
at
org.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:170)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1048)
at
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:214)
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.net.ssl.SSLHandshakeException: Insecure renegotiation is not
allowed
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.kickstartHandshake(SSLEngineImpl.java:635)
at
com.sun.net.ssl.internal.ssl.SSLEngineImpl.beginHandshake(SSLEngineImpl.java:689)
at
org.restlet.ext.ssl.internal.SslConnection.initSslEngine(SslConnection.java:346)
at
org.restlet.ext.ssl.internal.SslConnection.reuse(SslConnection.java:449)
at
org.restlet.engine.connector.ConnectionHelper.checkout(ConnectionHelper.java:167)
at
org.restlet.engine.connector.ClientConnectionHelper.getBestConnection(ClientConnectionHelper.java:351)
at
org.restlet.engine.connector.ClientConnectionHelper.doHandleOutbound(ClientConnectionHelper.java:243)
at
org.restlet.engine.connector.BaseHelper.handleOutbound(BaseHelper.java:622)
at
org.restlet.engine.connector.ClientConnectionHelper.handleOutbound(ClientConnectionHelper.java:538)
at
org.restlet.engine.connector.BaseHelper.control(BaseHelper.java:235)
at
org.restlet.engine.connector.Controller.doRun(Controller.java:87)
at
org.restlet.engine.connector.ConnectionController.doRun(ConnectionController.java:152)
at
org.restlet.engine.connector.Controller.run(Controller.java:158)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
... 1 more
Here's the exception I was getting with the built-in client connector:
Communication Error (1001) - Insecure renegotiation is not allowed
at
org.restlet.resource.ClientResource.doError(ClientResource.java:557)
at
org.restlet.resource.ClientResource.handleInbound(ClientResource.java:1130)
at
org.restlet.resource.ClientResource.handle(ClientResource.java:997)
at
org.restlet.resource.ClientResource.handle(ClientResource.java:972)
at
org.restlet.resource.ClientResource.post(ClientResource.java:1381)
at
com.alldata.adconnect.security.OAuthAuthorizer.authorize(OAuthAuthorizer.java:210)
at
org.restlet.security.Authorizer.beforeHandle(Authorizer.java:134)
at org.restlet.routing.Filter.handle(Filter.java:201)
at org.restlet.routing.Filter.doHandle(Filter.java:156)
at org.restlet.routing.Filter.handle(Filter.java:203)
... etc.
--------------------------
John Wismar
Alldata Technology
916-478-3296
------------------------------------------------------
http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2969347