En este post vamos a ver como configurar un servicio rest en el Ajax Proxy de Portal 8.5
- Descargar el archivo [proxy-config.xml]
- Configurar nuestro servicio en el archivo [proxy-config.xml]
- Subir el archivo [proxy-config.xml] a una carpeta propia dentro de Portal 8.5 Example: [/opt/IBM/WebSphere/wp_profile/ibmperu/] y el archivo quedaría aquí: [/opt/IBM/WebSphere/wp_profile/ibmperu/proxy-config.xml]
- Ejecutar el ConfigEngine.sh(Linux) o ConfigEngine.bat(Linux)
- Reiniciar Portal
_1. En IBM WebSphere Portal 8.5, ingresar vía WinSCP a la ruta y descargar el archivo [/opt/IBM/WebSphere/wp_profile/config/cells/redhat01Cell/applications/AJAX Proxy Configuration.ear/deployments/AJAX Proxy Configuration/wp.proxy.config.war/WEB-INF/proxy-config.xml]
_2. Configuramos el servicio rest en
Yo dispongo de un servicio rest: [https://arquitecturaibm.com/demos/rest/rest_get_example_wps85.php] y al acceder por GET devuelve lo siguiente
Editar el archivo [proxy-config.xml] y solo agregamos lo resaltado en amarillo, debería quedar así. Igual adjunto el xml (proxy-config-custom.zip)
_3. Subir el archivo a [/opt/IBM/WebSphere/wp_profile/ibmperu] y debería quedar así
_4. Ahora ejecutar el comando
cd /wp_profile/ConfigEngine/
./ConfigEngine.sh -DWasPassword=wpsadmin -DPortalAdminPwd=wpsadmin checkin-wp-proxy-config -DProxyConfigFileName=/opt/IBM/WebSphere/wp_profile/ibmperu/proxy-config.xml
_5. Reiniciar Portal
_6. Probando
Usuarios anonimos
http://192.168.227.144:10039/wps/proxy/http/arquitecturaibm.com/demos/rest/rest_get_example_wps85.php
Usuarios autenticados
http://192.168.227.144:10039/wps/myproxy/http/arquitecturaibm.com/demos/rest/rest_get_example_wps85.php
Escenario 1:
Tenemos un Script Portlet que quiere consumir directamente el servicio rest apuntando a [https://arquitecturaibm.com/demos/rest/rest_get_example_wps85.php], al querer consumir le saldrá un error de cross-origin
La primera alternativa de solución sería poner en el header del servicio rest lo siguiente [header(‘Access-Control-Allow-Origin: *’);] y con eso ya no tendríamos temas de cross-origin. Pero lamentablemente cuando no tenemos control del servicio rest no podremos hacer nada.
La mejor alternativa es configurar el servicio en el proxy de Portal como lo hemos hecho y tendríamos este codigo
¿Qué más con el Ajax Proxy de Portal 8.5?
- Podemos configurar http-basic vía credential-vault de Portal
- Podemos configurar HTTPS
- Podemos configurar Cookies
- Podemos configurar GET, POST, HEAD, DELETE, PUT
- Podemos configurar meta-data
- Podemos configurar el mime-type de comunicación
Fuentes
- https://www.ibm.com/support/knowledgecenter/en/SS6KJL_8.5.0/FEB/in_portlet_before_you_install_feb_portlet.html
- https://portal2portal.blogspot.pe/2013/01/testing-ajax-proxy-in-websphere.html
- http://portalkrishna.blogspot.pe/2014/10/configuring-ajax-proxy-in-websphere.html
- https://www.youtube.com/watch?v=3vUjvVZupxs