[Paraview] Paraview Web with SSL

Daniel Zuidinga info at seoaachen.de
Thu Aug 25 03:20:41 EDT 2016


I allowed read/write permissions for proxy.txt for all. Now it works! 
Thank you very much. I hope I can contribute to paraview web when I am 
more into it.

Am 25.08.2016 um 01:19 schrieb Sebastien Jourdain:
> Looking at your system log you may have some hints on what is going 
> wrong. (Still leaning toward file system security issue)
>
> The sessionId could still be sent back but if the launcher can not 
> write that file, then apache could not figure out its mapping.
>
> What linux version are you running it on?
>
>
> On Wed, Aug 24, 2016 at 4:12 PM, Daniel Zuidinga <info at seoaachen.de 
> <mailto:info at seoaachen.de>> wrote:
>
>     yes that file has contents. otherwise the sessionID also wouldn't
>     be send back?
>
>     any ideas how to fix the ws communication?
>
>
>     Am 24.08.2016 um 23:44 schrieb Sebastien Jourdain:
>>     Yes it seems the ws forwarding is not working.
>>
>>     if you cat that file you should see some content with that id and
>>     a host/port that apache should use to connect to the server that
>>     is running paraview.
>>
>>     Otherwise the documentation (link that I previously gave) explain
>>     how to use unix group and setup the appropriate rights to that
>>     file so apache can read while the launcher can write.
>>
>>     On Wed, Aug 24, 2016 at 3:01 PM, Daniel Zuidinga
>>     <info at seoaachen.de <mailto:info at seoaachen.de>> wrote:
>>
>>         how can I check?
>>
>>         The sessionID is sent to the client. So as far as I
>>         understand the http requests work, but not the ws?
>>
>>
>>
>>         Am 24.08.2016 um 22:52 schrieb Sebastien Jourdain:
>>>         Are you sure apache has the right to read the
>>>         /home/daniel/proxy.txt while the launcher is writting it?
>>>
>>>         Do you see some content that match your sessionId within
>>>         that file?
>>>
>>>         On Wed, Aug 24, 2016 at 1:57 PM, Daniel Zuidinga
>>>         <info at seoaachen.de <mailto:info at seoaachen.de>> wrote:
>>>
>>>
>>>             I changed sessionManagerURL in my html file to
>>>             vtkWeb.properties.sessionManagerURL instead of
>>>             http://localhost:8080/paraview. Now I get in firefox:
>>>
>>>             Use of getPreventDefault() is deprecated.  Use
>>>             defaultPrevented instead. jquery-1.8.3.min.js:2:0
>>>             GET
>>>             http://localhost/proxy [HTTP/1.1 400 Bad Request 16ms]
>>>             null Visualizer:42:13
>>>             Firefox can't establish a connection to the server at
>>>             ws://localhost/proxy?sessionId=7d12745c-6a34-11e6-a5dc-0016d4e2bc28.
>>>             autobahn.min.js:114:0
>>>             GET
>>>             http://localhost/proxy [HTTP/1.1 400 Bad Request 2ms]
>>>             null
>>>
>>>             ...I think one more thing is needed.
>>>
>>>
>>>
>>>             Am 24.08.2016 um 21:51 schrieb Daniel Zuidinga:
>>>>             I had wrong paths in my launcher.config properties.
>>>>             Now the request gets through and the vtk window opens.
>>>>             But I have still the ws error. Firefox console:
>>>>
>>>>             Firefox can't establish a connection to the server at
>>>>             ws://localhost/ws. autobahn.min.js:114:0
>>>>             null Visualizer:42:13
>>>>             Use of getPreventDefault() is deprecated.  Use
>>>>             defaultPrevented instead. jquery-1.8.3.min.js:2:0
>>>>             No launcher found. Attempting to connect using the
>>>>             direct WS url. vtkweb-all.js:4456:19
>>>>
>>>>             --- vtk window opens, then:
>>>>
>>>>             Cross-Origin Request Blocked: The Same Origin Policy
>>>>             disallows reading the remote resource at
>>>>             http://localhost:8080/paraview. (Reason: CORS header
>>>>             'Access-Control-Allow-Origin' missing). <unknown>
>>>>             GET
>>>>             http://localhost/ws [HTTP/1.1 404 Not Found 2ms]
>>>>             null Visualizer:42:13
>>>>             Firefox can't establish a connection to the server at
>>>>             ws://localhost/ws.
>>>>
>>>>
>>>>             Am 24.08.2016 um 19:18 schrieb Sebastien Jourdain:
>>>>>             Actually the hostname might be an issue if you have
>>>>>             several network card.
>>>>>             Can you try to use the computer IP? Or '0.0.0.0' for
>>>>>             the launcher if that work?
>>>>>
>>>>>             Otherwise I did not spotted any issue in your config.
>>>>>
>>>>>             On Wed, Aug 24, 2016 at 11:14 AM, Daniel Zuidinga
>>>>>             <info at seoaachen.de <mailto:info at seoaachen.de>> wrote:
>>>>>
>>>>>                 - apache 2.4.12
>>>>>                 - modules are enabled
>>>>>                 - launcher.py launches without error, resrouces
>>>>>                 and apps section are in the config file as
>>>>>                 described in the documentation
>>>>>                 are all ports and hostnames right in my
>>>>>                 configuration files? apache is localhost and
>>>>>                 paraview also
>>>>>
>>>>>
>>>>>                 Am 24.08.2016 um 16:22 schrieb Sebastien Jourdain:
>>>>>>                 Hi Daniel,
>>>>>>
>>>>>>                 Which version of Apache are you running?
>>>>>>
>>>>>>                 Did you enabled all the modules?
>>>>>>
>>>>>>                 $ sudo a2enmod vhost_alias
>>>>>>                 $ sudo a2enmod proxy
>>>>>>                 $ sudo a2enmod proxy_http
>>>>>>                 $ sudo a2enmod proxy_wstunnel
>>>>>>                 $ sudo a2enmod rewrite
>>>>>>
>>>>>>                 For the launcher configuration, do you have a
>>>>>>                 proper "resources" and "apps" section?
>>>>>>
>>>>>>                 I'm guessing you are looking at the following
>>>>>>                 documentation pages?
>>>>>>
>>>>>>                 -
>>>>>>                 https://kitware.github.io/paraviewweb/docs/guides/apache_front_end.html
>>>>>>                 <https://kitware.github.io/paraviewweb/docs/guides/apache_front_end.html>
>>>>>>                 -
>>>>>>                 https://kitware.github.io/paraviewweb/docs/guides/python_launcher.html
>>>>>>                 <https://kitware.github.io/paraviewweb/docs/guides/python_launcher.html>
>>>>>>
>>>>>>                 Once you have the forwarding of the launcher
>>>>>>                 request working, the next part will be the
>>>>>>                 forwarding of the ws. But we can talk about it
>>>>>>                 when and if you run into issue about it.
>>>>>>
>>>>>>                 Seb
>>>>>>
>>>>>>                 On Wed, Aug 24, 2016 at 2:22 AM, Daniel Zuidinga
>>>>>>                 <info at seoaachen.de <mailto:info at seoaachen.de>> wrote:
>>>>>>
>>>>>>                     I tried to run the launcher as described in
>>>>>>                     the docs. But I am still getting errors when
>>>>>>                     running http://localhost/apps/Visualizer/
>>>>>>                     <http://localhost/apps/Visualizer/>
>>>>>>
>>>>>>                     Firefox console:
>>>>>>
>>>>>>                     -------------------------------
>>>>>>
>>>>>>                     1. when setting sessionManagerURL in html set
>>>>>>                     to vtkWeb.properties.sessionManagerURL:
>>>>>>
>>>>>>                     POST
>>>>>>                     XHR
>>>>>>                     http://localhost/paraview/ [HTTP/1.1 503
>>>>>>                     Service Unavailable 48ms]
>>>>>>                     Object { error: "The process did not properly
>>>>>>                     start.…" } Visualizer:42:13
>>>>>>
>>>>>>
>>>>>>                     2. when setting sessionManagerURL in html to
>>>>>>                     http://localhost:8080/paraview:
>>>>>>
>>>>>>                     Firefox can't establish a connection to the
>>>>>>                     server at ws://localhost/ws.
>>>>>>                     autobahn.min.js:114:0
>>>>>>                     null Visualizer:42:13
>>>>>>                     No launcher found. Attempting to connect
>>>>>>                     using the direct WS url. vtkweb-all.js:4456:19
>>>>>>                     Use of getPreventDefault() is deprecated. Use
>>>>>>                     defaultPrevented instead. jquery-1.8.3.min.js:2:0
>>>>>>                     Cross-Origin Request Blocked: The Same Origin
>>>>>>                     Policy disallows reading the remote resource
>>>>>>                     at http://localhost:8080/paraview. (Reason:
>>>>>>                     CORS header 'Access-Control-Allow-Origin'
>>>>>>                     missing). <unknown>
>>>>>>                     GET
>>>>>>                     http://localhost/ws [HTTP/1.1 404 Not Found 12ms]
>>>>>>                     null
>>>>>>
>>>>>>
>>>>>>                     So the launcher can't start the pv webserver?
>>>>>>                     But running http://localhost:8080/paraview/1
>>>>>>                     <http://localhost:8080/paraview/1> in browser
>>>>>>                     works but says: {"error": "No session with
>>>>>>                     id: 1"}
>>>>>>
>>>>>>
>>>>>>                     My apache config:
>>>>>>
>>>>>>                     -----------------------------
>>>>>>
>>>>>>                     <VirtualHost *:80>
>>>>>>                         ServerName localhost
>>>>>>                     ServerAdmin info at seoaachen.de
>>>>>>                     <mailto:info at seoaachen.de>
>>>>>>                     DocumentRoot
>>>>>>                     /home/daniel/salome_meca/V2016/prerequisites/Paraview-v501_EDF/share/paraview-5.0/www
>>>>>>                         ErrorLog "logs/pv-error_log"
>>>>>>                         CustomLog "logs/pv-access_log" common
>>>>>>                         ### The following commented lines could
>>>>>>                     be useful when running
>>>>>>                         ### over https and wss:
>>>>>>                         # SSLEngine On
>>>>>>                         # SSLCertificateFile
>>>>>>                     /etc/apache2/ssl/your_certificate.crt
>>>>>>                         # SSLCertificateKeyFile
>>>>>>                     /etc/apache2/ssl/your_domain_key.key
>>>>>>                         # SSLCertificateChainFile
>>>>>>                     /etc/apache2/ssl/DigiCertCA.crt
>>>>>>                         #
>>>>>>                         # <Location ${MY-DOCUMENT-ROOT} >
>>>>>>                         # SSLRequireSSL On
>>>>>>                         # SSLVerifyClient optional
>>>>>>                         # SSLVerifyDepth 1
>>>>>>                         # SSLOptions +StdEnvVars +StrictRequire
>>>>>>                         # </Location>
>>>>>>                         # Have Apache pass these requests to the
>>>>>>                     launcher :9000
>>>>>>                         ProxyPass /paraview
>>>>>>                     http://localhost:8080/paraview
>>>>>>                         # Turn on the rewrite engine
>>>>>>                     RewriteEngine On
>>>>>>                         # This is the path the mapping file Jetty
>>>>>>                     creates
>>>>>>                         RewriteMap session-to-port
>>>>>>                     txt:/home/daniel/proxy.txt
>>>>>>                         # This is the rewrite condition. Look for
>>>>>>                     anything with a sessionId= in the query part
>>>>>>                     of the URL and capture the value to use below.
>>>>>>                     RewriteCond %{QUERY_STRING} ^sessionId=(.*)$ [NC]
>>>>>>                         # This does the rewrite using the mapping
>>>>>>                     file and the sessionId
>>>>>>                     RewriteRule ^/proxy.*$
>>>>>>                     ws://${session-to-port:%1}/ws  [P]
>>>>>>                     <Directory
>>>>>>                     "/home/daniel/salome_meca/V2016/prerequisites/Paraview-v501_EDF/share/paraview-5.0/www">
>>>>>>                     Options Indexes FollowSymLinks
>>>>>>                             Order allow,deny
>>>>>>                             Allow from all
>>>>>>                     AllowOverride None
>>>>>>                     Require all granted
>>>>>>                     </Directory>
>>>>>>                     </VirtualHost>
>>>>>>
>>>>>>
>>>>>>
>>>>>>                     my launcher.json
>>>>>>
>>>>>>                     ----------------------------
>>>>>>
>>>>>>                      "configuration": {
>>>>>>                     "host" : "localhost",
>>>>>>
>>>>>>                     "port" : 8080,
>>>>>>                     "endpoint": "paraview",
>>>>>>                     "content": "/.../www",
>>>>>>                     "proxy_file" : "/home/daniel/proxy.txt",
>>>>>>                     "sessionURL":
>>>>>>                     "ws://localhost/proxy?sessionId=${id}",
>>>>>>
>>>>>>                     "timeout" : 25,
>>>>>>                     "log_dir" : "/home/daniel",
>>>>>>                     "upload_dir" : "/home/daniel",
>>>>>>                     "fields" : ["file", "host", "port", "updir"]
>>>>>>                             },
>>>>>>
>>>>>>
>>>>>>                     What am I doing wrong?
>>>>>>
>>>>>>
>>>>>>                     Daniel Zuidinga
>>>>>>                     Dipl.-Ing.
>>>>>>
>>>>>>                     SEO Aachen
>>>>>>                     Passstr. 5
>>>>>>                     52070 Aachen
>>>>>>
>>>>>>                     Tel   : 0241 / 450 912 67
>>>>>>                     E-Mail:info at seoaachen.de <mailto:info at seoaachen.de>
>>>>>>                     Web   :http://www.seoaachen.de  (nur zum Teil aktuell)
>>>>>>                     Xing  :https://www.xing.com/profile/Daniel_Zuidinga
>>>>>>                     <https://www.xing.com/profile/Daniel_Zuidinga>
>>>>>>
>>>>>>                     Bald online: Software Tools für Konstrukteure und Bauteilhersteller
>>>>>>                     http://www.engineeringonline.de
>>>>>>                     <http://www.engineeringonline.de>
>>>>>>
>>>>>>                     Am 22.08.2016 um 22:32 schrieb Sebastien
>>>>>>                     Jourdain:
>>>>>>>                     Hi Daniel,
>>>>>>>
>>>>>>>                         I want to use paraview web with SSL. As
>>>>>>>                         far as I understand I need apache as a
>>>>>>>                         proxy server for that? Or is it possible
>>>>>>>                         with pvpython? 
>>>>>>>
>>>>>>>                     It might be possible with pvpython, but I've
>>>>>>>                     never done it, I've always used apache to
>>>>>>>                     rely on a single opened port and handle the
>>>>>>>                     encryption.
>>>>>>>
>>>>>>>                         I have my own launcher which opens
>>>>>>>                         pvpython with a different port for each
>>>>>>>                         user. Is this the right way? Will this
>>>>>>>                         work with ssl? 
>>>>>>>
>>>>>>>                     If pvpython directly support the wss
>>>>>>>                     connection, you can be good. Usually the
>>>>>>>                     setup, that I do is that I have Apache
>>>>>>>                     serving only the port 443 (https) for both
>>>>>>>                     the static content and the (wss) websocket
>>>>>>>                     endpoint. And I use a mapping file between
>>>>>>>                     the Websocket endpoint that get returned by
>>>>>>>                     my launcher and the host/port I should
>>>>>>>                     connect to on the backend to establish the
>>>>>>>                     link between the client and the actual
>>>>>>>                     ParaViewWeb server instance.
>>>>>>>                     But that does not mean, that's the only way
>>>>>>>                     to do it and if you don't mind having
>>>>>>>                     several port open, I don't see why it could
>>>>>>>                     not work.
>>>>>>>
>>>>>>>                         Concerning:
>>>>>>>                         https://kitware.github.io/visualizer/docs/
>>>>>>>                         <https://kitware.github.io/visualizer/docs/>
>>>>>>>                         The web visuailzer should work via npm
>>>>>>>                         installation? It does not work for me:
>>>>>>>                         C:\Users\danie\AppData\Roaming\npm\node_modules\pvw-visualizer\bin\pvw-visualizer-cli.js:41
>>>>>>>                         var pvPythonExecs =
>>>>>>>                         find(paraview).filter(function(file) {
>>>>>>>                         return file.match(/pvpython$/) ||
>>>>>>>                         file.match(/pvpython.exe$/); });        
>>>>>>>                                                    ^ TypeError:
>>>>>>>                         find(...).filter is not a function    
>>>>>>>                         at Object.<anonymous>
>>>>>>>                         (C:\Users\danie\AppData\Roaming\npm\node_modules\pvw-visualizer\bin\pvw-visualizer-cli.js:41:36)
>>>>>>>                             at Module._compile
>>>>>>>                         (module.js:409:26)     at
>>>>>>>                         Object.Module._extensions..js
>>>>>>>                         (module.js:416:10)     at Module.load
>>>>>>>                         (module.js:343:32)     at
>>>>>>>                         Function.Module._load (module.js:300:12)
>>>>>>>                             at Function.Module.runMain
>>>>>>>                         (module.js:441:10)     at startup
>>>>>>>                         (node.js:139:18)     at node.js:968:3 
>>>>>>>
>>>>>>>                     Well, I guess I haven't tried to run the new
>>>>>>>                     Visualizer server on a Windows machine.
>>>>>>>                     But with ParaView 5.2 (yet to be released),
>>>>>>>                     we should have a ParaViewWeb back in the
>>>>>>>                     binaries. So we should make sure our
>>>>>>>                     Visualizer command line tool work on that
>>>>>>>                     platform as well.
>>>>>>>                     Although, the command line is more for
>>>>>>>                     beginners than anything else as it only
>>>>>>>                     simplify the demo usage. In real word
>>>>>>>                     deployment, with a launcher, the true
>>>>>>>                     pvpython command line should be used instead.
>>>>>>>                     Here is an example of what you should see in
>>>>>>>                     a working environment:
>>>>>>>                     $ Visualizer -d ~/Downloads/
>>>>>>>                     ===============================================================================
>>>>>>>                     | Execute:
>>>>>>>                     | $
>>>>>>>                     /Applications/paraview.app/Contents/bin/pvpython
>>>>>>>                     |   -dr
>>>>>>>                     |
>>>>>>>                     /Users/seb/Documents/code/Web2/visualizer/server/pvw-visualizer.py
>>>>>>>                     |   --content
>>>>>>>                     |  
>>>>>>>                     /Users/seb/Documents/code/Web2/visualizer/dist
>>>>>>>                     |   --port
>>>>>>>                     |   8080
>>>>>>>                     |   --data
>>>>>>>                     |   /Users/seb/Downloads/
>>>>>>>                     ===============================================================================
>>>>>>>                     [...]
>>>>>>>                     -- Daniel Zuidinga Dipl.-Ing. SEO Aachen
>>>>>>>                     Passstr. 5 52070 Aachen Tel   : 0241 / 450
>>>>>>>                     912 67 E-Mail: info at seoaachen.de
>>>>>>>                     <mailto:info at seoaachen.de> Web   :
>>>>>>>                     http://www.seoaachen.de (nur zum Teil
>>>>>>>                     aktuell) Xing  :
>>>>>>>                     https://www.xing.com/profile/Daniel_Zuidinga
>>>>>>>                     <https://www.xing.com/profile/Daniel_Zuidinga>
>>>>>>>                     Bald online: Software Tools für
>>>>>>>                     Konstrukteure und Bauteilhersteller
>>>>>>>                     http://www.engineeringonline.de
>>>>>>>                     <http://www.engineeringonline.de>
>>>>>>>                     _______________________________________________
>>>>>>>                     Powered by www.kitware.com
>>>>>>>                     <http://www.kitware.com> Visit other Kitware
>>>>>>>                     open-source projects at
>>>>>>>                     http://www.kitware.com/opensource/opensource.html
>>>>>>>                     <http://www.kitware.com/opensource/opensource.html>
>>>>>>>                     Please keep messages on-topic and check the
>>>>>>>                     ParaView Wiki at:
>>>>>>>                     http://paraview.org/Wiki/ParaView
>>>>>>>                     <http://paraview.org/Wiki/ParaView> Search
>>>>>>>                     the list archives at:
>>>>>>>                     http://markmail.org/search/?q=ParaView
>>>>>>>                     <http://markmail.org/search/?q=ParaView>
>>>>>>>                     Follow this link to subscribe/unsubscribe:
>>>>>>>                     http://public.kitware.com/mailman/listinfo/paraview
>>>>>>>                     <http://public.kitware.com/mailman/listinfo/paraview>
>>>>>>>
>>>>>>
>>>>             _______________________________________________
>>>>             Powered bywww.kitware.com <http://www.kitware.com>
>>>>
>>>>             Visit other Kitware open-source projects athttp://www.kitware.com/opensource/opensource.html
>>>>             <http://www.kitware.com/opensource/opensource.html>
>>>>
>>>>             Please keep messages on-topic and check the ParaView Wiki at:http://paraview.org/Wiki/ParaView
>>>>             <http://paraview.org/Wiki/ParaView>
>>>>
>>>>             Search the list archives at:http://markmail.org/search/?q=ParaView
>>>>             <http://markmail.org/search/?q=ParaView>
>>>>
>>>>             Follow this link to subscribe/unsubscribe:
>>>>             http://public.kitware.com/mailman/listinfo/paraview
>>>>             <http://public.kitware.com/mailman/listinfo/paraview>
>>>
>>>             _______________________________________________ Powered
>>>             by www.kitware.com <http://www.kitware.com> Visit other
>>>             Kitware open-source projects at
>>>             http://www.kitware.com/opensource/opensource.html
>>>             <http://www.kitware.com/opensource/opensource.html>
>>>             Please keep messages on-topic and check the ParaView
>>>             Wiki at: http://paraview.org/Wiki/ParaView
>>>             <http://paraview.org/Wiki/ParaView> Search the list
>>>             archives at: http://markmail.org/search/?q=ParaView
>>>             <http://markmail.org/search/?q=ParaView> Follow this
>>>             link to subscribe/unsubscribe:
>>>             http://public.kitware.com/mailman/listinfo/paraview
>>>             <http://public.kitware.com/mailman/listinfo/paraview> 
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20160825/1c7c3f46/attachment.html>


More information about the ParaView mailing list