2015-12-30 25 views
0

我发现了3种不同的方式,只能以非常难看的方式让其中一个工作。如何绕过Openshift上的URLConnection的SSL检查

我正在使用Spring MVC在openshift上创建一个REST端点。

方法1:

HostnameVerifier bypassSSl = new HostnameVerifier() { 
      public boolean verify(String hostname, SSLSession session) { 
       return true; 
      } 
     }; 
HttpsURLConnection.setDefaultHostnameVerifier(bypassSSl); 

我投入@Bean这里面WebMvcConfigurerAdapter,不能正常工作。

方法2:

new OpenShiftConnectionFactory() 
        .getConnection(id, username, password, host, new ISSLCertificateCallback() { 
           public boolean allowCertificate(X509Certificate[] chain) { 
             return true; 
           } 

           public boolean allowHostname(String hostname, SSLSession session) { 
             return true; 
           } 

}) 

还没有尝试这一个,不知道从哪里得到OpenShift库jar文件中。

方法3

HostnameVerifier bypassSSl = new HostnameVerifier() { 
       public boolean verify(String hostname, SSLSession session) { 
        return true; 
       } 
      }; 
HttpsURLConnection.setDefaultHostnameVerifier(bypassSSl); 

每一个HTTP请求之前添加该代码段,它的工作原理,但我认为这是做的非常糟糕的方式。

我应该如何将这个旁路添加到我的spring mvc webapp?有没有一个合适的事件处理程序,我可以将它连接起来,并在我的webapp启动时运行一次?

回答

0

末增长@mariuszprzydatek gist link

使用这个类,我把它在春天事件循环通过实施ApplicationListener<ContextRefreshedEvent>,然后覆盖onApplicationEvent(final ContextRefreshedEvent e)