后台登录第三方系统并将状态返回到前台继续使用

现象描述

前台需要为用户提供免密登录聊天工具,随用随登录,可随时退出。登录时后台返回密文到前台,前台解析成明文,以请求第三方jsp的方式登录到产品elink的Web端,elink启动Web端聊天程序。

方案有三个:

将请求jsp登录的方式放到后台处理,需要调整这部分逻辑

类似于单点登录
实际开发:
使用URLConnection建立连接。因为是GET请求,所以在后台从session中获取账号信息拼接路径。

URL realUrl = new URL(s);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();

获取请求头中的必要信息

//取cookie
String key;
String sessionId="";
String cookieVal = null;
for(int i = 1; (key = connection.getHeaderFieldKey(i)) != null; i++){
	if(key.equalsIgnoreCase("set-cookie")){
			String headerField = connection.getHeaderField(i);
		if(headerField.indexOf("JSESSIONID")>-1) {
			cookieVal = headerField.split("=")[1];
		}else if(headerField.indexOf("SERVERID")>-1){
		sessionId = headerField.split("=")[1];
		}
	}
}

设置响应的cookie,至关重要的一步

Cookie cookie = new Cookie("JSESSIONID",cookieVal);
response.addCookie(cookie);
Cookie sessionIdc = new Cookie("SERVERID",sessionId);
response.addCookie(sessionIdc);

最后记得关闭流

两方联调,统一加密方式使用加密后的信息通信,保证前台用户信息为密文

加密传输
页面需要保存加密后的账号信息。

仅在用户登录系统时登陆一次,限时保持连接。

页面,session中不用保存账号信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值