2015-11-23 9:43 GMT+03:00 <[email protected]>:
> Author: jfclere
> Date: Mon Nov 23 06:43:01 2015
> New Revision: 1715732
>
> URL: http://svn.apache.org/viewvc?rev=1715732&view=rev
> Log:
> Add the JSSE one.
>
> Modified:
> tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java
>
> Modified:
> tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java
> URL:
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java?rev=1715732&r1=1715731&r2=1715732&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java
> (original)
> +++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java Mon
> Nov 23 06:43:01 2015
> @@ -16,11 +16,15 @@
> */
> package org.apache.tomcat.util.net.openssl;
>
> +import java.io.FileInputStream;
> +import java.io.InputStream;
> +import java.security.KeyStore;
> import java.util.List;
>
> import javax.net.ssl.KeyManager;
> import javax.net.ssl.SSLSessionContext;
> import javax.net.ssl.TrustManager;
> +import javax.net.ssl.TrustManagerFactory;
>
> import org.apache.tomcat.util.net.SSLContext;
> import org.apache.tomcat.util.net.SSLHostConfig;
> @@ -54,10 +58,40 @@ public class OpenSSLUtil implements SSLU
> return managers;
> }
>
> + /* In fact we can use the JSSE one for the moment */
> @Override
> public TrustManager[] getTrustManagers() throws Exception {
> - return null;
> + String storefile = System.getProperty("java.home") +
> "/lib/security/cacerts";
> + String password = "changeit";
> + String type = "jks";
> + String provider = null;
> + if (sslHostConfig.getTruststoreFile() != null) {
> + storefile = sslHostConfig.getTruststoreFile();
> + }
> + if (sslHostConfig.getTruststorePassword() != null) {
> + password = sslHostConfig.getTruststorePassword();
> + }
> + if (sslHostConfig.getTruststoreType() != null) {
> + type = sslHostConfig.getTruststoreType();
> + }
> + if (sslHostConfig.getTruststoreProvider() != null) {
> + provider = sslHostConfig.getTruststoreProvider();
> + }
> +
> + TrustManagerFactory factory;
> + if (provider == null)
> + factory =
> TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
> + else
> + factory = TrustManagerFactory.getInstance(provider);
Why "provider" on the above line?
I guess it should be sslHostConfig.getTruststoreAlgorithm()
For example: JSSESocketFactory.getTrustManagers()
> + KeyStore keystore = KeyStore.getInstance(type);
> + InputStream stream = new FileInputStream(storefile);
There is a new feature to allow random URLs as storefile.
The code will be
stream = ConfigFileLoader.getInputStream(storefile);
For example: JSSESocketFactory.getStore(...)
> + keystore.load(stream, password.toCharArray());
It also needs finally { if (stream != null) stream.close() }.
> + factory.init(keystore);
> + TrustManager[] managers = factory.getTrustManagers();
> + return managers;
> }
> +
>
> @Override
> public void configureSessionContext(SSLSessionContext sslSessionContext)
> {
BTW, a changelog, documentation =?
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]