apptransferfore9.jsp 3.59 KB
<%@ 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;
    }
%>