场景描述:
最近在做项目的过程中,需要需要将odoo应用集成到其他系统中,
在对方的系统中点击我们的应用,打开对应系统,但是界面不做跳转,在当前页面打开,并且浏览器地址栏只显示IP+应用名,不让显示odoo中的action_id及menu_id等其他信息!
如何实现?
我们先来看下,odoo程序我们在浏览器访问时,通常的地址栏信息:IP+端口/web.........各种id
http://192.168.1.188:8069/web#min=1&limit=80&view_type=list&model=purchase.order&menu_id=216&action=319
当前项目集成要求我们实现如下效果:域名/应用名
http://www.xxx.com/new_app
待会我们再说具体如何实现!
假设我们可以实现,是不是就相当于,隐藏了odoo的一些信息,一定程度上提高了应用的安全性!
例如:视图ID,数据库网页管理访问,debug开发者模式等。。。
实现步骤:
具体不难,我们换个思路,部署的时候,宿主机用tomcat起web服务(ubuntu离线部署tomacat&jdk参考),然后将你的应用名,如new_app 放在webapps中,新建一个index.html静态页面,
在静态页面中,通过ifram嵌入我们的实际odoo服务地址,就可以了!!!
index.html代码样例:
<html> <head> <meta charset="utf-8" /> <title>应用名称</title> </head> <body> <iframe frameborder="0" name="Iframe1" src="http://192.168.1.188:8069" width="100%" height="100%"/> </iframe> </body> </html>
启动tomcat后,浏览访问下8080端口:
http://192.168.1.188:8080/new_app
如此我们就实现了第一步!
接着通过nginx反向代理的方式,将对方系统域(www.xxx.com)名代理到我们的应用地址(http://192.168.1.188:8080/new_app),最终实现通过访问如下地址进入我们系统:
http://www.xxx.com/new_app
试试吧!