You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nifi.apache.org by "Richard St. John" <rs...@gmail.com> on 2016/12/14 18:11:30 UTC

Reverse Proxy Template Import Error

I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are the
important details. First, nginx is using basic auth and SSL.  Second, NiFi
is running in a trusted environment without SSL.  We successfully used the
same layout for NiFi 0.7.x without issue.  However, starting with 1.0.x and
continuing in 1.1.x, I cannot import a saved template.  The error complains
about mixed content (http and https).  Has this layout been tested and
validated? If so, what proxy headers am I missing?

Below are the proxy headers I pass from nginx to NiFi:
        proxy_set_header X-ProxyScheme $scheme;
        proxy_set_header X-ProxyHost $host;
        proxy_set_header X-ProxyPort  443;
        proxy_set_header X-ProxyContextPath "";


Thanks Rick.
-- 

----------------------------
Richard St. John, Ph.D.
Senior Software Engineer, Applied Mathematician
Asymmetrik, Ltd.

Re: Reverse Proxy Template Import Error

Posted by Matt Gilman <ma...@gmail.com>.
Awesome thanks! We'll get this reviewed and then it'll get merged and included in 1.2.0. Thanks for the verification assist!

Matt

Sent from my iPhone

> On Dec 15, 2016, at 8:45 PM, Richard St. John <rs...@gmail.com> wrote:
> 
> Matt,
> 
> Great news!  I was able to successfully test the changes you made to
> address the import template issue.  I do not know what other verification
> is needed for your PR to be approved, but after building NIFI
> 1.2.0-SNAPSHOT with your changes from NIFI-3207, the issue is resolved.
> 
> Thanks.
> 
> Rick.
> 
>> On Thu, Dec 15, 2016 at 1:43 PM Matt Gilman <ma...@gmail.com> wrote:
>> 
>> Rick,
>> 
>> Here's my proposed solution for the template upload issue [1]. Please give
>> it a shot behind your proxy.
>> 
>> Thanks
>> 
>> Matt
>> 
>> [1] https://github.com/apache/nifi/pull/1334
>> 
>> On Thu, Dec 15, 2016 at 12:58 PM, Matt Gilman <ma...@gmail.com>
>> wrote:
>> 
>>> Awesome. Here's the JIRA [1]. I should have the PR posted shortly.
>>> 
>>> Matt
>>> 
>>> [1] https://issues.apache.org/jira/browse/NIFI-3207
>>> 
>>> On Thu, Dec 15, 2016 at 12:53 PM, Richard St. John <rs...@gmail.com>
>>> wrote:
>>> 
>>>> I should be able to test tonight.
>>>> 
>>>> On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <ma...@gmail.com>
>>>> wrote:
>>>> 
>>>>> Rick,
>>>>> 
>>>>> I think I see what the issue is however, I have don't have the
>>>> environment
>>>>> available for verifying it. If I posted a PR would you be in a
>> position
>>>> to
>>>>> try it out?
>>>>> 
>>>>> Matt
>>>>> 
>>>>> On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <
>> rstjohn67@gmail.com>
>>>>> wrote:
>>>>> 
>>>>>> Matt,
>>>>>> 
>>>>>> This is where it gets interesting.  The issue only arises when nginx
>>>> is
>>>>>> used as a reverse proxy for a *clustered* NiFi (within a trusted
>>>>>> environment using http).  In fact, it even occurs when the reverse
>>>> proxy
>>>>>> upstream points to only one of the nifi nodes in the cluster.
>>>> Moreover,
>>>>>> the problem is limited to importing/uploading a template.  Deleting,
>>>>>> downloading, and instantiating existing templates works fine.
>>>>>> 
>>>>>> There is another strange pattern that I discovered.  I can get
>>>> templates
>>>>> to
>>>>>> import if I hard-code the scheme header as follows:
>> *proxy_set_header
>>>>>> X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
>>>>> http, I
>>>>>> cannot delete a template after it is uploaded.
>>>>>> 
>>>>>> Below are several of the logs (IPs and DNS were changed for security
>>>>>> reasons).
>>>>>> 
>>>>>> *nginx.err*
>>>>>> 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
>>>>>> buffered to a temporary file
>> /var/cache/nginx/client_temp/0000000005,
>>>>>> client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/upload
>>>>>> HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
>>>>>> https://nifi-rix.somedomain.com/nifi/"
>>>>>> 
>>>>>> *nginx access log*
>>>>>> [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/upload
>>>>>> HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/"
>> "Mozilla/5.0
>>>>>> (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
>>>>> Gecko)
>>>>>> Chrome/55.0.2883.95 Safari/537.36" "-"
>>>>>> 
>>>>>> 
>>>>>> *NiFi Log: nifi-app.log*
>>>>>> 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
>>>>>> o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate
>> request
>>>>> POST
>>>>>> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>>>>>> 8a86805ff8bb/templates/import
>>>>>> to ip-X-X-X-X.ec2.internal:8080 due to {}
>>>>>> com.sun.jersey.api.client.ClientHandlerException:
>>>>>> javax.ws.rs.WebApplicationException:
>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:155)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.Client.handle(Client.java:652)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource.access$200(WebResource
>>>> .java:74)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource$Builder.post(
>>>>>> WebResource.java:560)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>>>> stReplicator.
>>>>>> java:587)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator$NodeHttpRequest.run(
>>>>>> ThreadPoolRequestReplicator.java:770)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>> 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>>>> [na:1.8.0_112]
>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(
>>>>>> ThreadPoolExecutor.java:1142)
>>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>>> ThreadPoolExecutor.java:617)
>>>>>> [na:1.8.0_112]
>>>>>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>>>>>> Caused by: javax.ws.rs.WebApplicationException:
>>>>>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:159)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>>>>>> RequestWriter.java:300)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er._invoke(
>>>>>> URLConnectionClientHandler.java:217)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:153)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> ... 11 common frames omitted
>>>>>> Caused by: javax.xml.bind.MarshalException: null
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:325)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>>>>>> MarshallerImpl.java:249)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>>>>>> AbstractMarshallerImpl.java:95)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:179)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:157)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> ... 14 common frames omitted
>>>>>> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>>>>> plaintext
>>>>>> connection?
>>>>>> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>>>> .java:710)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>>>>>> SSLSocketImpl.java:1375)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1403)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1387)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>>>> ent.java:559)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>>>> n.connect(
>>>>>> AbstractDelegateHttpsURLConnection.java:185)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>>>>>> HttpURLConnection.java:1316)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>>>>>> HttpURLConnection.java:1291)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>>>>>> HttpsURLConnectionImpl.java:250)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>>>>>> 1.getOutputStream(URLConnectionClientHandler.java:238)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>>>>>> CommittingOutputStream.java:117)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.write(
>>>>>> CommittingOutputStream.java:89)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>>>>>> UTF8XmlOutput.java:409)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> writeName(UTF8XmlOutput.java:239)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> beginStartTag(UTF8XmlOutput.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>>>>>> XMLSerializer.java:327)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>>>>>> CompositeTransducedAccessorImpl.writeLeafElement(
>>>>>> TransducedAccessor.java:256)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>>>>>> serializeBody(SingleElementLeafProperty.java:128)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>>>>>> serializeItem(ArrayElementNodeProperty.java:69)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>>>>>> serializeListBody(ArrayElementProperty.java:172)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>>>>>> serializeBody(ArrayERProperty.java:159)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>>>>>> XMLSerializer.java:597)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>>>>>> ClassBeanInfoImpl.java:328)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>>>>>> XMLSerializer.java:498)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:320)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> ... 18 common frames omitted
>>>>>> 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
>>>>>> o.a.n.c.c.h.r.ThreadPoolRequestReplicator
>>>>>> com.sun.jersey.api.client.ClientHandlerException:
>>>>>> javax.ws.rs.WebApplicationException:
>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:155)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.Client.handle(Client.java:652)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource.access$200(WebResource
>>>> .java:74)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at com.sun.jersey.api.client.WebResource$Builder.post(
>>>>>> WebResource.java:560)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>>>> stReplicator.
>>>>>> java:587)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>>> org.apache.nifi.cluster.coordination.http.replication.
>>>>>> ThreadPoolRequestReplicator$NodeHttpRequest.run(
>>>>>> ThreadPoolRequestReplicator.java:770)
>>>>>> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>>>>>> at
>>>>> 
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>>>>>> [na:1.8.0_112]
>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(
>>>>>> ThreadPoolExecutor.java:1142)
>>>>>> [na:1.8.0_112]
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(
>>>>>> ThreadPoolExecutor.java:617)
>>>>>> [na:1.8.0_112]
>>>>>> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>>>>>> Caused by: javax.ws.rs.WebApplicationException:
>>>>>> javax.xml.bind.MarshalException
>>>>>> - with linked exception:
>>>>>> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>>>>>> connection?]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:159)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>>>>>> RequestWriter.java:300)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er._invoke(
>>>>>> URLConnectionClientHandler.java:217)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>>>> er.handle(
>>>>>> URLConnectionClientHandler.java:153)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> ... 11 common frames omitted
>>>>>> Caused by: javax.xml.bind.MarshalException: null
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:325)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>>>>>> MarshallerImpl.java:249)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>>>>>> AbstractMarshallerImpl.java:95)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:179)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>>>> r.writeTo(
>>>>>> AbstractRootElementProvider.java:157)
>>>>>> ~[jersey-core-1.19.jar:1.19]
>>>>>> ... 14 common frames omitted
>>>>>> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>>>>> plaintext
>>>>>> connection?
>>>>>> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>>>> .java:710)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>>>>>> SSLSocketImpl.java:1375)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1403)
>>>>>> ~[na:1.8.0_112]
>>>>>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>>>> java:1387)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>>>> ent.java:559)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>>>> n.connect(
>>>>>> AbstractDelegateHttpsURLConnection.java:185)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>>>>>> HttpURLConnection.java:1316)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>>>>>> HttpURLConnection.java:1291)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>>>>>> HttpsURLConnectionImpl.java:250)
>>>>>> ~[na:1.8.0_112]
>>>>>> at
>>>>>> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>>>>>> 1.getOutputStream(URLConnectionClientHandler.java:238)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>>>>>> CommittingOutputStream.java:117)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.jersey.api.client.CommittingOutputStream.write(
>>>>>> CommittingOutputStream.java:89)
>>>>>> ~[jersey-client-1.19.jar:1.19]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>>>>>> UTF8XmlOutput.java:409)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> writeName(UTF8XmlOutput.java:239)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>>>>>> beginStartTag(UTF8XmlOutput.java:167)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>>>>>> XMLSerializer.java:327)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>>>> ringImplImpl.
>>>>>> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>>>>>> CompositeTransducedAccessorImpl.writeLeafElement(
>>>>>> TransducedAccessor.java:256)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>>>>>> serializeBody(SingleElementLeafProperty.java:128)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>>>>>> serializeItem(ArrayElementNodeProperty.java:69)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>>>>>> serializeListBody(ArrayElementProperty.java:172)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>>>>>> serializeBody(ArrayERProperty.java:159)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>>>>>> XMLSerializer.java:700)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>>>>>> serializeBody(SingleElementNodeProperty.java:156)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>>>>>> ClassBeanInfoImpl.java:344)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>>>>>> XMLSerializer.java:597)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>>>>>> ClassBeanInfoImpl.java:328)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>>>>>> XMLSerializer.java:498)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> at
>>>>>> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>>>> mpl.java:320)
>>>>>> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>>>>>> ... 18 common frames omitted
>>>>>> 
>>>>>> Rick.
>>>>>> 
>>>>>> 
>>>>>> On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <
>> matt.c.gilman@gmail.com>
>>>>>> wrote:
>>>>>> 
>>>>>>> Rick,
>>>>>>> 
>>>>>>> The signature of the endpoint that accepts a template upload has
>> not
>>>>>>> changed (other than the path). Are you running a NiFi cluster in
>> the
>>>>>>> trusted environment or is it a standalone instance? Is the issue
>>>> when
>>>>> you
>>>>>>> attempt to upload the template or when you attempt to drop the
>>>> template
>>>>>> on
>>>>>>> your graph? Just wanted to confirm.
>>>>>>> 
>>>>>>> The mixed content error sounds like a client side message when a
>>>>> webpage
>>>>>> is
>>>>>>> referencing resources (img, js, css, etc) from different sources.
>>>> For
>>>>>>> instance, loading a webpage over HTTPS which is referencing a
>>>> resource
>>>>>> over
>>>>>>> HTTP. The frontend resources should all be bundled with the
>>>> application
>>>>>> and
>>>>>>> they should be all loaded through your proxy.
>>>>>>> 
>>>>>>> Are there any other errors or messages? Maybe check the user log
>> on
>>>> the
>>>>>>> NiFi instances. Or maybe the logs of the proxy server to see the
>>>>> requests
>>>>>>> being processed. Hoping there's more details being logged
>> someplace.
>>>>>>> 
>>>>>>> Thanks
>>>>>>> 
>>>>>>> Matt
>>>>>>> 
>>>>>>> On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <
>>>> rstjohn67@gmail.com
>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here
>>>> are
>>>>> the
>>>>>>>> important details. First, nginx is using basic auth and SSL.
>>>> Second,
>>>>>>> NiFi
>>>>>>>> is running in a trusted environment without SSL.  We
>> successfully
>>>>> used
>>>>>>> the
>>>>>>>> same layout for NiFi 0.7.x without issue.  However, starting
>> with
>>>>> 1.0.x
>>>>>>> and
>>>>>>>> continuing in 1.1.x, I cannot import a saved template.  The
>> error
>>>>>>> complains
>>>>>>>> about mixed content (http and https).  Has this layout been
>> tested
>>>>> and
>>>>>>>> validated? If so, what proxy headers am I missing?
>>>>>>>> 
>>>>>>>> Below are the proxy headers I pass from nginx to NiFi:
>>>>>>>>        proxy_set_header X-ProxyScheme $scheme;
>>>>>>>>        proxy_set_header X-ProxyHost $host;
>>>>>>>>        proxy_set_header X-ProxyPort  443;
>>>>>>>>        proxy_set_header X-ProxyContextPath "";
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Thanks Rick.
>>>>>>>> --
>>>>>>>> 
>>>>>>>> ----------------------------
>>>>>>>> Richard St. John, Ph.D.
>>>>>>>> Senior Software Engineer, Applied Mathematician
>>>>>>>> Asymmetrik, Ltd.
>>>>>>>> 
>>>>>>> 
>>>>>> --
>>>>>> 
>>>>>> ----------------------------
>>>>>> Richard St. John, Ph.D.
>>>>>> Senior Software Engineer, Applied Mathematician
>>>>>> Asymmetrik, Ltd.
>>>>>> 
>>>>> 
>>>> --
>>>> 
>>>> ----------------------------
>>>> Richard St. John, Ph.D.
>>>> Senior Software Engineer, Applied Mathematician
>>>> Asymmetrik, Ltd.
>>>> 
>>> 
>>> 
>> 
> -- 
> 
> ----------------------------
> Richard St. John, Ph.D.
> Senior Software Engineer, Applied Mathematician
> Asymmetrik, Ltd.

