Hi,

I take some of my words back. Not trusted certificates are not rare and because 
of automatic harvesting of Inspire metadata even secured services are 
recommended to keep GetCapabilities open if they serve Inspire data.

Users can add certificates into Java keystore with keytool but it is 
complicated.

-Jukka-

Lähettäjä: Michaud Michael <m.michael.mich...@orange.fr>
Lähetetty: tiistai 14. tammikuuta 2020 13.20
Vastaanottaja: OpenJump develop and use 
<jump-pilot-devel@lists.sourceforge.net>; Rahkonen Jukka (MML) 
<jukka.rahko...@maanmittauslaitos.fi>
Aihe: Re: [JPP-Devel] WMS test (fails)


Hi Jukka,

Thanks for your analyze.

Unfortunately, the server I'm talking with is not so exceptional (indeed, i 
think it is the main one in France as it is set by our national mapping 
agency). But they recently changed the certificate and the new one is no more 
recognized by the OracleJDK (it is recognized by java coretto distribution 
though).

I have no idea about why the getCapability is accessible without 
authentification and the getMap is not. Maybe it is unusual. As it is a big 
system with many ways to grant access to different kind of people, there maybe 
some reason...

Anyway, I understand more clearly what happens now, and suggest to follow your 
advice and to not change anything.

Michaël

envoyé : 14 janvier 2020 à 09:10
de : "Rahkonen Jukka (MML)" 
<jukka.rahko...@maanmittauslaitos.fi<mailto:jukka.rahko...@maanmittauslaitos.fi>>
à : OpenJump develop and use 
<jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>>
objet : Re: [JPP-Devel] WMS test (fails)


Hi,

You seem to talk with a bit exceptional server and that's good for debugging. I 
believe that your server 1) is using a not-well know certificate authority and 
2) is configured to deliver GetCapabilities without username/password.

Our server is using well known certificate and requires credentials already for 
GetCapabilities which is more usual as far as I know. In this case OJ is 
sending that WMS exception immediately.

It would be more user friendly to show just the http 401 error code with 
explanation but I guess that Ede has made a generic system that shows any 
exception that the server sends back as it comes. Our server seems to use 
different description for the 401 error

Response code: 401
Headers:
{null=[HTTP/1.0 401 Unauthorized], Server=[BigIP], WWW-Authenticate=[Basic 
realm="MML"], Connection=[close], Content-Length=[12]}
Response body:
Unauthorized

Headers may tell something interesting if there happens some other error than 
401 so I think it is OK to show the long message to users even it is somewhat 
ugly.

-Jukka-

-----Alkuperäinen viesti-----
Lähettäjä: Michaël Michaud 
<m.michael.mich...@orange.fr<mailto:m.michael.mich...@orange.fr>>
Lähetetty: tiistai 14. tammikuuta 2020 8.50
Vastaanottaja: 
jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>
Aihe: Re: [JPP-Devel] WMS test (fails)

Ede,

I tested a connexion with simple name/password authorization and I can connect 
to the service.

What is odd is that if I connect without entering user/password information
- i get the first panel saying authority is not recognized and asking if I want 
to bypass (the first time I try to connect only)
- I get the second panel showing the URL declared by the service and asking if 
I want to use it or not
    answering yes or not seems acepted and show the available layer list
    trying to load a layer throw an exception in both cases (exception contains 
the message "401 Authorization Required"
    but it is a little bit hidden in a long message that nobody will read)

Not sure if we can know anything about the authorization problem before trying 
to load a layer.
Else, we could extract the informative message ("authorization required"
from the http response) to
give the user a more comprehensive exception.

Anyway, the problem is about user experience, the behaviour seems correct to me.

Michaël


Le 14/01/2020 à 01:23, edgar.sol...@web.de<mailto:edgar.sol...@web.de> a écrit :

thx Jukka! Could anyone test it on another WMS server using auth please? just 
to make sure.

should we also clean out the list of example services. some seem to be broken 
by now.

..ede

On 13.01.2020 20:37, Rahkonen Jukka (MML) wrote:

