2个Web应用集成问题解决

开发 前端
为了保证URL不会让任意用户随便粘贴就可以访问,需要在B应用上加上filter拦截请求,并进行权限校验。A应用的URL给用户看来是一个中间跳转页面的URL。本文就主要介绍关于2个Web应用集成问题解决。

2台机器部署了2个Web应用,A应用需要访问B应用的URL。为了保证URL不会让任意用户随便粘贴就可以访问,需要在B应用上加上filter拦截请求,并进行权限校验。A应用的URL给用户看来是一个中间跳转页面的URL。在这个中间页面,添加hidden的value,在B应用的filter端进行value的校验。代码如下:

Html代码

  1. <%@ page language="java" contentType="text/html;   
  2.  
  3. charset=UTF-8"  
  4.     pageEncoding="UTF-8"%> 
  5. <html> 
  6.     <head> 
  7.         <title></title> 
  8.         <meta http-equiv="pragma" content="no-cache"> 
  9.         <meta http-equiv="cache-control" content="no-cache"> 
  10.         <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
  11.  
  12.         <script type="text/javascript"> 
  13.         function init(){  
  14.             document.getElementById('myForm').action="http://localhost:8080/ext2.2/Filter.jsp" 
  15.             document.getElementById('myForm').submit();  
  16.         }  
  17.         </script> 
  18.     </head> 
  19.     <body onload="init()"> 
  20.         <form method="post" id="myForm"> 
  21.             <input type="hidden" name="key" id="key" value="MERKTLTTOR"> 
  22.         </form> 
  23.     </body> 
  24. </html> 

Html代码

  1. <%@ page language="java" contentType="text/html;   
  2.  
  3. charset=UTF-8"  
  4.     pageEncoding="UTF-8"%> 
  5. <html> 
  6.     <head> 
  7.         <title></title> 
  8.         <meta http-equiv="pragma" content="no-cache"> 
  9.         <meta http-equiv="cache-control" content="no-cache"> 
  10.         <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
  11.  
  12.         <script type="text/javascript"> 
  13.         function init (){  
  14.             <%  
  15.             String key=request.getParameter("key");  
  16.             if(!"MERKTLTTOR".equals(key)){  
  17.             %> 
  18.                 alert('不允许访问');  
  19.             <%  
  20.             }  
  21.             %> 
  22.         }  
  23.         </script> 
  24.     </head> 
  25. <body onload="init()"> 
  26.         <form method="post" id="myForm"> 
  27.             <input type="hidden" name="key" id="key" value="MERKTLTTOR"> 
  28.         </form> 
  29.     </body> 
  30. </html> 

这是filter页面,实际中可以是真正的过滤器filter。

中间页面采用post提交,用户在url中看不到提交的hidden。

中间页面的form的action可以用request.getParamter()获取

当然value可以采用一些加密算法进行加密。

原文链接:http://liwenjie.javaeye.com/blog/919015

【编辑推荐】

  1. 移动Web应用开发的现状与未来
  2. 2011 Web设计的10大趋势
  3. 浅谈Python Web的五大框架
  4. Web开发者爱不释手的18款超赞jQuery插件
  5. 浅谈Web标准、可用性、可访问性
责任编辑:陈贻新 来源: liwenjie博客
相关推荐

2010-04-13 14:25:24

Oracle问题解决

2009-03-06 10:10:00

广播风暴网络

2009-06-19 11:16:14

java web中文乱码

2011-06-13 16:16:32

Qt 中文问题

2011-06-27 16:44:59

Qmake

2010-04-28 18:01:15

Unix系统

2010-06-17 11:35:24

Ubuntu 修复Gr

2011-09-05 18:57:36

MTKJ2ME

2011-11-28 22:45:19

Nginxsession

2010-05-05 10:25:24

Unix操作系统

2009-12-28 10:56:45

WPF Image

2014-04-21 15:59:59

iOS 7.1企业应用证书无效

2012-05-09 10:08:41

跨机房

2010-05-05 14:20:46

AIX CDE

2011-01-21 14:13:10

2013-12-19 09:49:42

云计算集成云集成云连接器

2009-12-09 17:30:53

NETCORE路由器

2013-01-08 17:30:31

Google MapsAndroid MapMapFragment

2010-07-29 15:28:47

Flex安全沙箱

2010-03-30 16:04:34

Linux Nginx
点赞
收藏

51CTO技术栈公众号