Re: Reverse Proxy Template Import Error

Posted by "Richard St. John" <rs...@gmail.com>.
Matt,

Great news!  I was able to successfully test the changes you made to
address the import template issue.  I do not know what other verification
is needed for your PR to be approved, but after building NIFI
1.2.0-SNAPSHOT with your changes from NIFI-3207, the issue is resolved.

Thanks.

Rick.

On Thu, Dec 15, 2016 at 1:43 PM Matt Gilman <ma...@gmail.com> wrote:

> Rick,
>
> Here's my proposed solution for the template upload issue [1]. Please give
> it a shot behind your proxy.
>
> Thanks
>
> Matt
>
> [1] https://github.com/apache/nifi/pull/1334
>
> On Thu, Dec 15, 2016 at 12:58 PM, Matt Gilman <ma...@gmail.com>
> wrote:
>
> > Awesome. Here's the JIRA [1]. I should have the PR posted shortly.
> >
> > Matt
> >
> > [1] https://issues.apache.org/jira/browse/NIFI-3207
> >
> > On Thu, Dec 15, 2016 at 12:53 PM, Richard St. John <rs...@gmail.com>
> > wrote:
> >
> >> I should be able to test tonight.
> >>
> >> On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <ma...@gmail.com>
> >> wrote:
> >>
> >> > Rick,
> >> >
> >> > I think I see what the issue is however, I have don't have the
> >> environment
> >> > available for verifying it. If I posted a PR would you be in a
> position
> >> to
> >> > try it out?
> >> >
> >> > Matt
> >> >
> >> > On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <
> rstjohn67@gmail.com>
> >> > wrote:
> >> >
> >> > > Matt,
> >> > >
> >> > > This is where it gets interesting.  The issue only arises when nginx
> >> is
> >> > > used as a reverse proxy for a *clustered* NiFi (within a trusted
> >> > > environment using http).  In fact, it even occurs when the reverse
> >> proxy
> >> > > upstream points to only one of the nifi nodes in the cluster.
> >> Moreover,
> >> > > the problem is limited to importing/uploading a template.  Deleting,
> >> > > downloading, and instantiating existing templates works fine.
> >> > >
> >> > > There is another strange pattern that I discovered.  I can get
> >> templates
> >> > to
> >> > > import if I hard-code the scheme header as follows:
> *proxy_set_header
> >> > > X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
> >> > http, I
> >> > > cannot delete a template after it is uploaded.
> >> > >
> >> > > Below are several of the logs (IPs and DNS were changed for security
> >> > > reasons).
> >> > >
> >> > > *nginx.err*
> >> > > 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
> >> > > buffered to a temporary file
> /var/cache/nginx/client_temp/0000000005,
> >> > > client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
> >> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> >> > > 8a86805ff8bb/templates/upload
> >> > > HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
> >> > > https://nifi-rix.somedomain.com/nifi/"
> >> > >
> >> > > *nginx access log*
> >> > > [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
> >> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> >> > > 8a86805ff8bb/templates/upload
> >> > > HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/"
> "Mozilla/5.0
> >> > > (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
> >> > Gecko)
> >> > > Chrome/55.0.2883.95 Safari/537.36" "-"
> >> > >
> >> > >
> >> > > *NiFi Log: nifi-app.log*
> >> > > 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
> >> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate
> request
> >> > POST
> >> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> >> > > 8a86805ff8bb/templates/import
> >> > > to ip-X-X-X-X.ec2.internal:8080 due to {}
> >> > > com.sun.jersey.api.client.ClientHandlerException:
> >> > > javax.ws.rs.WebApplicationException:
> javax.xml.bind.MarshalException
> >> > >  - with linked exception:
> >> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> >> > > connection?]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er.handle(
> >> > > URLConnectionClientHandler.java:155)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.WebResource.access$200(WebResource
> >> .java:74)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.WebResource$Builder.post(
> >> > > WebResource.java:560)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > org.apache.nifi.cluster.coordination.http.replication.
> >> > > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
> >> stReplicator.
> >> > > java:587)
> >> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> >> > > at
> >> > > org.apache.nifi.cluster.coordination.http.replication.
> >> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> >> > > ThreadPoolRequestReplicator.java:770)
> >> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> >> > > at
> >> >
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> >> > > [na:1.8.0_112]
> >> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> >> > [na:1.8.0_112]
> >> > > at
> >> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
> >> > > ThreadPoolExecutor.java:1142)
> >> > > [na:1.8.0_112]
> >> > > at
> >> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> >> > > ThreadPoolExecutor.java:617)
> >> > > [na:1.8.0_112]
> >> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> >> > > Caused by: javax.ws.rs.WebApplicationException:
> >> > > javax.xml.bind.MarshalException
> >> > >  - with linked exception:
> >> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> >> > > connection?]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:159)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> >> > > RequestWriter.java:300)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er._invoke(
> >> > > URLConnectionClientHandler.java:217)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er.handle(
> >> > > URLConnectionClientHandler.java:153)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > ... 11 common frames omitted
> >> > > Caused by: javax.xml.bind.MarshalException: null
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
> >> mpl.java:325)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> >> > > MarshallerImpl.java:249)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> >> > > AbstractMarshallerImpl.java:95)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:179)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:157)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > ... 14 common frames omitted
> >> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> >> > plaintext
> >> > > connection?
> >> > > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
> >> .java:710)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> >> > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> >> > > SSLSocketImpl.java:1375)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
> >> java:1403)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
> >> java:1387)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
> >> ent.java:559)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
> >> n.connect(
> >> > > AbstractDelegateHttpsURLConnection.java:185)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> >> > > HttpURLConnection.java:1316)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> >> > > HttpURLConnection.java:1291)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> >> > > HttpsURLConnectionImpl.java:250)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> >> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> >> > > CommittingOutputStream.java:117)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.CommittingOutputStream.write(
> >> > > CommittingOutputStream.java:89)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> >> > > UTF8XmlOutput.java:409)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> >> > > writeName(UTF8XmlOutput.java:239)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> >> > > beginStartTag(UTF8XmlOutput.java:167)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> >> > > XMLSerializer.java:327)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
> >> ringImplImpl.
> >> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
> >> ringImplImpl.
> >> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> >> > > CompositeTransducedAccessorImpl.writeLeafElement(
> >> > > TransducedAccessor.java:256)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> >> > > serializeBody(SingleElementLeafProperty.java:128)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> >> > > serializeItem(ArrayElementNodeProperty.java:69)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> >> > > serializeListBody(ArrayElementProperty.java:172)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> >> > > serializeBody(ArrayERProperty.java:159)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> >> > > serializeBody(SingleElementNodeProperty.java:156)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> >> > > serializeBody(SingleElementNodeProperty.java:156)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> >> > > XMLSerializer.java:597)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> >> > > ClassBeanInfoImpl.java:328)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> >> > > XMLSerializer.java:498)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
> >> mpl.java:320)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > ... 18 common frames omitted
> >> > > 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
> >> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator
> >> > > com.sun.jersey.api.client.ClientHandlerException:
> >> > > javax.ws.rs.WebApplicationException:
> javax.xml.bind.MarshalException
> >> > >  - with linked exception:
> >> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> >> > > connection?]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er.handle(
> >> > > URLConnectionClientHandler.java:155)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.WebResource.access$200(WebResource
> >> .java:74)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at com.sun.jersey.api.client.WebResource$Builder.post(
> >> > > WebResource.java:560)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > org.apache.nifi.cluster.coordination.http.replication.
> >> > > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
> >> stReplicator.
> >> > > java:587)
> >> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> >> > > at
> >> > > org.apache.nifi.cluster.coordination.http.replication.
> >> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> >> > > ThreadPoolRequestReplicator.java:770)
> >> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> >> > > at
> >> >
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> >> > > [na:1.8.0_112]
> >> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> >> > [na:1.8.0_112]
> >> > > at
> >> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
> >> > > ThreadPoolExecutor.java:1142)
> >> > > [na:1.8.0_112]
> >> > > at
> >> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> >> > > ThreadPoolExecutor.java:617)
> >> > > [na:1.8.0_112]
> >> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> >> > > Caused by: javax.ws.rs.WebApplicationException:
> >> > > javax.xml.bind.MarshalException
> >> > >  - with linked exception:
> >> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> >> > > connection?]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:159)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> >> > > RequestWriter.java:300)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er._invoke(
> >> > > URLConnectionClientHandler.java:217)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
> >> er.handle(
> >> > > URLConnectionClientHandler.java:153)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > ... 11 common frames omitted
> >> > > Caused by: javax.xml.bind.MarshalException: null
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
> >> mpl.java:325)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> >> > > MarshallerImpl.java:249)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> >> > > AbstractMarshallerImpl.java:95)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:179)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
> >> r.writeTo(
> >> > > AbstractRootElementProvider.java:157)
> >> > > ~[jersey-core-1.19.jar:1.19]
> >> > > ... 14 common frames omitted
> >> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> >> > plaintext
> >> > > connection?
> >> > > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
> >> .java:710)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> >> > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> >> > > SSLSocketImpl.java:1375)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
> >> java:1403)
> >> > > ~[na:1.8.0_112]
> >> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
> >> java:1387)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
> >> ent.java:559)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
> >> n.connect(
> >> > > AbstractDelegateHttpsURLConnection.java:185)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> >> > > HttpURLConnection.java:1316)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> >> > > HttpURLConnection.java:1291)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> >> > > HttpsURLConnectionImpl.java:250)
> >> > > ~[na:1.8.0_112]
> >> > > at
> >> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> >> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> >> > > CommittingOutputStream.java:117)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.jersey.api.client.CommittingOutputStream.write(
> >> > > CommittingOutputStream.java:89)
> >> > > ~[jersey-client-1.19.jar:1.19]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> >> > > UTF8XmlOutput.java:409)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> >> > > writeName(UTF8XmlOutput.java:239)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> >> > > beginStartTag(UTF8XmlOutput.java:167)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> >> > > XMLSerializer.java:327)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
> >> ringImplImpl.
> >> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
> >> ringImplImpl.
> >> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> >> > > CompositeTransducedAccessorImpl.writeLeafElement(
> >> > > TransducedAccessor.java:256)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> >> > > serializeBody(SingleElementLeafProperty.java:128)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> >> > > serializeItem(ArrayElementNodeProperty.java:69)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> >> > > serializeListBody(ArrayElementProperty.java:172)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> >> > > serializeBody(ArrayERProperty.java:159)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> >> > > serializeBody(SingleElementNodeProperty.java:156)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> >> > > XMLSerializer.java:700)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> >> > > serializeBody(SingleElementNodeProperty.java:156)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> >> > > ClassBeanInfoImpl.java:344)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> >> > > XMLSerializer.java:597)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> >> > > ClassBeanInfoImpl.java:328)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> >> > > XMLSerializer.java:498)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > at
> >> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
> >> mpl.java:320)
> >> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> >> > > ... 18 common frames omitted
> >> > >
> >> > > Rick.
> >> > >
> >> > >
> >> > > On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <
> matt.c.gilman@gmail.com>
> >> > > wrote:
> >> > >
> >> > > > Rick,
> >> > > >
> >> > > > The signature of the endpoint that accepts a template upload has
> not
> >> > > > changed (other than the path). Are you running a NiFi cluster in
> the
> >> > > > trusted environment or is it a standalone instance? Is the issue
> >> when
> >> > you
> >> > > > attempt to upload the template or when you attempt to drop the
> >> template
> >> > > on
> >> > > > your graph? Just wanted to confirm.
> >> > > >
> >> > > > The mixed content error sounds like a client side message when a
> >> > webpage
> >> > > is
> >> > > > referencing resources (img, js, css, etc) from different sources.
> >> For
> >> > > > instance, loading a webpage over HTTPS which is referencing a
> >> resource
> >> > > over
> >> > > > HTTP. The frontend resources should all be bundled with the
> >> application
> >> > > and
> >> > > > they should be all loaded through your proxy.
> >> > > >
> >> > > > Are there any other errors or messages? Maybe check the user log
> on
> >> the
> >> > > > NiFi instances. Or maybe the logs of the proxy server to see the
> >> > requests
> >> > > > being processed. Hoping there's more details being logged
> someplace.
> >> > > >
> >> > > > Thanks
> >> > > >
> >> > > > Matt
> >> > > >
> >> > > > On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <
> >> rstjohn67@gmail.com
> >> > >
> >> > > > wrote:
> >> > > >
> >> > > > > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here
> >> are
> >> > the
> >> > > > > important details. First, nginx is using basic auth and SSL.
> >> Second,
> >> > > > NiFi
> >> > > > > is running in a trusted environment without SSL.  We
> successfully
> >> > used
> >> > > > the
> >> > > > > same layout for NiFi 0.7.x without issue.  However, starting
> with
> >> > 1.0.x
> >> > > > and
> >> > > > > continuing in 1.1.x, I cannot import a saved template.  The
> error
> >> > > > complains
> >> > > > > about mixed content (http and https).  Has this layout been
> tested
> >> > and
> >> > > > > validated? If so, what proxy headers am I missing?
> >> > > > >
> >> > > > > Below are the proxy headers I pass from nginx to NiFi:
> >> > > > >         proxy_set_header X-ProxyScheme $scheme;
> >> > > > >         proxy_set_header X-ProxyHost $host;
> >> > > > >         proxy_set_header X-ProxyPort  443;
> >> > > > >         proxy_set_header X-ProxyContextPath "";
> >> > > > >
> >> > > > >
> >> > > > > Thanks Rick.
> >> > > > > --
> >> > > > >
> >> > > > > ----------------------------
> >> > > > > Richard St. John, Ph.D.
> >> > > > > Senior Software Engineer, Applied Mathematician
> >> > > > > Asymmetrik, Ltd.
> >> > > > >
> >> > > >
> >> > > --
> >> > >
> >> > > ----------------------------
> >> > > Richard St. John, Ph.D.
> >> > > Senior Software Engineer, Applied Mathematician
> >> > > Asymmetrik, Ltd.
> >> > >
> >> >
> >> --
> >>
> >> ----------------------------
> >> Richard St. John, Ph.D.
> >> Senior Software Engineer, Applied Mathematician
> >> Asymmetrik, Ltd.
> >>
> >
> >
>
-- 

