You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Harit Himanshu <ha...@gmail.com> on 2015/06/09 21:18:33 UTC
Fwd: Embedded Tomcat could not find keystone file
Hello there
My tomcat dependency is
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>7.0.57</version>
</dependency>
In my code, I set the connector properties as
LOGGER.debug("ksPath=>" + ksPath);
httpsConnector.setAttribute("keystoreFile",ksPath);
httpsConnector.setAttribute("keystorePass", keyStorePass);
httpsConnector.setAttribute("clientAuth", "false");
httpsConnector.setAttribute("sslProtocol", "TLS");
httpsConnector.setAttribute("sslEnabledProtocols", tlsProtocols);
httpsConnector.setAttribute("SSLEnabled", true);
Connector defaultConnector = tomcat.getConnector();
defaultConnector.setRedirectPort(port);
When I server deployed, I see
ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
and then failure as
SEVERE: Failed to load keystore type JKS with path
/shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
due to /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
(No such file or directory)
java.io.FileNotFoundException:
/shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
(No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
Now, Observed that there are differences in ksPath and path tomcat looks
for
ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
and
java.io.FileNotFoundException:
/shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
(No such file or directory)
the tomcat path looks inside /shn/lp (which is current directory)
I also see that the keystone file is in fact present
jar -tvf /shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar | grep my.keystore
4704 Tue Jun 09 09:29:26 PDT 2015 my.keystore
What is the issue and how do I resolve it?
Thank you very much in advance
+ Harit Himanshu
Re: Fwd: Embedded Tomcat could not find keystone file
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Harit,
On 6/9/15 5:08 PM, Harit Himanshu wrote:
> This is interesting, one of our project I work with has this
> keystore inside jar file, just curious how that works
Conceptually, it's quite simple: just use the ClassLoader to grab the
file from the CL's class path.
In reality, the <Connector> was written to load directly off the
filesystem instead of using URLs or whatever.
It should be a somewhat easy fix -- at least for keystore/truststore
- -- but the BZ enhancement has quite a wide scope, saying that
"configuration resources" should be loadable via "resources" instead
of directly off the filesystem. That's a much wider net to cast, and
likely why it hasn't been addressed, yet.
If all you need is the keystore (and maybe truststore), then a patch
would be fairly trivial to write. I'm not sure if the full "resources"
are available to the Connector during configuration, but the container
ClassLoader certainly is available...
- -chris
> On Tue, Jun 9, 2015 at 12:44 PM, Mark Thomas <ma...@apache.org>
> wrote:
>
>> On 09/06/2015 20:18, Harit Himanshu wrote:
>>> Hello there
>>>
>>> My tomcat dependency is
>>>
>>> <dependency> <groupId>org.apache.tomcat.embed</groupId>
>>> <artifactId>tomcat-embed-core</artifactId>
>>> <version>7.0.57</version> </dependency>
>>>
>>> In my code, I set the connector properties as
>>>
>>> LOGGER.debug("ksPath=>" + ksPath);
>>> httpsConnector.setAttribute("keystoreFile",ksPath);
>>> httpsConnector.setAttribute("keystorePass", keyStorePass);
>>> httpsConnector.setAttribute("clientAuth", "false");
>>> httpsConnector.setAttribute("sslProtocol", "TLS");
>>> httpsConnector.setAttribute("sslEnabledProtocols",
>>> tlsProtocols); httpsConnector.setAttribute("SSLEnabled",
>>> true); Connector defaultConnector = tomcat.getConnector();
>>> defaultConnector.setRedirectPort(port);
>>>
>>> When I server deployed, I see
>>>
>>>
>> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>>
>>
and then failure as
>>>
>>> SEVERE: Failed to load keystore type JKS with path
>>>
>> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>
due to
>> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>
(No such file or directory)
>>> java.io.FileNotFoundException:
>>>
>> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>
(No such file or directory)
>>> at java.io.FileInputStream.open(Native Method) at
>>> java.io.FileInputStream.<init>(FileInputStream.java:146) at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocket
Factory.java:413)
>>>
>>
at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESoc
ketFactory.java:319)
>>>
>>
at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSE
SocketFactory.java:577)
>>>
>>
at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSE
SocketFactory.java:517)
>>>
>>
at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFact
ory.java:462)
>>>
>>
at
>> org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESo
cketFactory.java:209)
>>>
>>>
>>>
>>
Now, Observed that there are differences in ksPath and path tomcat looks
>>> for
>>>
>>>
>> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>>
>>
and
>>>
>>> java.io.FileNotFoundException:
>>>
>> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!
/my.keystore
>>>
>>
(No such file or directory)
>>>
>>>
>>> the tomcat path looks inside /shn/lp (which is current
>>> directory)
>>>
>>> I also see that the keystone file is in fact present
>>>
>>> jar -tvf /shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar |
>>> grep
>> my.keystore
>>> 4704 Tue Jun 09 09:29:26 PDT 2015 my.keystore
>>>
>>> What is the issue and how do I resolve it?
>>
>> keystore files have to be on the file system. Embedding them in a
>> JAR is not currently supported.
>> https://bz.apache.org/bugzilla/show_bug.cgi?id=56777
>>
>> Mark
>>
>>
>> ---------------------------------------------------------------------
>>
>>
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
Comment: GPGTools - http://gpgtools.org
iQIcBAEBCAAGBQJVd41PAAoJEBzwKT+lPKRYXjwP/1yVlWYLXgSVrIxyPGLCz08a
Ujvl4A/n2oN+4TyXRUoK9eQKbhPsJuZzckNv2VuzMJXviVvlknJx/Qvy8DDUjLNQ
ron9zWeGUT32meiuXdWzjk0A8nwHh1XC/1mlnaocifh71gw5VbkpSGv/TxFXAigo
aKVw/PaioPngDqQ2r2o4l74k2zWXHAFDLla8mu1WuiFGdop1x9oQi5L+PGz3HrNA
LC64yU3R73v7iLrDUoKtOH72PRJd0uGKviRZ9fIKzZ8pc1VYQfPHvFfD1Kj3iqmQ
s3yvlEVIph/3bX1viXgIlqP1z6DZ4ERVnKGklhktbtuvpx/w0Q8w39SUwl7lT21w
SywhI8JNrY5kFQty/svYbISfHmCbSYBdcTZgYZIQegttkCalxVheMhtumsZLzalh
KMx5SFpLhvBtuxYuBm25dnQ70ZTfjq8iTRgkV1HxU6uJ+3gzCSMzh2EGEum2oYEs
qGlZR9W3H1nsn4b9n/EmNRuQC/uNlpqOkM1ERzPfEuTZtuumLoAojiMy/D7dzLNi
+9FhItaJpUwoSMBSsZ4sXGItH+GWLtkQaXIE0XA1NaCn+5ZtNmqgWsHGg/dfCzYe
6Ja9U7z21R+nIALcCDczUWbSZZvy2IyFu1QB5Z1BEY9+wVvOyQlEwLo3XiHDG/A/
t4WA/ZlXC13JbkcwXk6A
=9Zcq
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Fwd: Embedded Tomcat could not find keystone file
Posted by Harit Himanshu <ha...@gmail.com>.
This is interesting, one of our project I work with has this keystore
inside jar file, just curious how that works
On Tue, Jun 9, 2015 at 12:44 PM, Mark Thomas <ma...@apache.org> wrote:
> On 09/06/2015 20:18, Harit Himanshu wrote:
> > Hello there
> >
> > My tomcat dependency is
> >
> > <dependency>
> > <groupId>org.apache.tomcat.embed</groupId>
> > <artifactId>tomcat-embed-core</artifactId>
> > <version>7.0.57</version>
> > </dependency>
> >
> > In my code, I set the connector properties as
> >
> > LOGGER.debug("ksPath=>" + ksPath);
> > httpsConnector.setAttribute("keystoreFile",ksPath);
> > httpsConnector.setAttribute("keystorePass", keyStorePass);
> > httpsConnector.setAttribute("clientAuth", "false");
> > httpsConnector.setAttribute("sslProtocol", "TLS");
> > httpsConnector.setAttribute("sslEnabledProtocols", tlsProtocols);
> > httpsConnector.setAttribute("SSLEnabled", true);
> > Connector defaultConnector = tomcat.getConnector();
> > defaultConnector.setRedirectPort(port);
> >
> > When I server deployed, I see
> >
> >
> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> >
> > and then failure as
> >
> > SEVERE: Failed to load keystore type JKS with path
> >
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> > due to
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> > (No such file or directory)
> > java.io.FileNotFoundException:
> >
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> > (No such file or directory)
> > at java.io.FileInputStream.open(Native Method)
> > at java.io.FileInputStream.<init>(FileInputStream.java:146)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
> > at
> org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
> >
> >
> > Now, Observed that there are differences in ksPath and path tomcat looks
> > for
> >
> >
> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> >
> > and
> >
> > java.io.FileNotFoundException:
> >
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> > (No such file or directory)
> >
> >
> > the tomcat path looks inside /shn/lp (which is current directory)
> >
> > I also see that the keystone file is in fact present
> >
> > jar -tvf /shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar | grep
> my.keystore
> > 4704 Tue Jun 09 09:29:26 PDT 2015 my.keystore
> >
> > What is the issue and how do I resolve it?
>
> keystore files have to be on the file system. Embedding them in a JAR is
> not currently supported.
> https://bz.apache.org/bugzilla/show_bug.cgi?id=56777
>
> Mark
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
Re: Fwd: Embedded Tomcat could not find keystone file
Posted by Mark Thomas <ma...@apache.org>.
On 09/06/2015 20:18, Harit Himanshu wrote:
> Hello there
>
> My tomcat dependency is
>
> <dependency>
> <groupId>org.apache.tomcat.embed</groupId>
> <artifactId>tomcat-embed-core</artifactId>
> <version>7.0.57</version>
> </dependency>
>
> In my code, I set the connector properties as
>
> LOGGER.debug("ksPath=>" + ksPath);
> httpsConnector.setAttribute("keystoreFile",ksPath);
> httpsConnector.setAttribute("keystorePass", keyStorePass);
> httpsConnector.setAttribute("clientAuth", "false");
> httpsConnector.setAttribute("sslProtocol", "TLS");
> httpsConnector.setAttribute("sslEnabledProtocols", tlsProtocols);
> httpsConnector.setAttribute("SSLEnabled", true);
> Connector defaultConnector = tomcat.getConnector();
> defaultConnector.setRedirectPort(port);
>
> When I server deployed, I see
>
> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
>
> and then failure as
>
> SEVERE: Failed to load keystore type JKS with path
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> due to /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> (No such file or directory)
> java.io.FileNotFoundException:
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> (No such file or directory)
> at java.io.FileInputStream.open(Native Method)
> at java.io.FileInputStream.<init>(FileInputStream.java:146)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
> at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
>
>
> Now, Observed that there are differences in ksPath and path tomcat looks
> for
>
> ksPath=>jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
>
> and
>
> java.io.FileNotFoundException:
> /shn/lp/jar:file:/shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar!/my.keystore
> (No such file or directory)
>
>
> the tomcat path looks inside /shn/lp (which is current directory)
>
> I also see that the keystone file is in fact present
>
> jar -tvf /shn/lp/main-1.0-SNAPSHOT-jar-with-dependencies.jar | grep my.keystore
> 4704 Tue Jun 09 09:29:26 PDT 2015 my.keystore
>
> What is the issue and how do I resolve it?
keystore files have to be on the file system. Embedding them in a JAR is
not currently supported.
https://bz.apache.org/bugzilla/show_bug.cgi?id=56777
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org