ImportJava.io.File;Importjava.security.cert.CertificateException;Importjava.util.List;ImportJava.util.Map;ImportJavax.net.ssl.SSLContext;Importorg.apache.http.conn.ssl.SSLConnectionSocketFactory;ImportOrg.apache.http.conn.ssl.TrustSelfSignedStrategy;ImportOrg.apache.http.conn.ssl.TrustStrategy;Importorg.apache.http.impl.client.CloseableHttpClient;Importorg.apache.http.impl.client.HttpClients;Importorg.apache.http.ssl.SSLContexts;Importorg.springframework.beans.factory.annotation.Autowired;Importorg.springframework.http.client.HttpComponentsClientHttpRequestFactory;ImportOrg.springframework.security.core.annotation.AuthenticationPrincipal;ImportOrg.springframework.stereotype.Controller;Importorg.springframework.web.bind.annotation.RequestMapping;ImportOrg.springframework.web.bind.annotation.RequestMethod;ImportOrg.springframework.web.bind.annotation.ResponseBody;Importorg.springframework.web.client.RestTemplate; PublicString Test_getssoinfo ()throwsException {truststrategy acceptingtruststrategy=NewTruststrategy () {@Override Public Booleanistrusted (java.security.cert.x509certificate[] chain, String authtype)throwscertificateexception {System.out.println ("In IsTrusted" ); //TODO Completion method implementation return true; } } ; Sslcontext Sslcontext=Org.apache.http.ssl.SSLContexts.custom (). Loadtrustmaterial (NULL, Acceptingtruststrategy). Build (); Sslconnectionsocketfactory CSF=Newsslconnectionsocketfactory (Sslcontext); Closeablehttpclient httpClient=Httpclients.custom (). Setsslsocketfactory (CSF). Build (); Httpcomponentsclienthttprequestfactory requestfactory=Newhttpcomponentsclienthttprequestfactory (); Requestfactory.sethttpclient (httpClient); Resttemplate resttemplate=Newresttemplate (requestfactory);//resttemplate resttemplate = new Resttemplate ();String userjsonstr = Resttemplate.getforobject ("https://www.xxx.yy/", String.class); returnUserjsonstr; }
Okhttp
X509trustmanager TrustManager =NewX509trustmanager () {@Override Public voidCheckclienttrusted (java.security.cert.x509certificate[] arg0, String arg1)throwsjava.security.cert.CertificateException {} @Override Public voidCheckservertrusted (java.security.cert.x509certificate[] arg0, String arg1)throwsjava.security.cert.CertificateException {} @Override Publicjava.security.cert.x509certificate[] Getacceptedissuers () {StrUtil.log ("Getacceptedissuers ()"); return NewX509certificate[0]; } }; Sslcontext Sslcontext= Sslcontext.getinstance ("SSL"); Sslcontext.init (NULL,NewX509trustmanager[] {TrustManager},Newjava.security.SecureRandom ()); Sslsocketfactory sslsocketfactory=sslcontext.getsocketfactory (); Builder.sslsocketfactory (Sslsocketfactory, TrustManager). Hostnameverifier (NewHostnameverifier () {@Override Public BooleanVerify (String hostname, sslsession session) {StrUtil.log ("Verify () hostname:" + hostname + ", Session:" + (Session! =NULL? Session.tostring (): "NULL")); return true; } });
Disable certificate validation when Java connects to HTTPS.