----------------------------
Richard St. John, Ph.D.
Senior Software Engineer, Applied Mathematician
Asymmetrik, Ltd.

Re: Reverse Proxy Template Import Error

Posted by Matt Gilman <ma...@gmail.com>.
Rick,

Here's my proposed solution for the template upload issue [1]. Please give
it a shot behind your proxy.

Thanks

Matt

[1] https://github.com/apache/nifi/pull/1334

On Thu, Dec 15, 2016 at 12:58 PM, Matt Gilman <ma...@gmail.com>
wrote:

> Awesome. Here's the JIRA [1]. I should have the PR posted shortly.
>
> Matt
>
> [1] https://issues.apache.org/jira/browse/NIFI-3207
>
> On Thu, Dec 15, 2016 at 12:53 PM, Richard St. John <rs...@gmail.com>
> wrote:
>
>> I should be able to test tonight.
>>
>> On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <ma...@gmail.com>
>> wrote:
>>
>> > Rick,
>> >
>> > I think I see what the issue is however, I have don't have the
>> environment
>> > available for verifying it. If I posted a PR would you be in a position
>> to
>> > try it out?
>> >
>> > Matt
>> >
>> > On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <rs...@gmail.com>
>> > wrote:
>> >
>> > > Matt,
>> > >
>> > > This is where it gets interesting.  The issue only arises when nginx
>> is
>> > > used as a reverse proxy for a *clustered* NiFi (within a trusted
>> > > environment using http).  In fact, it even occurs when the reverse
>> proxy
>> > > upstream points to only one of the nifi nodes in the cluster.
>> Moreover,
>> > > the problem is limited to importing/uploading a template.  Deleting,
>> > > downloading, and instantiating existing templates works fine.
>> > >
>> > > There is another strange pattern that I discovered.  I can get
>> templates
>> > to
>> > > import if I hard-code the scheme header as follows: *proxy_set_header
>> > > X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
>> > http, I
>> > > cannot delete a template after it is uploaded.
>> > >
>> > > Below are several of the logs (IPs and DNS were changed for security
>> > > reasons).
>> > >
>> > > *nginx.err*
>> > > 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
>> > > buffered to a temporary file /var/cache/nginx/client_temp/0000000005,
>> > > client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
>> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>> > > 8a86805ff8bb/templates/upload
>> > > HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
>> > > https://nifi-rix.somedomain.com/nifi/"
>> > >
>> > > *nginx access log*
>> > > [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
>> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>> > > 8a86805ff8bb/templates/upload
>> > > HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/" "Mozilla/5.0
>> > > (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
>> > Gecko)
>> > > Chrome/55.0.2883.95 Safari/537.36" "-"
>> > >
>> > >
>> > > *NiFi Log: nifi-app.log*
>> > > 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
>> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate request
>> > POST
>> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
>> > > 8a86805ff8bb/templates/import
>> > > to ip-X-X-X-X.ec2.internal:8080 due to {}
>> > > com.sun.jersey.api.client.ClientHandlerException:
>> > > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
>> > >  - with linked exception:
>> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>> > > connection?]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er.handle(
>> > > URLConnectionClientHandler.java:155)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource.access$200(WebResource
>> .java:74)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource$Builder.post(
>> > > WebResource.java:560)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > org.apache.nifi.cluster.coordination.http.replication.
>> > > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>> stReplicator.
>> > > java:587)
>> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>> > > at
>> > > org.apache.nifi.cluster.coordination.http.replication.
>> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
>> > > ThreadPoolRequestReplicator.java:770)
>> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>> > > at
>> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>> > > [na:1.8.0_112]
>> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>> > [na:1.8.0_112]
>> > > at
>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
>> > > ThreadPoolExecutor.java:1142)
>> > > [na:1.8.0_112]
>> > > at
>> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> > > ThreadPoolExecutor.java:617)
>> > > [na:1.8.0_112]
>> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>> > > Caused by: javax.ws.rs.WebApplicationException:
>> > > javax.xml.bind.MarshalException
>> > >  - with linked exception:
>> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>> > > connection?]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:159)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>> > > RequestWriter.java:300)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er._invoke(
>> > > URLConnectionClientHandler.java:217)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er.handle(
>> > > URLConnectionClientHandler.java:153)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > ... 11 common frames omitted
>> > > Caused by: javax.xml.bind.MarshalException: null
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>> mpl.java:325)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>> > > MarshallerImpl.java:249)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>> > > AbstractMarshallerImpl.java:95)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:179)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:157)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > ... 14 common frames omitted
>> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>> > plaintext
>> > > connection?
>> > > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>> .java:710)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>> > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>> > > SSLSocketImpl.java:1375)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>> java:1403)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>> java:1387)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>> ent.java:559)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>> n.connect(
>> > > AbstractDelegateHttpsURLConnection.java:185)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>> > > HttpURLConnection.java:1316)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>> > > HttpURLConnection.java:1291)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>> > > HttpsURLConnectionImpl.java:250)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>> > > CommittingOutputStream.java:117)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.CommittingOutputStream.write(
>> > > CommittingOutputStream.java:89)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>> > > UTF8XmlOutput.java:409)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>> > > writeName(UTF8XmlOutput.java:239)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>> > > beginStartTag(UTF8XmlOutput.java:167)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>> > > XMLSerializer.java:327)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>> ringImplImpl.
>> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>> ringImplImpl.
>> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>> > > CompositeTransducedAccessorImpl.writeLeafElement(
>> > > TransducedAccessor.java:256)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>> > > serializeBody(SingleElementLeafProperty.java:128)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>> > > serializeItem(ArrayElementNodeProperty.java:69)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>> > > serializeListBody(ArrayElementProperty.java:172)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>> > > serializeBody(ArrayERProperty.java:159)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>> > > serializeBody(SingleElementNodeProperty.java:156)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>> > > serializeBody(SingleElementNodeProperty.java:156)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>> > > XMLSerializer.java:597)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>> > > ClassBeanInfoImpl.java:328)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>> > > XMLSerializer.java:498)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>> mpl.java:320)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > ... 18 common frames omitted
>> > > 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
>> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator
>> > > com.sun.jersey.api.client.ClientHandlerException:
>> > > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
>> > >  - with linked exception:
>> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>> > > connection?]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er.handle(
>> > > URLConnectionClientHandler.java:155)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource.access$200(WebResource
>> .java:74)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at com.sun.jersey.api.client.WebResource$Builder.post(
>> > > WebResource.java:560)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > org.apache.nifi.cluster.coordination.http.replication.
>> > > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolReque
>> stReplicator.
>> > > java:587)
>> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>> > > at
>> > > org.apache.nifi.cluster.coordination.http.replication.
>> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
>> > > ThreadPoolRequestReplicator.java:770)
>> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
>> > > at
>> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>> > > [na:1.8.0_112]
>> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>> > [na:1.8.0_112]
>> > > at
>> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
>> > > ThreadPoolExecutor.java:1142)
>> > > [na:1.8.0_112]
>> > > at
>> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
>> > > ThreadPoolExecutor.java:617)
>> > > [na:1.8.0_112]
>> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
>> > > Caused by: javax.ws.rs.WebApplicationException:
>> > > javax.xml.bind.MarshalException
>> > >  - with linked exception:
>> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
>> > > connection?]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:159)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
>> > > RequestWriter.java:300)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er._invoke(
>> > > URLConnectionClientHandler.java:217)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandl
>> er.handle(
>> > > URLConnectionClientHandler.java:153)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > ... 11 common frames omitted
>> > > Caused by: javax.xml.bind.MarshalException: null
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>> mpl.java:325)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
>> > > MarshallerImpl.java:249)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
>> > > AbstractMarshallerImpl.java:95)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:179)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvide
>> r.writeTo(
>> > > AbstractRootElementProvider.java:157)
>> > > ~[jersey-core-1.19.jar:1.19]
>> > > ... 14 common frames omitted
>> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
>> > plaintext
>> > > connection?
>> > > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord
>> .java:710)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
>> > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
>> > > SSLSocketImpl.java:1375)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>> java:1403)
>> > > ~[na:1.8.0_112]
>> > > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.
>> java:1387)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli
>> ent.java:559)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio
>> n.connect(
>> > > AbstractDelegateHttpsURLConnection.java:185)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
>> > > HttpURLConnection.java:1316)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
>> > > HttpURLConnection.java:1291)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
>> > > HttpsURLConnectionImpl.java:250)
>> > > ~[na:1.8.0_112]
>> > > at
>> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
>> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
>> > > CommittingOutputStream.java:117)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.jersey.api.client.CommittingOutputStream.write(
>> > > CommittingOutputStream.java:89)
>> > > ~[jersey-client-1.19.jar:1.19]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
>> > > UTF8XmlOutput.java:409)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>> > > writeName(UTF8XmlOutput.java:239)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
>> > > beginStartTag(UTF8XmlOutput.java:167)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
>> > > XMLSerializer.java:327)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>> ringImplImpl.
>> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$St
>> ringImplImpl.
>> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
>> > > CompositeTransducedAccessorImpl.writeLeafElement(
>> > > TransducedAccessor.java:256)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
>> > > serializeBody(SingleElementLeafProperty.java:128)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
>> > > serializeItem(ArrayElementNodeProperty.java:69)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
>> > > serializeListBody(ArrayElementProperty.java:172)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
>> > > serializeBody(ArrayERProperty.java:159)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>> > > serializeBody(SingleElementNodeProperty.java:156)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
>> > > XMLSerializer.java:700)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
>> > > serializeBody(SingleElementNodeProperty.java:156)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
>> > > ClassBeanInfoImpl.java:344)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
>> > > XMLSerializer.java:597)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
>> > > ClassBeanInfoImpl.java:328)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
>> > > XMLSerializer.java:498)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > at
>> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerI
>> mpl.java:320)
>> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
>> > > ... 18 common frames omitted
>> > >
>> > > Rick.
>> > >
>> > >
>> > > On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <ma...@gmail.com>
>> > > wrote:
>> > >
>> > > > Rick,
>> > > >
>> > > > The signature of the endpoint that accepts a template upload has not
>> > > > changed (other than the path). Are you running a NiFi cluster in the
>> > > > trusted environment or is it a standalone instance? Is the issue
>> when
>> > you
>> > > > attempt to upload the template or when you attempt to drop the
>> template
>> > > on
>> > > > your graph? Just wanted to confirm.
>> > > >
>> > > > The mixed content error sounds like a client side message when a
>> > webpage
>> > > is
>> > > > referencing resources (img, js, css, etc) from different sources.
>> For
>> > > > instance, loading a webpage over HTTPS which is referencing a
>> resource
>> > > over
>> > > > HTTP. The frontend resources should all be bundled with the
>> application
>> > > and
>> > > > they should be all loaded through your proxy.
>> > > >
>> > > > Are there any other errors or messages? Maybe check the user log on
>> the
>> > > > NiFi instances. Or maybe the logs of the proxy server to see the
>> > requests
>> > > > being processed. Hoping there's more details being logged someplace.
>> > > >
>> > > > Thanks
>> > > >
>> > > > Matt
>> > > >
>> > > > On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <
>> rstjohn67@gmail.com
>> > >
>> > > > wrote:
>> > > >
>> > > > > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here
>> are
>> > the
>> > > > > important details. First, nginx is using basic auth and SSL.
>> Second,
>> > > > NiFi
>> > > > > is running in a trusted environment without SSL.  We successfully
>> > used
>> > > > the
>> > > > > same layout for NiFi 0.7.x without issue.  However, starting with
>> > 1.0.x
>> > > > and
>> > > > > continuing in 1.1.x, I cannot import a saved template.  The error
>> > > > complains
>> > > > > about mixed content (http and https).  Has this layout been tested
>> > and
>> > > > > validated? If so, what proxy headers am I missing?
>> > > > >
>> > > > > Below are the proxy headers I pass from nginx to NiFi:
>> > > > >         proxy_set_header X-ProxyScheme $scheme;
>> > > > >         proxy_set_header X-ProxyHost $host;
>> > > > >         proxy_set_header X-ProxyPort  443;
>> > > > >         proxy_set_header X-ProxyContextPath "";
>> > > > >
>> > > > >
>> > > > > Thanks Rick.
>> > > > > --
>> > > > >
>> > > > > ----------------------------
>> > > > > Richard St. John, Ph.D.
>> > > > > Senior Software Engineer, Applied Mathematician
>> > > > > Asymmetrik, Ltd.
>> > > > >
>> > > >
>> > > --
>> > >
>> > > ----------------------------
>> > > Richard St. John, Ph.D.
>> > > Senior Software Engineer, Applied Mathematician
>> > > Asymmetrik, Ltd.
>> > >
>> >
>> --
>>
>> ----------------------------
>> Richard St. John, Ph.D.
>> Senior Software Engineer, Applied Mathematician
>> Asymmetrik, Ltd.
>>
>
>

