Ede,

I moved the URLConnection strategy into a separate class. It will be easier to share if another service (WFS?) needs it.

I also added the persistance mechanism with PersistantBlackboard.

I tried to set the authorization on a per URL basis rather than globally. In fact, I still use the setDefaultSSLSocketFactory, but I set it back to default after each URLConnection creation. Not sure it works. I don't know how to test it without a second uncertified URL.

Let me know if you think about a better strategy.

Michaël

Le 21/02/2019 à 10:41, edgar.sol...@web.de a écrit :
On 21.02.2019 08:39, michael michaud wrote:
OK, I started the change. I added a dialog in WMService to make it possible to 
accept or reject the connection to an url with uncertified authority.
The main problem was to not break project loading when the project contains 
such WMSLayers. You already get the infinite loop problem I encountered (you 
let a comment in WMService in 2016-01). Hopefully, the problem is now fixed in 
OpenProjectWizard).
I did not tried to persist URLs accepted by the user. It can be done later (not 
very urgent as the dialog is opened only once during a session for the same URL 
connection).
ok, had a look at your addition.

1.
firstly, you add new thrown exceptions all over the place. this changes the methods 
signatures (bad). try to wrap it into the existing exception definition like "new 
IOException(e);"

2.
   private void setTrustOption(boolean trust, URL url)
           throws KeyManagementException, NoSuchAlgorithmException {
     SSLContext sc = SSLContext.getInstance("SSL");
     if (trust || trustedURLs.contains(url)) {
       sc.init(null, new TrustManager[]{trm}, null);
       trustedURLs.add(url);
     } else {
       sc.init(null, null, null);
     }
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
   }

sets the global SSLContext, for _all_ connections via HttpsURLConnection 
thereafter. this means all connections after a one time OK in your dialog will 
not check the cert anymore.

this definitely must be limited to _only_ affect new WMS connections.

3.
we should add CertificateException which signals a generally wrong cert. eg. 
different host name in cert

4.
i'll have a look at the dialog phrasing. it currently just spits out 
"UnverifiedCertificate". let me think of a proper error description.

so far ..ede


_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to