>> Yes, it is fixed at least for that server.>>
>> -Jukka-
>> ________________________________________
>> Lähettäjä: edgar.sol...@web.de<mailto:edgar.sol...@web.de> 
>> <edgar.sol...@web.de<mailto:edgar.sol...@web.de>>
>> Lähetetty: 13. tammikuuta 2020 20:06
>> Vastaanottaja: Rahkonen Jukka (MML); OpenJump develop and use
>> Aihe: Re: [JPP-Devel] WMS test (fails)
>>
>> using auth i assume?! so it's fixed?. ..ede
>>
>> On 13.01.2020 17:55, Rahkonen Jukka (MML) wrote:
>>> Tried r6221, WMS of the National Land Survey works again.
>>>
>>> -Jukka-
>>>
>>> -----Alkuperäinen viesti-----
>>> Lähettäjä: edgar.sol...@web.de<mailto:edgar.sol...@web.de> 
>>> <edgar.sol...@web.de<mailto:edgar.sol...@web.de>>
>>> Lähetetty: maanantai 13. tammikuuta 2020 17.40
>>> Vastaanottaja: OpenJump develop and use
>>> <jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>>;
>>>  Rahkonen Jukka (MML)
>>> <jukka.rahko...@maanmittauslaitos.fi<mailto:jukka.rahko...@maanmittauslaitos.fi>>
>>> Aihe: Re: [JPP-Devel] WMS test (fails)
>>>
>>> Jukka,
>>>
>>> please try
>>>
>>> "
>>> Revision: 6218
>>> http://sourceforge.net/p/jump-pilot/code/6218
>>> Author: edso
>>> Date: 2020-01-13 15:38:53 +0000 (Mon, 13 Jan 2020)
>>> Log Message:
>>> -----------
>>> move WMS auth to the utility class
>>> should fix connecting WMS using authentification after adding http redirect 
>>> support "
>>> java.lang.IllegalStateException: Already connected
>>> at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(Unknown 
>>> Source)
>>> at 
>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(Unknown
>>>  Source)
>>> at 
>>> com.vividsolutions.wms.AbstractWMSRequest.prepareConnection(AbstractWMSRequest.java:80)
>>> at 
>>> com.vividsolutions.wms.AbstractWMSRequest.getConnection(AbstractWMSRequest.java:98)
>>> at 
>>> com.vividsolutions.wms.AbstractWMSRequest.getInputStream(AbstractWMSRequest.java:145)
>>> at com.vividsolutions.wms.WMService.initialize(WMService.java:141
>>> ...
>>> "
>>>
>>> On 13.01.2020 12:47, Rahkonen Jukka (MML) wrote:
>>>> Service URL appears in the message
>>>> https:// sopimus-karttakuva.maanmittauslaitos.fi
>>>>
>>>> The "already connected" error appears with any not empty user name, for 
>>>> example "foo".
>>>> Let's see how to test if you can pass this first barrier.
>>>>
>>>> -Jukka-
>>>>
>>>>
>>>> -----Alkuperäinen viesti-----
>>>> Lähettäjä: edgar.sol...@web.de<mailto:edgar.sol...@web.de> 
>>>> <edgar.sol...@web.de<mailto:edgar.sol...@web.de>>
>>>> Lähetetty: maanantai 13. tammikuuta 2020 13.36
>>>> Vastaanottaja: 
>>>> jump-pilot-devel@lists.sourceforge.net<mailto:jump-pilot-devel@lists.sourceforge.net>
>>>> Aihe: Re: [JPP-Devel] WMS test (fails)
>>>>
>>>> Jukka,
>>>>
>>>> can you send me a service url to test against privately?.. ede
>>>>
>>>> On 13.01.2020 12:32, Rahkonen Jukka (MML) wrote:
>>>>> Hi,
>>>>>
>>>>> OJ r6217 does not connect to our WMS server that requires https and basic 
>>>>> auth. Version OpenJUMP-20190228-r6144-PLUS connects fine. The error is:
>>>>>
>>>>> [INFO] 13:29:09.197 Using the system trust manager to verify certificate 
>>>>> for host 'sopimus-karttakuva.maanmittauslaitos.fi'.
>>>>> [ERROR] 13:29:09.412 Already connected
>>>>> java.lang.IllegalStateException: Already connected
>>>>> at sun.net.www.protocol.http.HttpURLConnection.setRequestProperty(Unknown 
>>>>> Source)
>>>>> at 
>>>>> sun.net.www.protocol.https.HttpsURLConnectionImpl.setRequestProperty(Unknown
>>>>>  Source)
>>>>> at 
>>>>> com.vividsolutions.wms.AbstractWMSRequest.prepareConnection(AbstractWMSRequest.java:80)
>>>>> at 
>>>>> com.vividsolutions.wms.AbstractWMSRequest.getConnection(AbstractWMSRequest.java:98)
>>>>> at 
>>>>> com.vividsolutions.wms.AbstractWMSRequest.getInputStream(AbstractWMSRequest.java:145)
>>>>> at com.vividsolutions.wms.WMService.initialize(WMService.java:141)
>>>>> at 
>>>>> com.vividsolutions.jump.workbench.ui.plugin.wms.URLWizardPanel.exitingToRight(URLWizardPanel.java:172)
>>>>> at 
>>>>> com.vividsolutions.jump.workbench.ui.wizard.WizardDialog.next(WizardDialog.java:250)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>>> at java.lang.reflect.Method.invoke(Unknown Source)
>>>>> at 
>>>>> org.openjump.swing.util.InvokeMethodRunnable.run(InvokeMethodRunnable.java:68)
>>>>> at 
>>>>> org.openjump.swing.listener.InvokeMethodActionListener.actionPerformed(InvokeMethodActionListener.java:71)
>>>>> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>>>>> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown 
>>>>> Source)
>>>>> at java.awt.Component.processMouseEvent(Unknown Source)
>>>>> at javax.swing.JComponent.processMouseEvent(Unknown Source)
>>>>> at java.awt.Component.processEvent(Unknown Source)
>>>>> at java.awt.Container.processEvent(Unknown Source)
>>>>> at java.awt.Component.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Window.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.EventQueue.access$500(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at java.awt.EventQueue.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$2.run(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$4.run(Unknown Source)
>>>>> at java.awt.WaitDispatchSupport$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at java.awt.WaitDispatchSupport.enter(Unknown Source)
>>>>> at java.awt.Dialog.show(Unknown Source)
>>>>> at java.awt.Component.show(Unknown Source)
>>>>> at java.awt.Component.setVisible(Unknown Source)
>>>>> at java.awt.Window.setVisible(Unknown Source)
>>>>> at java.awt.Dialog.setVisible(Unknown Source)
>>>>> at 
>>>>> org.openjump.core.ui.plugin.file.OpenWizardPlugIn.execute(OpenWizardPlugIn.java:99)
>>>>> at 
>>>>> com.vividsolutions.jump.workbench.plugin.AbstractPlugIn$1.actionPerformed(AbstractPlugIn.java:344)
>>>>> at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
>>>>> at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>>>>> at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown 
>>>>> Source)
>>>>> at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
>>>>> at java.awt.Component.processMouseEvent(Unknown Source)
>>>>> at javax.swing.JComponent.processMouseEvent(Unknown Source)
>>>>> at java.awt.Component.processEvent(Unknown Source)
>>>>> at java.awt.Container.processEvent(Unknown Source)
>>>>> at java.awt.Component.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>>>>> at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>>>>> at java.awt.Container.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Window.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.Component.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>>>>> at java.awt.EventQueue.access$500(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.awt.EventQueue$3.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.awt.EventQueue$4.run(Unknown Source)
>>>>> at java.security.AccessController.doPrivileged(Native Method)
>>>>> at 
>>>>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>>>>  Source)
>>>>> at java.awt.EventQueue.dispatchEvent(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>>>> at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>>>> at java.awt.EventDispatchThread.run(Unknown Source)
>>>>>
>>>>> -Jukka-
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Jump-pilot-devel mailing list
>>>>> Jump-pilot-devel@lists.sourceforge.net<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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<mailto: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