Re: Reverse Proxy Template Import Error

Posted by Matt Gilman <ma...@gmail.com>.
Awesome. Here's the JIRA [1]. I should have the PR posted shortly.

Matt

[1] https://issues.apache.org/jira/browse/NIFI-3207

On Thu, Dec 15, 2016 at 12:53 PM, Richard St. John <rs...@gmail.com>
wrote:

> I should be able to test tonight.
>
> On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <ma...@gmail.com>
> wrote:
>
> > Rick,
> >
> > I think I see what the issue is however, I have don't have the
> environment
> > available for verifying it. If I posted a PR would you be in a position
> to
> > try it out?
> >
> > Matt
> >
> > On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <rs...@gmail.com>
> > wrote:
> >
> > > Matt,
> > >
> > > This is where it gets interesting.  The issue only arises when nginx is
> > > used as a reverse proxy for a *clustered* NiFi (within a trusted
> > > environment using http).  In fact, it even occurs when the reverse
> proxy
> > > upstream points to only one of the nifi nodes in the cluster.
> Moreover,
> > > the problem is limited to importing/uploading a template.  Deleting,
> > > downloading, and instantiating existing templates works fine.
> > >
> > > There is another strange pattern that I discovered.  I can get
> templates
> > to
> > > import if I hard-code the scheme header as follows: *proxy_set_header
> > > X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
> > http, I
> > > cannot delete a template after it is uploaded.
> > >
> > > Below are several of the logs (IPs and DNS were changed for security
> > > reasons).
> > >
> > > *nginx.err*
> > > 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
> > > buffered to a temporary file /var/cache/nginx/client_temp/0000000005,
> > > client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > > 8a86805ff8bb/templates/upload
> > > HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
> > > https://nifi-rix.somedomain.com/nifi/"
> > >
> > > *nginx access log*
> > > [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > > 8a86805ff8bb/templates/upload
> > > HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/" "Mozilla/5.0
> > > (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
> > Gecko)
> > > Chrome/55.0.2883.95 Safari/537.36" "-"
> > >
> > >
> > > *NiFi Log: nifi-app.log*
> > > 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate request
> > POST
> > > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > > 8a86805ff8bb/templates/import
> > > to ip-X-X-X-X.ec2.internal:8080 due to {}
> > > com.sun.jersey.api.client.ClientHandlerException:
> > > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > > connection?]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > > URLConnectionClientHandler.java:155)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource.access$200(
> WebResource.java:74)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource$Builder.post(
> > > WebResource.java:560)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > org.apache.nifi.cluster.coordination.http.replication.
> > > ThreadPoolRequestReplicator.replicateRequest(
> ThreadPoolRequestReplicator.
> > > java:587)
> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > > at
> > > org.apache.nifi.cluster.coordination.http.replication.
> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> > > ThreadPoolRequestReplicator.java:770)
> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [na:1.8.0_112]
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > [na:1.8.0_112]
> > > at
> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
> > > ThreadPoolExecutor.java:1142)
> > > [na:1.8.0_112]
> > > at
> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > ThreadPoolExecutor.java:617)
> > > [na:1.8.0_112]
> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> > > Caused by: javax.ws.rs.WebApplicationException:
> > > javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > > connection?]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:159)
> > > ~[jersey-core-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> > > RequestWriter.java:300)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler._
> invoke(
> > > URLConnectionClientHandler.java:217)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > > URLConnectionClientHandler.java:153)
> > > ~[jersey-client-1.19.jar:1.19]
> > > ... 11 common frames omitted
> > > Caused by: javax.xml.bind.MarshalException: null
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> MarshallerImpl.java:325)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> > > MarshallerImpl.java:249)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> > > AbstractMarshallerImpl.java:95)
> > > ~[na:1.8.0_112]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:179)
> > > ~[jersey-core-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:157)
> > > ~[jersey-core-1.19.jar:1.19]
> > > ... 14 common frames omitted
> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> > plaintext
> > > connection?
> > > at sun.security.ssl.InputRecord.handleUnknownRecord(
> InputRecord.java:710)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> > > SSLSocketImpl.java:1375)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.startHandshake(
> SSLSocketImpl.java:1403)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.startHandshake(
> SSLSocketImpl.java:1387)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.HttpsClient.afterConnect(
> HttpsClient.java:559)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> > > AbstractDelegateHttpsURLConnection.java:185)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> > > HttpURLConnection.java:1316)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> > > HttpURLConnection.java:1291)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> > > HttpsURLConnectionImpl.java:250)
> > > ~[na:1.8.0_112]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> > > CommittingOutputStream.java:117)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.CommittingOutputStream.write(
> > > CommittingOutputStream.java:89)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> > > UTF8XmlOutput.java:409)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > > writeName(UTF8XmlOutput.java:239)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > > beginStartTag(UTF8XmlOutput.java:167)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> > > XMLSerializer.java:327)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$
> StringImplImpl.
> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$
> StringImplImpl.
> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> > > CompositeTransducedAccessorImpl.writeLeafElement(
> > > TransducedAccessor.java:256)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> > > serializeBody(SingleElementLeafProperty.java:128)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> > > serializeItem(ArrayElementNodeProperty.java:69)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> > > serializeListBody(ArrayElementProperty.java:172)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> > > serializeBody(ArrayERProperty.java:159)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > > serializeBody(SingleElementNodeProperty.java:156)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > > serializeBody(SingleElementNodeProperty.java:156)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> > > XMLSerializer.java:597)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> > > ClassBeanInfoImpl.java:328)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> > > XMLSerializer.java:498)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> MarshallerImpl.java:320)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > ... 18 common frames omitted
> > > 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
> > > o.a.n.c.c.h.r.ThreadPoolRequestReplicator
> > > com.sun.jersey.api.client.ClientHandlerException:
> > > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > > connection?]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > > URLConnectionClientHandler.java:155)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource.access$200(
> WebResource.java:74)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at com.sun.jersey.api.client.WebResource$Builder.post(
> > > WebResource.java:560)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > org.apache.nifi.cluster.coordination.http.replication.
> > > ThreadPoolRequestReplicator.replicateRequest(
> ThreadPoolRequestReplicator.
> > > java:587)
> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > > at
> > > org.apache.nifi.cluster.coordination.http.replication.
> > > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> > > ThreadPoolRequestReplicator.java:770)
> > > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > > at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > > [na:1.8.0_112]
> > > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> > [na:1.8.0_112]
> > > at
> > > java.util.concurrent.ThreadPoolExecutor.runWorker(
> > > ThreadPoolExecutor.java:1142)
> > > [na:1.8.0_112]
> > > at
> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > ThreadPoolExecutor.java:617)
> > > [na:1.8.0_112]
> > > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> > > Caused by: javax.ws.rs.WebApplicationException:
> > > javax.xml.bind.MarshalException
> > >  - with linked exception:
> > > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > > connection?]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:159)
> > > ~[jersey-core-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> > > RequestWriter.java:300)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler._
> invoke(
> > > URLConnectionClientHandler.java:217)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > > URLConnectionClientHandler.java:153)
> > > ~[jersey-client-1.19.jar:1.19]
> > > ... 11 common frames omitted
> > > Caused by: javax.xml.bind.MarshalException: null
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> MarshallerImpl.java:325)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> > > MarshallerImpl.java:249)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> > > AbstractMarshallerImpl.java:95)
> > > ~[na:1.8.0_112]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:179)
> > > ~[jersey-core-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > > AbstractRootElementProvider.java:157)
> > > ~[jersey-core-1.19.jar:1.19]
> > > ... 14 common frames omitted
> > > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> > plaintext
> > > connection?
> > > at sun.security.ssl.InputRecord.handleUnknownRecord(
> InputRecord.java:710)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> > > SSLSocketImpl.java:1375)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.startHandshake(
> SSLSocketImpl.java:1403)
> > > ~[na:1.8.0_112]
> > > at sun.security.ssl.SSLSocketImpl.startHandshake(
> SSLSocketImpl.java:1387)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.HttpsClient.afterConnect(
> HttpsClient.java:559)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> > > AbstractDelegateHttpsURLConnection.java:185)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> > > HttpURLConnection.java:1316)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> > > HttpURLConnection.java:1291)
> > > ~[na:1.8.0_112]
> > > at
> > > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> > > HttpsURLConnectionImpl.java:250)
> > > ~[na:1.8.0_112]
> > > at
> > > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> > > 1.getOutputStream(URLConnectionClientHandler.java:238)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> > > CommittingOutputStream.java:117)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.jersey.api.client.CommittingOutputStream.write(
> > > CommittingOutputStream.java:89)
> > > ~[jersey-client-1.19.jar:1.19]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> > > UTF8XmlOutput.java:409)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > > writeName(UTF8XmlOutput.java:239)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > > beginStartTag(UTF8XmlOutput.java:167)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> > > XMLSerializer.java:327)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$
> StringImplImpl.
> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$
> StringImplImpl.
> > > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> > > CompositeTransducedAccessorImpl.writeLeafElement(
> > > TransducedAccessor.java:256)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> > > serializeBody(SingleElementLeafProperty.java:128)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> > > serializeItem(ArrayElementNodeProperty.java:69)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> > > serializeListBody(ArrayElementProperty.java:172)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> > > serializeBody(ArrayERProperty.java:159)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > > serializeBody(SingleElementNodeProperty.java:156)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > > XMLSerializer.java:700)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > > serializeBody(SingleElementNodeProperty.java:156)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > > ClassBeanInfoImpl.java:344)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> > > XMLSerializer.java:597)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> > > ClassBeanInfoImpl.java:328)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> > > XMLSerializer.java:498)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > at
> > > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(
> MarshallerImpl.java:320)
> > > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > > ... 18 common frames omitted
> > >
> > > Rick.
> > >
> > >
> > > On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <ma...@gmail.com>
> > > wrote:
> > >
> > > > Rick,
> > > >
> > > > The signature of the endpoint that accepts a template upload has not
> > > > changed (other than the path). Are you running a NiFi cluster in the
> > > > trusted environment or is it a standalone instance? Is the issue when
> > you
> > > > attempt to upload the template or when you attempt to drop the
> template
> > > on
> > > > your graph? Just wanted to confirm.
> > > >
> > > > The mixed content error sounds like a client side message when a
> > webpage
> > > is
> > > > referencing resources (img, js, css, etc) from different sources. For
> > > > instance, loading a webpage over HTTPS which is referencing a
> resource
> > > over
> > > > HTTP. The frontend resources should all be bundled with the
> application
> > > and
> > > > they should be all loaded through your proxy.
> > > >
> > > > Are there any other errors or messages? Maybe check the user log on
> the
> > > > NiFi instances. Or maybe the logs of the proxy server to see the
> > requests
> > > > being processed. Hoping there's more details being logged someplace.
> > > >
> > > > Thanks
> > > >
> > > > Matt
> > > >
> > > > On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <
> rstjohn67@gmail.com
> > >
> > > > wrote:
> > > >
> > > > > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are
> > the
> > > > > important details. First, nginx is using basic auth and SSL.
> Second,
> > > > NiFi
> > > > > is running in a trusted environment without SSL.  We successfully
> > used
> > > > the
> > > > > same layout for NiFi 0.7.x without issue.  However, starting with
> > 1.0.x
> > > > and
> > > > > continuing in 1.1.x, I cannot import a saved template.  The error
> > > > complains
> > > > > about mixed content (http and https).  Has this layout been tested
> > and
> > > > > validated? If so, what proxy headers am I missing?
> > > > >
> > > > > Below are the proxy headers I pass from nginx to NiFi:
> > > > >         proxy_set_header X-ProxyScheme $scheme;
> > > > >         proxy_set_header X-ProxyHost $host;
> > > > >         proxy_set_header X-ProxyPort  443;
> > > > >         proxy_set_header X-ProxyContextPath "";
> > > > >
> > > > >
> > > > > Thanks Rick.
> > > > > --
> > > > >
> > > > > ----------------------------
> > > > > Richard St. John, Ph.D.
> > > > > Senior Software Engineer, Applied Mathematician
> > > > > Asymmetrik, Ltd.
> > > > >
> > > >
> > > --
> > >
> > > ----------------------------
> > > Richard St. John, Ph.D.
> > > Senior Software Engineer, Applied Mathematician
> > > Asymmetrik, Ltd.
> > >
> >
> --
>
> ----------------------------
> Richard St. John, Ph.D.
> Senior Software Engineer, Applied Mathematician
> Asymmetrik, Ltd.
>

