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;
    }
%>