cas-entrance.jsp 2.55 KB
<%@ page import="weaver.general.Util" %>
<%@ page import="java.net.URL" %>
<%@ page import="weaver.integration.logging.Logger" %>
<%@ page import="weaver.integration.logging.LoggerFactory" %>
<%@ page import="weaver.general.BaseBean" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%
    Logger logger = LoggerFactory.getLogger(getClass());
    String path = Util.null2String( request.getParameter("path"));
    logger.info("============path:" + path);

    if (path.indexOf("http") >= 0 || path.indexOf("https") >= 0) {
        String serverName = request.getServerName();
        URL url = new URL(path);
        String host = url.getHost();
        if (!serverName.equals(host)) {
            response.sendRedirect("/notice/noright.jsp");
            return;
        }
        if (path.contains("ssoType=OAUTH2")) {
            //OAUTH2认证
            BaseBean bb = new BaseBean();
            String isuse = bb.getPropValue("oauth2", "isuse");
            if ("1".equals(isuse)) {
                String access_token_parameter_name = bb.getPropValue("oauth2", "access_token_parameter_name");
                String ref = url.getRef();
                logger.info("===========#后面的东东:" + ref);

                if (path.contains("#") && ref.contains(access_token_parameter_name + "=")) {
                    int start = ref.indexOf(access_token_parameter_name + "=") + access_token_parameter_name.length() + 1;
                    String token = ref.substring(start, ref.length());
                    logger.info("==========token:" + token);
                    String query = url.getQuery();
                    if (query == null) {
                        query = "?" + access_token_parameter_name + "=" + token;
                    } else {
                        query += "&" + access_token_parameter_name + "=" + token;
                    }
                    String port = ":" + request.getServerPort();
                    if (request.getServerPort() == 80) {
                        port = "";
                    }
                    String newPath = request.getProtocol() + "://" + serverName + port + url.getPath() + query + "#" + url.getRef();
                    logger.info("==========oauth2 newPath:" + newPath);
                    path = newPath;
                }
            }

        }

    }

    if (path != null && path.endsWith("/wui/index.html")) {
        path = path.substring(0, path.indexOf("/wui/index.html")) + "/wui/index.html#/main";
    }

%>

<script type="text/javascript">
  window.location.href = unescape("<%=path%>");
</script>