Re: Reverse Proxy Template Import Error

Posted by "Richard St. John" <rs...@gmail.com>.
I should be able to test tonight.

On Thu, Dec 15, 2016 at 12:45 PM Matt Gilman <ma...@gmail.com>
wrote:

> Rick,
>
> I think I see what the issue is however, I have don't have the environment
> available for verifying it. If I posted a PR would you be in a position to
> try it out?
>
> Matt
>
> On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <rs...@gmail.com>
> wrote:
>
> > Matt,
> >
> > This is where it gets interesting.  The issue only arises when nginx is
> > used as a reverse proxy for a *clustered* NiFi (within a trusted
> > environment using http).  In fact, it even occurs when the reverse proxy
> > upstream points to only one of the nifi nodes in the cluster.  Moreover,
> > the problem is limited to importing/uploading a template.  Deleting,
> > downloading, and instantiating existing templates works fine.
> >
> > There is another strange pattern that I discovered.  I can get templates
> to
> > import if I hard-code the scheme header as follows: *proxy_set_header
> > X-ProxyScheme http;*  However, when I hard-code the proxy scheme to
> http, I
> > cannot delete a template after it is uploaded.
> >
> > Below are several of the logs (IPs and DNS were changed for security
> > reasons).
> >
> > *nginx.err*
> > 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
> > buffered to a temporary file /var/cache/nginx/client_temp/0000000005,
> > client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
> > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > 8a86805ff8bb/templates/upload
> > HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
> > https://nifi-rix.somedomain.com/nifi/"
> >
> > *nginx access log*
> > [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
> > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > 8a86805ff8bb/templates/upload
> > HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/" "Mozilla/5.0
> > (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like
> Gecko)
> > Chrome/55.0.2883.95 Safari/537.36" "-"
> >
> >
> > *NiFi Log: nifi-app.log*
> > 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
> > o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate request
> POST
> > /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> > 8a86805ff8bb/templates/import
> > to ip-X-X-X-X.ec2.internal:8080 due to {}
> > com.sun.jersey.api.client.ClientHandlerException:
> > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
> >  - with linked exception:
> > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > connection?]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > URLConnectionClientHandler.java:155)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource$Builder.post(
> > WebResource.java:560)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > org.apache.nifi.cluster.coordination.http.replication.
> > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.
> > java:587)
> > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > at
> > org.apache.nifi.cluster.coordination.http.replication.
> > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> > ThreadPoolRequestReplicator.java:770)
> > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [na:1.8.0_112]
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> [na:1.8.0_112]
> > at
> > java.util.concurrent.ThreadPoolExecutor.runWorker(
> > ThreadPoolExecutor.java:1142)
> > [na:1.8.0_112]
> > at
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > ThreadPoolExecutor.java:617)
> > [na:1.8.0_112]
> > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> > Caused by: javax.ws.rs.WebApplicationException:
> > javax.xml.bind.MarshalException
> >  - with linked exception:
> > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > connection?]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:159)
> > ~[jersey-core-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> > RequestWriter.java:300)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(
> > URLConnectionClientHandler.java:217)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > URLConnectionClientHandler.java:153)
> > ~[jersey-client-1.19.jar:1.19]
> > ... 11 common frames omitted
> > Caused by: javax.xml.bind.MarshalException: null
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> > MarshallerImpl.java:249)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> > AbstractMarshallerImpl.java:95)
> > ~[na:1.8.0_112]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:179)
> > ~[jersey-core-1.19.jar:1.19]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:157)
> > ~[jersey-core-1.19.jar:1.19]
> > ... 14 common frames omitted
> > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> plaintext
> > connection?
> > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> > ~[na:1.8.0_112]
> > at
> > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> > SSLSocketImpl.java:1375)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> > AbstractDelegateHttpsURLConnection.java:185)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> > HttpURLConnection.java:1316)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> > HttpURLConnection.java:1291)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> > HttpsURLConnectionImpl.java:250)
> > ~[na:1.8.0_112]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> > 1.getOutputStream(URLConnectionClientHandler.java:238)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> > CommittingOutputStream.java:117)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.CommittingOutputStream.write(
> > CommittingOutputStream.java:89)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> > UTF8XmlOutput.java:409)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > writeName(UTF8XmlOutput.java:239)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > beginStartTag(UTF8XmlOutput.java:167)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> > XMLSerializer.java:327)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> > CompositeTransducedAccessorImpl.writeLeafElement(
> > TransducedAccessor.java:256)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> > serializeBody(SingleElementLeafProperty.java:128)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> > serializeItem(ArrayElementNodeProperty.java:69)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> > serializeListBody(ArrayElementProperty.java:172)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> > serializeBody(ArrayERProperty.java:159)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > serializeBody(SingleElementNodeProperty.java:156)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > serializeBody(SingleElementNodeProperty.java:156)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> > XMLSerializer.java:597)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> > ClassBeanInfoImpl.java:328)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> > XMLSerializer.java:498)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > ... 18 common frames omitted
> > 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
> > o.a.n.c.c.h.r.ThreadPoolRequestReplicator
> > com.sun.jersey.api.client.ClientHandlerException:
> > javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
> >  - with linked exception:
> > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > connection?]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > URLConnectionClientHandler.java:155)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.Client.handle(Client.java:652)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
> > ~[jersey-client-1.19.jar:1.19]
> > at com.sun.jersey.api.client.WebResource$Builder.post(
> > WebResource.java:560)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > org.apache.nifi.cluster.coordination.http.replication.
> > ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.
> > java:587)
> > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > at
> > org.apache.nifi.cluster.coordination.http.replication.
> > ThreadPoolRequestReplicator$NodeHttpRequest.run(
> > ThreadPoolRequestReplicator.java:770)
> > ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> > at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> > [na:1.8.0_112]
> > at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> [na:1.8.0_112]
> > at
> > java.util.concurrent.ThreadPoolExecutor.runWorker(
> > ThreadPoolExecutor.java:1142)
> > [na:1.8.0_112]
> > at
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > ThreadPoolExecutor.java:617)
> > [na:1.8.0_112]
> > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> > Caused by: javax.ws.rs.WebApplicationException:
> > javax.xml.bind.MarshalException
> >  - with linked exception:
> > [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> > connection?]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:159)
> > ~[jersey-core-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> > RequestWriter.java:300)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(
> > URLConnectionClientHandler.java:217)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> > URLConnectionClientHandler.java:153)
> > ~[jersey-client-1.19.jar:1.19]
> > ... 11 common frames omitted
> > Caused by: javax.xml.bind.MarshalException: null
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> > MarshallerImpl.java:249)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> > AbstractMarshallerImpl.java:95)
> > ~[na:1.8.0_112]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:179)
> > ~[jersey-core-1.19.jar:1.19]
> > at
> > com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> > AbstractRootElementProvider.java:157)
> > ~[jersey-core-1.19.jar:1.19]
> > ... 14 common frames omitted
> > Caused by: javax.net.ssl.SSLException: Unrecognized SSL message,
> plaintext
> > connection?
> > at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.InputRecord.read(InputRecord.java:527)
> ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> > ~[na:1.8.0_112]
> > at
> > sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> > SSLSocketImpl.java:1375)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
> > ~[na:1.8.0_112]
> > at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> > AbstractDelegateHttpsURLConnection.java:185)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> > HttpURLConnection.java:1316)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> > HttpURLConnection.java:1291)
> > ~[na:1.8.0_112]
> > at
> > sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> > HttpsURLConnectionImpl.java:250)
> > ~[na:1.8.0_112]
> > at
> > com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> > 1.getOutputStream(URLConnectionClientHandler.java:238)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> > CommittingOutputStream.java:117)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.jersey.api.client.CommittingOutputStream.write(
> > CommittingOutputStream.java:89)
> > ~[jersey-client-1.19.jar:1.19]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> > UTF8XmlOutput.java:409)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > writeName(UTF8XmlOutput.java:239)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> > beginStartTag(UTF8XmlOutput.java:167)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> > XMLSerializer.java:327)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> > writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> > CompositeTransducedAccessorImpl.writeLeafElement(
> > TransducedAccessor.java:256)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> > serializeBody(SingleElementLeafProperty.java:128)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> > serializeItem(ArrayElementNodeProperty.java:69)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> > serializeListBody(ArrayElementProperty.java:172)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> > serializeBody(ArrayERProperty.java:159)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > serializeBody(SingleElementNodeProperty.java:156)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> > XMLSerializer.java:700)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> > serializeBody(SingleElementNodeProperty.java:156)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> > ClassBeanInfoImpl.java:344)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> > XMLSerializer.java:597)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> > ClassBeanInfoImpl.java:328)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> > XMLSerializer.java:498)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > at
> > com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
> > ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> > ... 18 common frames omitted
> >
> > Rick.
> >
> >
> > On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <ma...@gmail.com>
> > wrote:
> >
> > > Rick,
> > >
> > > The signature of the endpoint that accepts a template upload has not
> > > changed (other than the path). Are you running a NiFi cluster in the
> > > trusted environment or is it a standalone instance? Is the issue when
> you
> > > attempt to upload the template or when you attempt to drop the template
> > on
> > > your graph? Just wanted to confirm.
> > >
> > > The mixed content error sounds like a client side message when a
> webpage
> > is
> > > referencing resources (img, js, css, etc) from different sources. For
> > > instance, loading a webpage over HTTPS which is referencing a resource
> > over
> > > HTTP. The frontend resources should all be bundled with the application
> > and
> > > they should be all loaded through your proxy.
> > >
> > > Are there any other errors or messages? Maybe check the user log on the
> > > NiFi instances. Or maybe the logs of the proxy server to see the
> requests
> > > being processed. Hoping there's more details being logged someplace.
> > >
> > > Thanks
> > >
> > > Matt
> > >
> > > On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <rstjohn67@gmail.com
> >
> > > wrote:
> > >
> > > > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are
> the
> > > > important details. First, nginx is using basic auth and SSL.  Second,
> > > NiFi
> > > > is running in a trusted environment without SSL.  We successfully
> used
> > > the
> > > > same layout for NiFi 0.7.x without issue.  However, starting with
> 1.0.x
> > > and
> > > > continuing in 1.1.x, I cannot import a saved template.  The error
> > > complains
> > > > about mixed content (http and https).  Has this layout been tested
> and
> > > > validated? If so, what proxy headers am I missing?
> > > >
> > > > Below are the proxy headers I pass from nginx to NiFi:
> > > >         proxy_set_header X-ProxyScheme $scheme;
> > > >         proxy_set_header X-ProxyHost $host;
> > > >         proxy_set_header X-ProxyPort  443;
> > > >         proxy_set_header X-ProxyContextPath "";
> > > >
> > > >
> > > > Thanks Rick.
> > > > --
> > > >
> > > > ----------------------------
> > > > Richard St. John, Ph.D.
> > > > Senior Software Engineer, Applied Mathematician
> > > > Asymmetrik, Ltd.
> > > >
> > >
> > --
> >
> > ----------------------------
> > Richard St. John, Ph.D.
> > Senior Software Engineer, Applied Mathematician
> > Asymmetrik, Ltd.
> >
>
-- 

