IBM Verse on Premises 1.0.0.1 integration with Connections Files. How to make it work – Updated
I installed Verse on Premises 1.0.0.1 in my environment but when I tried to add a link to a file in Connections when composing an email I got an error “Sorry we cannot retrieve your files at the moment”.
After a chat with my excellent friend and IBM Champion Christoph Stoettner, he found the problem and the solution.
The official documentation about integrating VoP with Connections says to add a few lines at the end of the httpd.conf file:
- Make a backup copy of httpd.conf.
- Remove any comment symbols (#) from the following lines:
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
- Find the following two lines:
LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so
WebSpherePluginConfig /opt/IBM/WebSphere/Plugins/config/webserver1/plugin-cfg.xml
Copy the following lines and paste them directly after the two lines:
RewriteEngine on
# Minor change to adjust for Cloud vs On-Premises API variation of parameter name
RewriteCond %{REQUEST_METHOD} PUT
RewriteCond %{QUERY_STRING} ^(.*)uid=(.*)
RewriteRule ^/profiles/photo.do /profiles/photo.do?%1userid=%2 [L]
# Added necessary CORS headers when Origin header present
Header unset Access-Control-Allow-Origin
SetEnvIf Origin "^https://(vop_server_hostname\.)?(domain_name)$" origin_is=$0
Header always set Access-Control-Allow-Origin %{origin_is}e env=origin_is
Header always set Access-Control-Allow-Credentials "true" env=origin_is
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, slug" env=origin_is
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" env=origin_is
Header always set Access-Control-Max-Age "1000" env=origin_is
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT" env=origin_is
# Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type, Origin, Authorization, Accept, Client-Security-Token, Accept-Encoding, slug" env=origin_is
Header always set Access-Control-Allow-Headers "X-Requested-With, Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma, slug, X-Update-Nonce" env=origin_is
Header always set Access-Control-Expose-Headers "Content-Disposition, Content-Encoding, Content-Length, Date, Transfer-Encoding, Vary, ETag, Set-Cookie, Location, Connection, X-UA-Compatible, X-LConn-Auth, X-LConn-UserId" env=origin_is
# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule .* - [R=200,L]
# Remove the Origin header if it exists for other requests (POST, GET, DELETE, PUT). Causes problems with Connections returning 403 response.
RequestHeader unset Origin env=origin_is
You have to change this line
SetEnvIf Origin "^https://(vop_server_hostname\.)?(domain_name)$" origin_is=$0
putting your server name and domain name.
Examples
vop_server_hostname = mail01
domain_name = company.com
`SetEnvIf Origin “^https://(mail01\.)?(company\.com)$” origin_is=$0`
This is not enough.
Since in the httpd.conf I use a virtual host, as is common in Connections, you need to add those lines also in the virtual host definition, so I copied them after the line
SSLProtocolDisable SSLv2 SSLv3
in the virtual host definition.
Restarted the http server and now the integration works.
UPDATE
The excellent Tim Clark, a good friend of mine and an IBM Champion, made a couple of interesting and useful suggestions in his comment to this post. I will put them here because not everyone read the comments
- It is possible to make the https optional with the following RegEx, http(s)?
So it all looks like this in the end.
`SetEnvIf Origin “^http(s)?://(mail01\.)?(company.com)$” origin_is=$0`
- you can put all the lines to copy and paste in a separate file so that you don’t have to have it listed twice in your httpd.conf file and then use an include to insret it (**twice**) where you need it.`Include “X:\IBM\HTTPServer\conf\vop.conf”`
roberto
15th February 2017
TimsterC (@TimsterC)
15th February 2017 - 20:08
So this works, so long as you edit the following line and don’t just cut and paste it without editing.
`SetEnvIf Origin “^https://(vop_server_hostname.)?(domain_name)$” origin_is=$0`
Examples
vop_server_hostname = mail01
domain_name = company.com
`SetEnvIf Origin “^https://(mail01.)?(company.com)$” origin_is=$0`
I would also recommend making the https optional with the following RegEx, http(s)?
So it all looks like this in the end.
`SetEnvIf Origin “^http(s)?://(mail01.)?(company.com)$” origin_is=$0`
Also you can put this in a separate file so that you don’t have to have it listed twice in your httpd.conf file and then use an include to inset it (**twice**) where you need it.
`Include “X:IBMHTTPServerconfvop.conf”`