实现多后台跳转自动登录

场景

有几十个后台,每次都需要找地址,再输入账号登录且所有的后台账号密码相同,仅仅是地址不同。且后台都是在不同的服务器上,需要的仅仅是一个跳板机管理而已

实现思路

将地址分类,利用select下拉框决定地址,添加输入框接收账号密码 ,提交的时候向选定地址跳转并实现自动登录到管理页面

具体实现

地址选定很简单就不赘述了,主要在如何发送请求并跳转,java是不能直接像浏览器直接请求然后跳转,而且会有各种问题,跨域,session过期等等,如果有人知道怎么用java实现麻烦教我一下。先看关键代码 js,利用js伪造表单提交

function sta(data){
        window.location=data;
        function PostSubmit() {
            var postUrl =  data;//提交地址
            var loginName = document.getElementById("loginName").value;//获取账号
            var password=document.getElementById("password").value;//获取密码
            var ExportForm = document.createElement("FORM");//创建一个表单属性
            document.body.appendChild(ExportForm);//添加一个节点
            ExportForm.method = "POST";//设置表单的提交方式
            var newElement = document.createElement("input");//创建输入框
            newElement.setAttribute("name", "loginName");//设置输入框属性,这个name 一般情况下要和原登录后台接收账号的输入框相同
            newElement.setAttribute("type", "hidden");//设置类型

            var newElement2 = document.createElement("input");//同理
            newElement2.setAttribute("name", "password");
            newElement2.setAttribute("type", "hidden");
            ExportForm.appendChild(newElement);//把属性添加进表单
            ExportForm.appendChild(newElement2);
            newElement.value = loginName;//设置属性值
            newElement2.value = password;
            ExportForm.action = postUrl;//提交地址
            ExportForm.submit();//提交动作
        };

这是什么原理呢?
其实也很简单,仔细分析下,请求到最后登录的流程,简单来说就几步,从页面接收到需要的参数,然后通过Ajax或者form表单等等提交,再由后台服务器对数据进行校验,在跳转或者其他操作。再简化点,我们需要做的就是获取参数再提交,参数获取好解决,重点在怎么提交。现在就直接在浏览器模拟出表单及参数提交等要素,就能成功发送数据外加跳转。

java模拟post提交也是同理,但是java模拟提交时只能获得响应内容,无法对浏览器的跳转等操作进行相同的复制操作。

如果有缺点,或者更好的解决办法务必联系我,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值