----------------------------
Richard St. John, Ph.D.
Senior Software Engineer, Applied Mathematician
Asymmetrik, Ltd.

Re: Reverse Proxy Template Import Error

Posted by Matt Gilman <ma...@gmail.com>.
Rick,

I think I see what the issue is however, I have don't have the environment
available for verifying it. If I posted a PR would you be in a position to
try it out?

Matt

On Wed, Dec 14, 2016 at 9:00 PM, Richard St. John <rs...@gmail.com>
wrote:

> Matt,
>
> This is where it gets interesting.  The issue only arises when nginx is
> used as a reverse proxy for a *clustered* NiFi (within a trusted
> environment using http).  In fact, it even occurs when the reverse proxy
> upstream points to only one of the nifi nodes in the cluster.  Moreover,
> the problem is limited to importing/uploading a template.  Deleting,
> downloading, and instantiating existing templates works fine.
>
> There is another strange pattern that I discovered.  I can get templates to
> import if I hard-code the scheme header as follows: *proxy_set_header
> X-ProxyScheme http;*  However, when I hard-code the proxy scheme to http, I
> cannot delete a template after it is uploaded.
>
> Below are several of the logs (IPs and DNS were changed for security
> reasons).
>
> *nginx.err*
> 2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
> buffered to a temporary file /var/cache/nginx/client_temp/0000000005,
> client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> 8a86805ff8bb/templates/upload
> HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
> https://nifi-rix.somedomain.com/nifi/"
>
> *nginx access log*
> [15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> 8a86805ff8bb/templates/upload
> HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/" "Mozilla/5.0
> (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko)
> Chrome/55.0.2883.95 Safari/537.36" "-"
>
>
> *NiFi Log: nifi-app.log*
> 2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
> o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate request POST
> /nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-
> 8a86805ff8bb/templates/import
> to ip-X-X-X-X.ec2.internal:8080 due to {}
> com.sun.jersey.api.client.ClientHandlerException:
> javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> URLConnectionClientHandler.java:155)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.Client.handle(Client.java:652)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource$Builder.post(
> WebResource.java:560)
> ~[jersey-client-1.19.jar:1.19]
> at
> org.apache.nifi.cluster.coordination.http.replication.
> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.
> java:587)
> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> at
> org.apache.nifi.cluster.coordination.http.replication.
> ThreadPoolRequestReplicator$NodeHttpRequest.run(
> ThreadPoolRequestReplicator.java:770)
> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [na:1.8.0_112]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> [na:1.8.0_112]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> [na:1.8.0_112]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> Caused by: javax.ws.rs.WebApplicationException:
> javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:159)
> ~[jersey-core-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> RequestWriter.java:300)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(
> URLConnectionClientHandler.java:217)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> URLConnectionClientHandler.java:153)
> ~[jersey-client-1.19.jar:1.19]
> ... 11 common frames omitted
> Caused by: javax.xml.bind.MarshalException: null
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> MarshallerImpl.java:249)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> AbstractMarshallerImpl.java:95)
> ~[na:1.8.0_112]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:179)
> ~[jersey-core-1.19.jar:1.19]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:157)
> ~[jersey-core-1.19.jar:1.19]
> ... 14 common frames omitted
> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?
> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
> ~[na:1.8.0_112]
> at sun.security.ssl.InputRecord.read(InputRecord.java:527) ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> ~[na:1.8.0_112]
> at
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> SSLSocketImpl.java:1375)
> ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
> ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> AbstractDelegateHttpsURLConnection.java:185)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> HttpURLConnection.java:1316)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> HttpURLConnection.java:1291)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> HttpsURLConnectionImpl.java:250)
> ~[na:1.8.0_112]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> 1.getOutputStream(URLConnectionClientHandler.java:238)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> CommittingOutputStream.java:117)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.CommittingOutputStream.write(
> CommittingOutputStream.java:89)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> UTF8XmlOutput.java:409)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> writeName(UTF8XmlOutput.java:239)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> beginStartTag(UTF8XmlOutput.java:167)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> XMLSerializer.java:327)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> CompositeTransducedAccessorImpl.writeLeafElement(
> TransducedAccessor.java:256)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> serializeBody(SingleElementLeafProperty.java:128)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> serializeItem(ArrayElementNodeProperty.java:69)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> serializeListBody(ArrayElementProperty.java:172)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> serializeBody(ArrayERProperty.java:159)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> serializeBody(SingleElementNodeProperty.java:156)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> serializeBody(SingleElementNodeProperty.java:156)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> XMLSerializer.java:597)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> ClassBeanInfoImpl.java:328)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> XMLSerializer.java:498)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> ... 18 common frames omitted
> 2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
> o.a.n.c.c.h.r.ThreadPoolRequestReplicator
> com.sun.jersey.api.client.ClientHandlerException:
> javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> URLConnectionClientHandler.java:155)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.Client.handle(Client.java:652)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
> ~[jersey-client-1.19.jar:1.19]
> at com.sun.jersey.api.client.WebResource$Builder.post(
> WebResource.java:560)
> ~[jersey-client-1.19.jar:1.19]
> at
> org.apache.nifi.cluster.coordination.http.replication.
> ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.
> java:587)
> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> at
> org.apache.nifi.cluster.coordination.http.replication.
> ThreadPoolRequestReplicator$NodeHttpRequest.run(
> ThreadPoolRequestReplicator.java:770)
> ~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> [na:1.8.0_112]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
> [na:1.8.0_112]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
> [na:1.8.0_112]
> at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
> Caused by: javax.ws.rs.WebApplicationException:
> javax.xml.bind.MarshalException
>  - with linked exception:
> [javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:159)
> ~[jersey-core-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.RequestWriter.writeRequestEntity(
> RequestWriter.java:300)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(
> URLConnectionClientHandler.java:217)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(
> URLConnectionClientHandler.java:153)
> ~[jersey-client-1.19.jar:1.19]
> ... 11 common frames omitted
> Caused by: javax.xml.bind.MarshalException: null
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(
> MarshallerImpl.java:249)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(
> AbstractMarshallerImpl.java:95)
> ~[na:1.8.0_112]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:179)
> ~[jersey-core-1.19.jar:1.19]
> at
> com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(
> AbstractRootElementProvider.java:157)
> ~[jersey-core-1.19.jar:1.19]
> ... 14 common frames omitted
> Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
> connection?
> at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
> ~[na:1.8.0_112]
> at sun.security.ssl.InputRecord.read(InputRecord.java:527) ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
> ~[na:1.8.0_112]
> at
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(
> SSLSocketImpl.java:1375)
> ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
> ~[na:1.8.0_112]
> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(
> AbstractDelegateHttpsURLConnection.java:185)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(
> HttpURLConnection.java:1316)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.http.HttpURLConnection.getOutputStream(
> HttpURLConnection.java:1291)
> ~[na:1.8.0_112]
> at
> sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(
> HttpsURLConnectionImpl.java:250)
> ~[na:1.8.0_112]
> at
> com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$
> 1.getOutputStream(URLConnectionClientHandler.java:238)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.CommittingOutputStream.commitStream(
> CommittingOutputStream.java:117)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.jersey.api.client.CommittingOutputStream.write(
> CommittingOutputStream.java:89)
> ~[jersey-client-1.19.jar:1.19]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(
> UTF8XmlOutput.java:409)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> writeName(UTF8XmlOutput.java:239)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.
> beginStartTag(UTF8XmlOutput.java:167)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(
> XMLSerializer.java:327)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.
> writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$
> CompositeTransducedAccessorImpl.writeLeafElement(
> TransducedAccessor.java:256)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.
> serializeBody(SingleElementLeafProperty.java:128)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.
> serializeItem(ArrayElementNodeProperty.java:69)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.
> serializeListBody(ArrayElementProperty.java:172)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.ArrayERProperty.
> serializeBody(ArrayERProperty.java:159)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> serializeBody(SingleElementNodeProperty.java:156)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(
> XMLSerializer.java:700)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.
> serializeBody(SingleElementNodeProperty.java:156)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(
> ClassBeanInfoImpl.java:344)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(
> XMLSerializer.java:597)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(
> ClassBeanInfoImpl.java:328)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(
> XMLSerializer.java:498)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> at
> com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
> ~[jaxb-impl-2.2.3-1.jar:2.2.3]
> ... 18 common frames omitted
>
> Rick.
>
>
> On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <ma...@gmail.com>
> wrote:
>
> > Rick,
> >
> > The signature of the endpoint that accepts a template upload has not
> > changed (other than the path). Are you running a NiFi cluster in the
> > trusted environment or is it a standalone instance? Is the issue when you
> > attempt to upload the template or when you attempt to drop the template
> on
> > your graph? Just wanted to confirm.
> >
> > The mixed content error sounds like a client side message when a webpage
> is
> > referencing resources (img, js, css, etc) from different sources. For
> > instance, loading a webpage over HTTPS which is referencing a resource
> over
> > HTTP. The frontend resources should all be bundled with the application
> and
> > they should be all loaded through your proxy.
> >
> > Are there any other errors or messages? Maybe check the user log on the
> > NiFi instances. Or maybe the logs of the proxy server to see the requests
> > being processed. Hoping there's more details being logged someplace.
> >
> > Thanks
> >
> > Matt
> >
> > On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <rs...@gmail.com>
> > wrote:
> >
> > > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are the
> > > important details. First, nginx is using basic auth and SSL.  Second,
> > NiFi
> > > is running in a trusted environment without SSL.  We successfully used
> > the
> > > same layout for NiFi 0.7.x without issue.  However, starting with 1.0.x
> > and
> > > continuing in 1.1.x, I cannot import a saved template.  The error
> > complains
> > > about mixed content (http and https).  Has this layout been tested and
> > > validated? If so, what proxy headers am I missing?
> > >
> > > Below are the proxy headers I pass from nginx to NiFi:
> > >         proxy_set_header X-ProxyScheme $scheme;
> > >         proxy_set_header X-ProxyHost $host;
> > >         proxy_set_header X-ProxyPort  443;
> > >         proxy_set_header X-ProxyContextPath "";
> > >
> > >
> > > Thanks Rick.
> > > --
> > >
> > > ----------------------------
> > > Richard St. John, Ph.D.
> > > Senior Software Engineer, Applied Mathematician
> > > Asymmetrik, Ltd.
> > >
> >
> --
>
> ----------------------------
> Richard St. John, Ph.D.
> Senior Software Engineer, Applied Mathematician
> Asymmetrik, Ltd.
>

