apptransferfore9.jsp
3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="weaver.general.Util,weaver.conn.RecordSet" %>
<%@ page import="weaver.integration.logging.Logger"%>
<%@ page import="weaver.integration.logging.LoggerFactory"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.IOException" %>
<%@ page import="com.alibaba.fastjson.JSON" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page import="java.io.OutputStreamWriter" %>
<%@ page import="java.net.URL" %>
<%@ page import="java.io.InputStreamReader" %>
<%@ page import="java.net.URLConnection" %>
<%
Logger log = LoggerFactory.getLogger();
RecordSet rs = new RecordSet();
String tododataid = request.getParameter("tododataid");
log.error("tododataid="+tododataid);
rs.executeQuery("select * from ofs_todo_data where id = ?",tododataid);
rs.next();
String appurlsrc = Util.null2String(rs.getString("appurlsrc"));
String sysid = rs.getString("sysid");
String userid = rs.getString("userid");
rs.executeQuery("select * from ofs_sysinfo where sysid = ?" , sysid);
if(rs.next()){
String Appprefixurl = Util.null2String(rs.getString("Appprefixurl"));
String token = "";
//TODO 1 调用e9接口获取token
OutputStreamWriter oout = null;
BufferedReader iin = null;
String result = "";
try {
// 发送请求参数
rs.executeQuery(" select loginid from hrmresource where id = ?",userid);
rs.next();
String loginid = rs.getString("loginid");
URL realUrl = new URL(Appprefixurl+"/ssologin/getToken?appid=fore9&loginid="+loginid);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("Content-Type", "application/json");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
oout = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
oout.write("");
// flush输出流的缓冲
oout.flush();
// 定义BufferedReader输入流来读取URL的响应
iin = new BufferedReader(
new InputStreamReader(conn.getInputStream(),"UTF-8"));
String line;
while ((line = iin.readLine()) != null) {
result += line;
}
token = result;
log.error("token:"+result);
} catch (Exception e) {
log.error("发送 POST 请求出现异常!",e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(oout!=null){
oout.close();
}
if(iin!=null){
iin.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
//TODO 2 拼接到token到appurl中
String tourl=Appprefixurl+appurlsrc;
String[] split = tourl.split("#");
tourl = split[0]+"&ssoToken="+token+"#"+split[1];
log.error("移动端跳转地址:"+tourl);
%>
<script type="text/javascript">
location.replace('<%=tourl%>');
</script>
<%
}else{
log.error("根据标识:"+sysid+"未查询到数据");
return;
}
%>