2个Web应用集成问题解决
2个Web应用集成问题解决
2台机器部署了2个Web应用,A应用需要访问B应用的URL。为了保证URL不会让任意用户随便粘贴就可以访问,需要在B应用上加上filter拦截请求,并进行权限校验。A应用的URL给用户看来是一个中间跳转页面的URL。在这个中间页面,添加hidden的value,在B应用的filter端进行value的校验。代码如下:
Html代码
- <%@ page language="java" contentType="text/html;
- charset=UTF-8"
- pageEncoding="UTF-8"%>
- <html>
- <head>
- <title></title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <script type="text/javascript">
- function init(){
- document.getElementById('myForm').action="http://localhost:8080/ext2.2/Filter.jsp" document.getElementById('myForm').submit();
- }
- </script>
- </head>
- <body onload="init()">
- <form method="post" id="myForm">
- <input type="hidden" name="key" id="key" value="MERKTLTTOR">
- </form>
- </body>
- </html>
复制代码Html代码
- <%@ page language="java" contentType="text/html;
- charset=UTF-8"
- pageEncoding="UTF-8"%>
- <html>
- <head>
- <title></title>
- <meta http-equiv="pragma" content="no-cache">
- <meta http-equiv="cache-control" content="no-cache">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <script type="text/javascript">
- function init (){
- <%
- String key=request.getParameter("key");
- if(!"MERKTLTTOR".equals(key)){
- %>
- alert('不允许访问');
- <%
- }
- %>
- }
- </script>
- </head> <body onload="init()">
- <form method="post" id="myForm">
- <input type="hidden" name="key" id="key" value="MERKTLTTOR">
- </form>
- </body>
- </html>
复制代码这是filter页面,实际中可以是真正的过滤器filter。
中间页面采用post提交,用户在url中看不到提交的hidden。
中间页面的form的action可以用request.getParamter()获取
当然value可以采用一些加密算法进行加密。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论