Re: Reverse Proxy Template Import Error

Posted by "Richard St. John" <rs...@gmail.com>.
Matt,

This is where it gets interesting.  The issue only arises when nginx is
used as a reverse proxy for a *clustered* NiFi (within a trusted
environment using http).  In fact, it even occurs when the reverse proxy
upstream points to only one of the nifi nodes in the cluster.  Moreover,
the problem is limited to importing/uploading a template.  Deleting,
downloading, and instantiating existing templates works fine.

There is another strange pattern that I discovered.  I can get templates to
import if I hard-code the scheme header as follows: *proxy_set_header
X-ProxyScheme http;*  However, when I hard-code the proxy scheme to http, I
cannot delete a template after it is uploaded.

Below are several of the logs (IPs and DNS were changed for security
reasons).

*nginx.err*
2016/12/15 01:19:42 [warn] 29377#29377: *16 a client request body is
buffered to a temporary file /var/cache/nginx/client_temp/0000000005,
client: X.X.X.X, server: nifi-rix.somedomain.com, request: "POST
/nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-8a86805ff8bb/templates/upload
HTTP/1.1", host: "nifi-rix.somedomain.com", referrer: "
https://nifi-rix.somedomain.com/nifi/"

*nginx access log*
[15/Dec/2016:01:22:17 +0000] - (X.X.X.X - rstjohn) "POST
/nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-8a86805ff8bb/templates/upload
HTTP/1.1" 500 0 "https://nifi-rix.somedomain.com/nifi/" "Mozilla/5.0
(Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/55.0.2883.95 Safari/537.36" "-"


*NiFi Log: nifi-app.log*
2016-12-15 01:25:00,362 WARN [Replicate Request Thread-4]
o.a.n.c.c.h.r.ThreadPoolRequestReplicator Failed to replicate request POST
/nifi-api/process-groups/fe2e65ad-0158-1000-5fa5-8a86805ff8bb/templates/import
to ip-X-X-X-X.ec2.internal:8080 due to {}
com.sun.jersey.api.client.ClientHandlerException:
javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
 - with linked exception:
[javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.Client.handle(Client.java:652)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:560)
~[jersey-client-1.19.jar:1.19]
at
org.apache.nifi.cluster.coordination.http.replication.ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.java:587)
~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.replication.ThreadPoolRequestReplicator$NodeHttpRequest.run(ThreadPoolRequestReplicator.java:770)
~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[na:1.8.0_112]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[na:1.8.0_112]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_112]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
Caused by: javax.ws.rs.WebApplicationException:
javax.xml.bind.MarshalException
 - with linked exception:
[javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:159)
~[jersey-core-1.19.jar:1.19]
at
com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
~[jersey-client-1.19.jar:1.19]
... 11 common frames omitted
Caused by: javax.xml.bind.MarshalException: null
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:249)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:95)
~[na:1.8.0_112]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:179)
~[jersey-core-1.19.jar:1.19]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:157)
~[jersey-core-1.19.jar:1.19]
... 14 common frames omitted
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
~[na:1.8.0_112]
at sun.security.ssl.InputRecord.read(InputRecord.java:527) ~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
~[na:1.8.0_112]
at
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
~[na:1.8.0_112]
at
sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316)
~[na:1.8.0_112]
at
sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
~[na:1.8.0_112]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$1.getOutputStream(URLConnectionClientHandler.java:238)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.api.client.CommittingOutputStream.commitStream(CommittingOutputStream.java:117)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:89)
~[jersey-client-1.19.jar:1.19]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:409)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeName(UTF8XmlOutput.java:239)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:167)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(XMLSerializer.java:327)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.writeLeafElement(TransducedAccessor.java:256)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.serializeBody(SingleElementLeafProperty.java:128)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:69)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:172)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:597)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:328)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:498)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
... 18 common frames omitted
2016-12-15 01:25:00,363 WARN [Replicate Request Thread-4]
o.a.n.c.c.h.r.ThreadPoolRequestReplicator
com.sun.jersey.api.client.ClientHandlerException:
javax.ws.rs.WebApplicationException: javax.xml.bind.MarshalException
 - with linked exception:
[javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.Client.handle(Client.java:652)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
~[jersey-client-1.19.jar:1.19]
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:560)
~[jersey-client-1.19.jar:1.19]
at
org.apache.nifi.cluster.coordination.http.replication.ThreadPoolRequestReplicator.replicateRequest(ThreadPoolRequestReplicator.java:587)
~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
at
org.apache.nifi.cluster.coordination.http.replication.ThreadPoolRequestReplicator$NodeHttpRequest.run(ThreadPoolRequestReplicator.java:770)
~[nifi-framework-cluster-1.1.0-A1-SNAPSHOT.jar:1.1.0-A1-SNAPSHOT]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[na:1.8.0_112]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_112]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[na:1.8.0_112]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_112]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_112]
Caused by: javax.ws.rs.WebApplicationException:
javax.xml.bind.MarshalException
 - with linked exception:
[javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:159)
~[jersey-core-1.19.jar:1.19]
at
com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153)
~[jersey-client-1.19.jar:1.19]
... 11 common frames omitted
Caused by: javax.xml.bind.MarshalException: null
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:325)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:249)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:95)
~[na:1.8.0_112]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:179)
~[jersey-core-1.19.jar:1.19]
at
com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.writeTo(AbstractRootElementProvider.java:157)
~[jersey-core-1.19.jar:1.19]
... 14 common frames omitted
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext
connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
~[na:1.8.0_112]
at sun.security.ssl.InputRecord.read(InputRecord.java:527) ~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
~[na:1.8.0_112]
at
sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
~[na:1.8.0_112]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
~[na:1.8.0_112]
at
sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316)
~[na:1.8.0_112]
at
sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291)
~[na:1.8.0_112]
at
sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
~[na:1.8.0_112]
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$1.getOutputStream(URLConnectionClientHandler.java:238)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.api.client.CommittingOutputStream.commitStream(CommittingOutputStream.java:117)
~[jersey-client-1.19.jar:1.19]
at
com.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:89)
~[jersey-client-1.19.jar:1.19]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.write(UTF8XmlOutput.java:409)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at com.sun.xml.bind.v2.runtime.output.Encoded.write(Encoded.java:167)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.writeName(UTF8XmlOutput.java:239)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput.beginStartTag(UTF8XmlOutput.java:167)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.leafElement(XMLSerializer.java:327)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1045)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl$StringImplImpl.writeLeafElement(RuntimeBuiltinLeafInfoImpl.java:1024)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor$CompositeTransducedAccessorImpl.writeLeafElement(TransducedAccessor.java:256)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.serializeBody(SingleElementLeafProperty.java:128)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:69)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:172)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:700)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty.java:156)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:344)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsSoleContent(XMLSerializer.java:597)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeRoot(ClassBeanInfoImpl.java:328)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:498)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
at
com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:320)
~[jaxb-impl-2.2.3-1.jar:2.2.3]
... 18 common frames omitted

Rick.


On Wed, Dec 14, 2016 at 4:06 PM Matt Gilman <ma...@gmail.com> wrote:

> Rick,
>
> The signature of the endpoint that accepts a template upload has not
> changed (other than the path). Are you running a NiFi cluster in the
> trusted environment or is it a standalone instance? Is the issue when you
> attempt to upload the template or when you attempt to drop the template on
> your graph? Just wanted to confirm.
>
> The mixed content error sounds like a client side message when a webpage is
> referencing resources (img, js, css, etc) from different sources. For
> instance, loading a webpage over HTTPS which is referencing a resource over
> HTTP. The frontend resources should all be bundled with the application and
> they should be all loaded through your proxy.
>
> Are there any other errors or messages? Maybe check the user log on the
> NiFi instances. Or maybe the logs of the proxy server to see the requests
> being processed. Hoping there's more details being logged someplace.
>
> Thanks
>
> Matt
>
> On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <rs...@gmail.com>
> wrote:
>
> > I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are the
> > important details. First, nginx is using basic auth and SSL.  Second,
> NiFi
> > is running in a trusted environment without SSL.  We successfully used
> the
> > same layout for NiFi 0.7.x without issue.  However, starting with 1.0.x
> and
> > continuing in 1.1.x, I cannot import a saved template.  The error
> complains
> > about mixed content (http and https).  Has this layout been tested and
> > validated? If so, what proxy headers am I missing?
> >
> > Below are the proxy headers I pass from nginx to NiFi:
> >         proxy_set_header X-ProxyScheme $scheme;
> >         proxy_set_header X-ProxyHost $host;
> >         proxy_set_header X-ProxyPort  443;
> >         proxy_set_header X-ProxyContextPath "";
> >
> >
> > Thanks Rick.
> > --
> >
> > ----------------------------
> > Richard St. John, Ph.D.
> > Senior Software Engineer, Applied Mathematician
> > Asymmetrik, Ltd.
> >
>
-- 

----------------------------
Richard St. John, Ph.D.
Senior Software Engineer, Applied Mathematician
Asymmetrik, Ltd.

Re: Reverse Proxy Template Import Error

Posted by Matt Gilman <ma...@gmail.com>.
Rick,

The signature of the endpoint that accepts a template upload has not
changed (other than the path). Are you running a NiFi cluster in the
trusted environment or is it a standalone instance? Is the issue when you
attempt to upload the template or when you attempt to drop the template on
your graph? Just wanted to confirm.

The mixed content error sounds like a client side message when a webpage is
referencing resources (img, js, css, etc) from different sources. For
instance, loading a webpage over HTTPS which is referencing a resource over
HTTP. The frontend resources should all be bundled with the application and
they should be all loaded through your proxy.

Are there any other errors or messages? Maybe check the user log on the
NiFi instances. Or maybe the logs of the proxy server to see the requests
being processed. Hoping there's more details being logged someplace.

Thanks

Matt

On Wed, Dec 14, 2016 at 1:11 PM, Richard St. John <rs...@gmail.com>
wrote:

> I am using an nginx reverse proxy in front of NiFi 1.1.x.  Here are the
> important details. First, nginx is using basic auth and SSL.  Second, NiFi
> is running in a trusted environment without SSL.  We successfully used the
> same layout for NiFi 0.7.x without issue.  However, starting with 1.0.x and
> continuing in 1.1.x, I cannot import a saved template.  The error complains
> about mixed content (http and https).  Has this layout been tested and
> validated? If so, what proxy headers am I missing?
>
> Below are the proxy headers I pass from nginx to NiFi:
>         proxy_set_header X-ProxyScheme $scheme;
>         proxy_set_header X-ProxyHost $host;
>         proxy_set_header X-ProxyPort  443;
>         proxy_set_header X-ProxyContextPath "";
>
>
> Thanks Rick.
> --
>
> ----------------------------
> Richard St. John, Ph.D.
> Senior Software Engineer, Applied Mathematician
> Asymmetrik, Ltd.
>