2

来源:互联网 发布:北京编程培训机构 编辑:程序博客网 时间:2024/04/19 07:05

package isps.security.servlet;
/**
 * IsCardSvlt.java
 * Creator : Kim,Younghwan
 * Created Date : 2007.04.12
 * Modifier :
 * Modified Date :
 * Description : 出入증관리
 */


import isps.common.log.Log;
import isps.common.servlet.AbstractServlet;
import isps.common.util.ComUtil;
import isps.security.service.IsComSessionService;
import isps.security.vo.common.IsComSessionVO;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Hashtable;
import java.util.StringTokenizer;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class IsComSessionSvlt extends AbstractServlet
{

 private static final long serialVersionUID = -4555140650329932848L;

 /**
  * Method : doPost
  * Input : HttpServletRequest req, HttpServletResponse res
  * Output : void
  * Description : 사용자 Session 생성
  */
 
 public void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
 {

          Log.debug("---------------------------------------------------");
          Log.debug("  START <=== [EpConnectServlet/doPost] ===> START  ");
          Log.debug("---------------------------------------------------");

          RequestDispatcher   rd      = null;
          String              url     = "";
          String              actKey  = "";
    //String              param   = "";
          String              errMsg  = "";
          String[]            ipInfo  = null;
          HttpSession         session = null;
          IsComSessionVO UsrSession =  null;
          //PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);

          try
          {
     url = ComUtil.checkString(req.getParameter("URL"));
     Log.debug("IsComSessionSvlt.service() replace before url["+url+"]");
     url = ComUtil.replace(url, "|", "&");
     Log.debug("IsComSessionSvlt.service() replace after url["+url+"]");
     actKey = ComUtil.checkString(req.getParameter("_ACT"));
              //----------------------------------------------------
              // url이 존재하면 Session 정보를 생성해서
              // 해당 url로 forwarding한다.
              //----------------------------------------------------
     if (!url.equals(""))
     {
      UsrSession = new IsComSessionVO();
      String retValue = setUsrSessionSso(req, res, UsrSession); // 세션 값 입력
                  if (!retValue.equals("USER"))
                  {
                      if(session == null ) session = req.getSession(true);
                      session.setAttribute("ISS_SESSION", UsrSession);
                      //-----------------------------------------------------------------------------------
                      // 구분자를 받아 해당 화면으로 forwarding한다.
                      // 1. 국내영업 요청
                      //    - 来訪客申請(VISIT), 반出入申請(INOUT),
                      //    - 出入증申請(TEMP_CARD), 役職員出入증(EMP_CARD), 회의실申請(ROOM)
                      //-----------------------------------------------------------------------------------
                      if (url.equals("VISIT")                    // 来訪客申請
                              || url.equals("INOUT")              // 반出入申請
                                  || url.equals("TEMP_CARD")      // 出入증申請
                                      || url.equals("EMP_CARD")   // 役職員出入증
                                          || url.equals("ROOM")   // 회의실申請
                         )
                      {
                          this.forwardUrl(req, res);
                      }

                  }
                  else
                  {
                      if(session == null ) session = req.getSession(true);
                      session.setAttribute("SINGLE_SESSION", UsrSession);
                  }
     }
     // back door
     else if (actKey.equals("BACK"))
     {
                  url = "/comMainServlet.svlt?_ACT=MAIN";
                  UsrSession = new IsComSessionVO();
                  setBakUsrSession(req, res, UsrSession);
                     if(session == null ) session = req.getSession(true);
                     session.setAttribute("ISS_SESSION", UsrSession);
     }
              else
              {
                  url = "/security/checkIp.jsp";

                  ipInfo  = null;

                  UsrSession = new IsComSessionVO();
                  ipInfo = setUsrSession(req, res, UsrSession); // 세션 값 입력

                  if (!ipInfo[0].equals("USER"))
                  {
                      if(session == null ) session = req.getSession(true);
                      session.setAttribute("ISS_SESSION", UsrSession);
                  }
                  else
                  {
                      if(session == null ) session = req.getSession(true);
                      session.setAttribute("SINGLE_SESSION", UsrSession);
                  }
     }
                 Log.debug(" Session Session is /n"+ UsrSession.toString());

          }
          catch ( Exception e )
          {
              e.printStackTrace();
              errMsg = e.getMessage();
              Log.error(e.getMessage());
          }
          finally
          {
              try {

                  if(errMsg.length() != 0)
                  {
                   req.setAttribute("errMsg", ComUtil.errMsgConvert(errMsg));
                  }
                  else if (url.equals("/security/checkIp.jsp"))
                  {
                     req.setAttribute("userIp",   ipInfo[0]);
                     req.setAttribute("lastIp",   ipInfo[1]);
                     req.setAttribute("lastDate", ipInfo[2]);
                     req.setAttribute("name", ipInfo[3]);
                  }
                  rd = getServletContext().getRequestDispatcher(url);
                  rd.forward(req, res);
      return;
              } catch(Exception e)
              {
                  e.printStackTrace();
              }
          }

          Log.debug("-----------------------------------------------");
          Log.debug("  END <=== [IsComSessionSvlt/doPost] ===> END  ");
          Log.debug("-----------------------------------------------");
      }

      //----------------------------------------------------------------------------------------------------------
      // Session 생성
      //----------------------------------------------------------------------------------------------------------
      private String[] setUsrSession(HttpServletRequest req, HttpServletResponse res, IsComSessionVO UsrSession) throws Exception, IOException//*
      {
          Log.debug("----------------------------------------------------------");
          Log.debug("  START <=== [IsComSessionSvlt/setUsrSession] ===> START  ");
          Log.debug("----------------------------------------------------------");

//          SBUsrChkHome        UsrChkHome      = null;
          //SBUsrChkCtl         UsrChkRemote    = null;

          //SrPdssInfoBean      pdssInfoBean    = null;
          //SrConnIpBean        connIpBean      = null;

    // 프로그램 ID
    //String pgmId   = "IsComSessionSvlt";
    //String logRec   = "접속 로그 검색/입력 (照会/추가)";

          // Site에서 필요로 하는 Parameter 값들을 담을 변수를 미리 선언해 놓습니다. (주석은 사용자 정보(D1) 내의 키와 그 의미입니다.)
          String EpID          = "None";  //EP_LOGINID    :Log-in ID//登录名
          String Name          = "None";  //EP_USERNAME   :사용자이름
          String Reg_no        = "None";  //EP_SOCIALID   :주민 登録 番号
          String Compny_tel_no = "None";  //EP_COMPTEL    :회사 전화 番号
          String Email         = "None";  //EP_MAIL       :Mail Address
          String UniqueID      = "None";  //EP_USERID     :Unique ID

          //PDSS 체크 변수
          String Emp_no        = "None";  //EP_SABUN      :사원 番号
          String Compny_code   = "None";  //EP_COMPID     :회사 Code
          String Compny_nm     = "None";  //EP_COMPNAME   :회사명
          String Dept_code     = "None";  //EP_DEPTID     :부서 Code
          String Dept_nm       = "None";  //EP_DEPTNAME   :부서명
          String Rank_code     = "None";  //EP_GRDID      :직급 Code
          String Rank_nm       = "None";  //EP_GRDNAME    :직급명
          String GnDivCd       = "None";  //EP_SORGID     :총괄 구분 Code
          String GnDivNm       = "None";  //EP_SORGNAME   :총괄 구분명
          String WaDivCd       = "None";  //EP_BUSID      :사업장 구분 Cod
          String WaDivNm       = "None";  //EP_BUSNAME    :사업장 구분명
          String LcDivCd       = "None";  //EP_REGID      :지역 구분 Code
          String LcDivNm       = "None";  //EP_REGNAME    :지역 구분명
          String DComp         = "None";  //EP_DCOMP      :파견사구분


          String AuthGrp       = "None";  //권한 체크 변수
          String regularTyp    = "None";  //정규/비정규 구분 (1:정규, 2:비정규)
          //String usrChk        = ""    ;  //User Check
    String Inner_dept_code = "None"; //내부부서코드

          String userInfo      = "None";
          String errMsg        = "";
          //String ep_returncode = "";

          String userIP        = "None";

          String[] ipInfo      = null;

          PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);

          try
          {
              String strTotalData = ComUtil.checkString(req.getParameter("totaldata"));//解密
              Log.debug("IsComSessionSvlt.strTotalData["+strTotalData+"]");
              if (strTotalData.equals(""))
              {
                  throw new Exception("Single정보가 유효하지 않습니다./n/nSingle 재 접속 후 접속하시기 바랍니다.");
              }

              StringTokenizer token = new StringTokenizer(strTotalData , ";");//以;分开,集继承了enumeration?
              String strNewDataList = token.nextToken();      // 암호화된 사용자 정보
              String strMD5SecureKey = token.nextToken(); // 전자서명값
              String strKeyFolder = token.nextToken();        // 공개키 위치
              Log.debug("IsComSessionSvlt.token["+token+"]");
              Log.debug("IsComSessionSvlt.strKeyFolder["+strKeyFolder+"]");

              byte [] baPublicKey = new byte[4096];
              if(strKeyFolder.equals("C10")){  // B2E SSO 인증 시不用管

                  baPublicKey = ep.Utils.getPublicKey("D:/ISPS_WAS/isps/config/PRIKEY/" + strKeyFolder + "/B2ESSO_key");
              }else{                                         // mySingle 인증 시
                  baPublicKey = ep.Utils.getPublicKey("D:/ISPS_WAS/isps/config/PRIKEY//" + strKeyFolder + "/mySingle_key");//?
              }

              // 복호화된 사용자 정보
              Log.debug("IsComSessionSvlt.DecryptDataList parameters");
              Log.debug("IsComSessionSvlt.DecryptDataList new String(baPublicKey)["+new String(baPublicKey)+"]");
              Log.debug("IsComSessionSvlt.DecryptDataList strMD5SecureKey["+strMD5SecureKey+"]");
              Log.debug("IsComSessionSvlt.DecryptDataList strNewDataList["+strNewDataList+"]");

              try {
      userInfo = ep.EpTrayUtil.DecryptDataList(new String(baPublicKey),strMD5SecureKey,strNewDataList);
     } catch (Exception e) {
      throw new Exception("single 오류 입니다.");
     }
              Log.debug("IsComSessionSvlt.userInfo["+userInfo+"]");

              // Web App.에서 필요로 하는 Parameter 값들을 추출합니다.
              if ( userInfo != null && !userInfo.equals( "" ) )
              {
                  StringTokenizer st = new StringTokenizer ( userInfo, ";" ); // ";"을 Token으로 문자열을 분리시킵니다.
                  for ( ; st.hasMoreTokens ( ) ; )
                  {
                      String info = st.nextToken ( );//info=之前是infokey,之后是infovalue
                      if ( info != null )
                      {
                          String infoKey = info.substring ( 0, info.indexOf ( "=" ) ).trim ( ); // "="을 기준으로 앞 문자열은 Key가 됩니다.
                          String infoValue = info.substring ( info.indexOf ( "=" ), info.length ( ) ).trim ( ); // "="을 기준으로 뒷 문자열은 Value가 됩니다.

                          // 1. 정상 로그인 여부 체크(1: 정상, 0 : 에러)
                          if (infoKey.equals("EP_RETURNCODE") && infoValue.equals("=0")){
                              //ep_returncode = infoValue.equals("=")?"":infoValue.substring(infoValue.indexOf("=")+1,infoValue.length( ));
                              errMsg = "Single 로그인 오류 입니다.";
                              throw new Exception(errMsg);
                          }

                          if ( infoKey.equals ( "EP_LOGINID" ) ){     // Log-in ID
                              EpID = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                               if (ComUtil.checkString(EpID).equals("")) EpID = "None";
                          }
                          else if(infoKey.equals ( "EP_USERNAME" ) ){ // 성명
                              Name = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Name).equals("")) Name = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPID" ) )        {  //회사 Code
                              Compny_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_code).equals("")) Compny_code = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPNAME" ) )  {  //회사명
                              Compny_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_nm).equals("")) Compny_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_SOCIALID" ) )  {  //주민 登録 番号
                              Reg_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );

                              if (ComUtil.checkString(Reg_no).equals("")) Reg_no = "None";
                          }
                          else if(infoKey.equals ( "EP_DEPTID" ) )        {  //부서 Code
                              Dept_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Dept_code).equals("")) Dept_code = "None";
                          }
                          else if(infoKey.equals ( "EP_DEPTNAME" ) )  {  //부서명
                              Dept_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Dept_nm).equals("")) Dept_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_GRDID" ) )     {  //직급 Code
                              Rank_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Rank_code).equals("")) Rank_code = "None";
                          }
                          else if(infoKey.equals ( "EP_GRDNAME" ) )   {  //직급명
                              Rank_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Rank_nm).equals("")) Rank_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_SABUN" ) )     {  //사원 番号
                              Emp_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Emp_no).equals("")) Emp_no = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPTEL" ) )   {  //회사 전화 番号
                              Compny_tel_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_tel_no).equals("")) Compny_tel_no = "None";
                          }
                          else if(infoKey.equals ( "EP_SORGID" ) )     {  //총괄 구분 Code
                              GnDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(GnDivCd).equals("")) GnDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_SORGNAME" ) )  {  //총괄 구분명
                              GnDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(GnDivNm).equals("")) GnDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_BUSID" ) )     {  //사업장 구분 Code
                              WaDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(WaDivCd).equals("")) WaDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_BUSNAME" ) )   {  //사업장 구분명
                              WaDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(WaDivNm).equals("")) WaDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_REGID" ) )     {  //지역 구분 Code
                              LcDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(LcDivCd).equals("")) LcDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_REGNAME" ) )   {  //지역 구분명
                              LcDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(LcDivNm).equals("")) LcDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_MAIL" ) )      {  //Mail Address
                              Email = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Email).equals("")) Email = "None";
                          }
                          else if ( infoKey.equals ( "EP_USERID" ) )  {  //Unique ID
                              UniqueID = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(UniqueID).equals("")) UniqueID = "None";
                          }
                          else if ( infoKey.equals ( "EP_DCOMP" ) )   {  //파견사 구분
                              DComp = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(DComp).equals("")) DComp = "None";
                          }

                      }
                  }
                  ejb_lookup();
                  //----------------------------------------------
                  // 인사정보 照会
                  //----------------------------------------------
                  IsComSessionService service = new IsComSessionService();
               Hashtable ht = new Hashtable();
               ht.put("emp_no",Emp_no);
               Hashtable returnHt = ispsCommon.executeService(service, "checkUserInfo", ht);
                  if (((String)returnHt.get("RETURN")).equals("NOT FOUND"))
                  {
                      //-----------------------------------------------
                      // 미登録 사용자 登録을 위한 Session 생성
                      //-----------------------------------------------
//                      UsrSession.setSrName                (Name               );
//                      UsrSession.setSrReg_no              (Reg_no             );
//                      UsrSession.setSrGnDivCd             (GnDivCd            );
//                      UsrSession.setSrGnDivNm             (GnDivNm            );
//                      UsrSession.setSrCompny_tel_no       (Compny_tel_no      );
//                      UsrSession.setSrEmail               (Email              );
//                      UsrSession.setSrCompny_code         (Compny_code        );
//                      UsrSession.setSrCompny_nm           (Compny_nm          );
//                      UsrSession.setSrDept_code           (Dept_code          );
//                      UsrSession.setSrDept_nm             (Dept_nm            );
//                      UsrSession.setSrRank_code           (Rank_code          );
//                      UsrSession.setSrRank_nm             (Rank_nm            );
//                      UsrSession.setSrEmp_no              (Emp_no             );
//                      UsrSession.setSrWaDivCd             (WaDivCd            );
//                      UsrSession.setSrWaDivNm             (WaDivNm            );
//                      UsrSession.setSrLcDivCd             (LcDivCd            );
//                      UsrSession.setSrIp_addr             (userIP             );
//                      UsrSession.setSrInner_dept_code     (Inner_dept_code    );

                      toClient.println ( "<HTML>           " );
                      toClient.println ( "<meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/">" );
                      toClient.println ( "<BODY>           " );
                      toClient.println ( "<Script Language=javascript>           " );
                      toClient.println ( "        alert(/"Unregistered User/")");
//                      toClient.println ( "        top.window.location.replace(/"/security/head/head_user_reg_info.jsp/")" );
                      toClient.println ( "    </Script>                             " );
                      toClient.println ( "</BODY>           " );
                      toClient.println ( "</HTML>           " );
                      ipInfo = new String[4];
                      ipInfo[0] = "USER";
                      return ipInfo;
                  }
                  else
                  {
                      //PDSS에서 정보를 불러온다.
                      //pdssInfoBean = UsrChkRemote.getPdssInfo(Reg_no);
                   Compny_tel_no = ComUtil.checkString((String)returnHt.get("worktel"));
                   Dept_code     = ComUtil.checkString((String)returnHt.get("dept_code"));
                   Dept_nm       = ComUtil.checkString((String)returnHt.get("dept"));
                   Rank_code     = ComUtil.checkString((String)returnHt.get("rank_code"));
                   Rank_nm       = ComUtil.checkString((String)returnHt.get("rank"));
                   AuthGrp       = ComUtil.checkString((String)returnHt.get("auth_id"));
                  }

                  userIP = req.getRemoteAddr(); // remote ipaddress 가져오기
      if (userIP == null)
      {
       userIP = "UnKnown";
      }

                  UsrSession.setSrAuthGrp             (AuthGrp            );
                  UsrSession.setSrRegularTyp          (regularTyp         );
                  UsrSession.setSrEpID                (EpID               );
                  UsrSession.setSrName                (Name               );
                  UsrSession.setSrReg_no              (Reg_no             );
                  UsrSession.setSrGnDivCd             (GnDivCd            );
                  UsrSession.setSrGnDivNm             (GnDivNm            );
                  UsrSession.setSrCompny_tel_no       (Compny_tel_no      );
                  UsrSession.setSrEmail               (Email              );
                  UsrSession.setSrUniqueID            (UniqueID           );
                  UsrSession.setSrDComp               (DComp              );
                  UsrSession.setSrCompny_code         (Compny_code        );
                  UsrSession.setSrCompny_nm           (Compny_nm          );
                  UsrSession.setSrDept_code           (Dept_code          );
                  UsrSession.setSrDept_nm             (Dept_nm            );
                  UsrSession.setSrRank_code           (Rank_code          );
                  UsrSession.setSrRank_nm             (Rank_nm            );
                  UsrSession.setSrEmp_no              (Emp_no             );
                  UsrSession.setSrWaDivCd             (WaDivCd            );
                  UsrSession.setSrWaDivNm             (WaDivNm            );
                  UsrSession.setSrLcDivCd             (LcDivCd            );
                  UsrSession.setSrIp_addr             (userIP             );
                  UsrSession.setSrInner_dept_code     (Inner_dept_code    );


                  String pgmId  = ComUtil.checkString((String)ht.get("pgmId"));
               String logRec  = ComUtil.checkString((String)ht.get("logRec"));
               String userIp   = ComUtil.checkString((String)ht.get("ipAddr"));


                  //---------------------------------------------------
                  // 로그 정보를 저장한다.
                  //---------------------------------------------------
               ht.put("pgmId", "IsComSessionSvlt");
               ht.put("logRec", "First Login");
               ht.put("SESSION", UsrSession);
               Hashtable retLogHt = ispsCommon.executeService(service, "checkLogging", ht);

               ipInfo = new String[4];
                  ipInfo[0] = userIP;
                  ipInfo[1] = (String)retLogHt.get("lastIpAddr");
                  ipInfo[2] = ComUtil.format((String)retLogHt.get("lastLoginDt"), "####-##-## ##:##:##");
                  ipInfo[3] = Name;
              }
              else
              {
                  errMsg = "役職員정보를 확인할 수 없습니다.";
                  Log.debug(errMsg);

                  toClient.println ( "<HTML>                                                                      " );
                  toClient.println ( "<meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/">   " );
                  toClient.println ( "<BODY>                                                                      " );
                  toClient.println ( "<Script Language=javascript>                                                " );
                  toClient.println ( "        alert(/"Unknown User/")                          " );
//                  toClient.println ( "        top.window.location.replace(/"//")                                  " );
                  toClient.println ( "    </Script>                                                               " );
                  toClient.println ( "</BODY>                                                                     " );
                  toClient.println ( "</HTML>                                                                     " );

              }
          }
          catch(Exception e)
          {
              errMsg = e.getMessage();
              e.printStackTrace();
              throw e;
          }
          finally
          {
              Log.debug("------------------------------------------------------");
              Log.debug("  END <=== [IsComSessionSvlt/setUsrSession] ===> END  ");
              Log.debug("------------------------------------------------------");
          }
          return ipInfo;
      }

      //----------------------------------------------------------------------------------------------------------
      // Back Session 생성
      //----------------------------------------------------------------------------------------------------------
      private void setBakUsrSession(HttpServletRequest req, HttpServletResponse res, IsComSessionVO UsrSession) throws Exception, IOException
      {
          Log.debug("----------------------------------------------------------");
          Log.debug("  START <=== [IsComSessionSvlt/setBakUsrSession] ===> START  ");
          Log.debug("----------------------------------------------------------");

          // Site에서 필요로 하는 Parameter 값들을 담을 변수를 미리 선언해 놓습니다. (주석은 사용자 정보(D1) 내의 키와 그 의미입니다.)
          String EpID          = "None";  //EP_LOGINID    :Log-in ID
          String Name          = "None";  //EP_USERNAME   :사용자이름
          String Reg_no        = "None";  //EP_SOCIALID   :주민 登録 番号
          String Compny_tel_no = "None";  //EP_COMPTEL    :회사 전화 番号
          String Email         = "None";  //EP_MAIL       :Mail Address
          String UniqueID      = "None";  //EP_USERID     :Unique ID

          //PDSS 체크 변수
          String Emp_no        = "None";  //EP_SABUN      :사원 番号
          String Compny_code   = "None";  //EP_COMPID     :회사 Code
          String Compny_nm     = "None";  //EP_COMPNAME   :회사명
          String Dept_code     = "None";  //EP_DEPTID     :부서 Code
          String Dept_nm       = "None";  //EP_DEPTNAME   :부서명
          String Rank_code     = "None";  //EP_GRDID      :직급 Code
          String Rank_nm       = "None";  //EP_GRDNAME    :직급명
          String GnDivCd       = "None";  //EP_SORGID     :총괄 구분 Code
          String GnDivNm       = "None";  //EP_SORGNAME   :총괄 구분명
          String WaDivCd       = "None";  //EP_BUSID      :사업장 구분 Cod
          String WaDivNm       = "None";  //EP_BUSNAME    :사업장 구분명
          String LcDivCd       = "None";  //EP_REGID      :지역 구분 Code
          String DComp         = "None";  //EP_DCOMP      :파견사구분


          String AuthGrp       = "None";  //권한 체크 변수
          String regularTyp    = "None";  //정규/비정규 구분 (1:정규, 2:비정규)
          //String usrChk        = ""    ;  //User Check
    String Inner_dept_code = "None"; //내부부서코드
          String errMsg        = "";
          //String ep_returncode = "";

          String userIP        = "None";
          PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);

          try
          {
                 ejb_lookup();
                 //----------------------------------------------
                 // 인사정보 照会
                 //----------------------------------------------
                 IsComSessionService service = new IsComSessionService();
                 Emp_no = ComUtil.checkString(req.getParameter("emp_no"));
     Hashtable ht = new Hashtable();
              ht.put("emp_no",Emp_no);
              Hashtable returnHt = ispsCommon.executeService(service, "checkUserInfo", ht);
                 if (((String)returnHt.get("RETURN")).equals("NOT FOUND"))
                 {
                     toClient.println ( "<HTML>           " );
                     toClient.println ( "<meta http-equiv=/"Content-Type/" content=/"text/html; charset=KSC5601/">" );
                     toClient.println ( "<BODY>           " );
                     toClient.println ( "<Script Language=javascript>           " );
                     toClient.println ( "        alert(/"Unregistered User/")");
//                      toClient.println ( "        top.window.location.replace(/"/security/head/head_user_reg_info.jsp/")" );
                     toClient.println ( "    </Script>                             " );
                     toClient.println ( "</BODY>           " );
                     toClient.println ( "</HTML>           " );
                 }
                 else
                 {
                     //PDSS에서 정보를 불러온다.
                     //pdssInfoBean = UsrChkRemote.getPdssInfo(Reg_no);
                  Dept_code     = ComUtil.checkString((String)returnHt.get("dept_code"));
                  Dept_nm       = ComUtil.checkString((String)returnHt.get("dept"));
                  Rank_code     = ComUtil.checkString((String)returnHt.get("rank_code"));
                  Rank_nm       = ComUtil.checkString((String)returnHt.get("rank"));
                  Name          = ComUtil.checkString((String)returnHt.get("name"));
                  Compny_tel_no = ComUtil.checkString((String)returnHt.get("worktel"));
                  EpID          = ComUtil.checkString((String)returnHt.get("sing_id1"));
                  Email         = ComUtil.checkString((String)returnHt.get("email"));
                  AuthGrp       = ComUtil.checkString((String)returnHt.get("auth_id"));

                  userIP = req.getRemoteAddr(); // remote ipaddress 가져오기

      if (userIP == null)
      {
       userIP = "UnKnown";
      }

                  UsrSession.setSrAuthGrp             (AuthGrp            );
                  UsrSession.setSrRegularTyp          (regularTyp         );
                  UsrSession.setSrEpID                (EpID               );
                  UsrSession.setSrName                (Name               );
                  UsrSession.setSrReg_no              (Reg_no             );
                  UsrSession.setSrGnDivCd             (GnDivCd            );
                  UsrSession.setSrGnDivNm             (GnDivNm            );
                  UsrSession.setSrCompny_tel_no       (Compny_tel_no      );
                  UsrSession.setSrEmail               (Email              );
                  UsrSession.setSrUniqueID            (UniqueID           );
                  UsrSession.setSrDComp               (DComp              );
                  UsrSession.setSrCompny_code         (Compny_code        );
                  UsrSession.setSrCompny_nm           (Compny_nm          );
                  UsrSession.setSrDept_code           (Dept_code          );
                  UsrSession.setSrDept_nm             (Dept_nm            );
                  UsrSession.setSrRank_code           (Rank_code          );
                  UsrSession.setSrRank_nm             (Rank_nm            );
                  UsrSession.setSrEmp_no              (Emp_no             );
                  UsrSession.setSrWaDivCd             (WaDivCd            );
                  UsrSession.setSrWaDivNm             (WaDivNm            );
                  UsrSession.setSrLcDivCd             (LcDivCd            );
                  UsrSession.setSrIp_addr             (userIP             );
                  UsrSession.setSrInner_dept_code     (Inner_dept_code    );
                 }
          }
          catch(Exception e)
          {
              errMsg = e.getMessage();
              e.printStackTrace();
              throw e;
          }
          finally
          {
              Log.debug("------------------------------------------------------");
              Log.debug("  END <=== [IsComSessionSvlt/setBakUsrSession] ===> END  ");
              Log.debug("------------------------------------------------------");
          }
      }

      //----------------------------------------------------------------------------------------------------------
      // Private Method
      //----------------------------------------------------------------------------------------------------------
      private String setUsrSessionSso(HttpServletRequest req, HttpServletResponse res, IsComSessionVO UsrSession) throws Exception, IOException
      {
          Log.debug("----------------------------------------------------------");
          Log.debug("  START <=== [IsComSessionSvlt/setUsrSessionSso] ===> START  ");
          Log.debug("----------------------------------------------------------");

          //SBUsrChkHome        UsrChkHome      = null;
          //SBUsrChkCtl         UsrChkRemote    = null;
          //SrPdssInfoBean      pdssInfoBean    = null;

          // Site에서 필요로 하는 Parameter 값들을 담을 변수를 미리 선언해 놓습니다. (주석은 사용자 정보(D1) 내의 키와 그 의미입니다.)
          String EpID          = "None";  //EP_LOGINID    :Log-in ID
          String Name          = "None";  //EP_USERNAME   :사용자이름
          String Reg_no        = "None";  //EP_SOCIALID   :주민 登録 番号
          String Compny_tel_no = "None";  //EP_COMPTEL    :회사 전화 番号
          String Email         = "None";  //EP_MAIL       :Mail Address
          String UniqueID      = "None";  //EP_USERID     :Unique ID

          //PDSS 체크 변수
          String Emp_no        = "None";  //EP_SABUN      :사원 番号
          String Compny_code   = "None";  //EP_COMPID     :회사 Code
          String Compny_nm     = "None";  //EP_COMPNAME   :회사명
          String Dept_code     = "None";  //EP_DEPTID     :부서 Code
          String Dept_nm       = "None";  //EP_DEPTNAME   :부서명
          String Rank_code     = "None";  //EP_GRDID      :직급 Code
          String Rank_nm       = "None";  //EP_GRDNAME    :직급명
          String GnDivCd       = "None";  //EP_SORGID     :총괄 구분 Code
          String GnDivNm       = "None";  //EP_SORGNAME   :총괄 구분명
          String WaDivCd       = "None";  //EP_BUSID      :사업장 구분 Cod
          String WaDivNm       = "None";  //EP_BUSNAME    :사업장 구분명
          String LcDivCd       = "None";  //EP_REGID      :지역 구분 Code
          String LcDivNm       = "None";  //EP_REGNAME    :지역 구분명
          String DComp         = "None";  //EP_DCOMP      :파견사구분

          String AuthGrp       = "None";  //권한 체크 변수
          String regularTyp    = "None";  //정규/비정규 구분 (1:정규, 2:비정규)
          String usrChk        = ""    ;  //User Check
    String Inner_dept_code = "None"; //내부부서코드

          String userInfo      = "None";
          String errMsg        = "";

          String userIP        = "None";

          //String[] ipInfo      = null;


          PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);
//          PrintWriter toClient    = res.getWriter();

          try{
              String strTotalData = ComUtil.checkString(req.getParameter("totaldata"));
              if (strTotalData.equals(""))
              {
                  throw new Exception("Single정보가 유효하지 않습니다./n/n관리자에게 문의하세요.");
              }

              StringTokenizer token = new StringTokenizer(strTotalData , ";");
              String strNewDataList = token.nextToken();      // 암호화된 사용자 정보
              String strMD5SecureKey = token.nextToken(); // 전자서명값
              String strKeyFolder = token.nextToken();        // 공개키 위치

              byte [] baPublicKey = new byte[4096];
              if(strKeyFolder.equals("C10")){  // B2E SSO 인증 시

                  baPublicKey = ep.Utils.getPublicKey("D:/App/security/PRIKEY/" + strKeyFolder + "/B2ESSO_key");
              }else{                                         // mySingle 인증 시
                  baPublicKey = ep.Utils.getPublicKey("D:/App/security/PRIKEY//" + strKeyFolder + "/mySingle_key");
              }

              // 복호화된 사용자 정보
              userInfo = ep.EpTrayUtil.DecryptDataList(new String(baPublicKey),strMD5SecureKey,strNewDataList);//?

              // Web App.에서 필요로 하는 Parameter 값들을 추출합니다.
              if ( userInfo != null && !userInfo.equals( "" ) )
              {
                  StringTokenizer st = new StringTokenizer ( userInfo, ";" ); // ";"을 Token으로 문자열을 분리시킵니다.
                  for ( ; st.hasMoreTokens ( ) ; )
                  {
                      String info = st.nextToken ( );
                      if ( info != null )
                      {
                          String infoKey = info.substring ( 0, info.indexOf ( "=" ) ).trim ( ); // "="을 기준으로 앞 문자열은 Key가 됩니다.
                          String infoValue = info.substring ( info.indexOf ( "=" ), info.length ( ) ).trim ( ); // "="을 기준으로 뒷 문자열은 Value가 됩니다.
                          if ( infoKey.equals ( "EP_LOGINID" ) ){     // Log-in ID
                              EpID = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(EpID).equals("")) EpID = "None";
                          }
                          else if(infoKey.equals ( "EP_USERNAME" ) ){ // 성명
                              Name = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Name).equals("")) Name = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPID" ) )        {  //회사 Code
                              Compny_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_code).equals("")) Compny_code = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPNAME" ) )  {  //회사명
                              Compny_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_nm).equals("")) Compny_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_SOCIALID" ) )  {  //주민 登録 番号
                              Reg_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );

                              if (ComUtil.checkString(Reg_no).equals("")) Reg_no = "None";
                          }
                          else if(infoKey.equals ( "EP_DEPTID" ) )        {  //부서 Code
                              Dept_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Dept_code).equals("")) Dept_code = "None";
                          }
                          else if(infoKey.equals ( "EP_DEPTNAME" ) )  {  //부서명
                              Dept_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Dept_nm).equals("")) Dept_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_GRDID" ) )     {  //직급 Code
                              Rank_code = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Rank_code).equals("")) Rank_code = "None";
                          }
                          else if(infoKey.equals ( "EP_GRDNAME" ) )   {  //직급명
                              Rank_nm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Rank_nm).equals("")) Rank_nm = "None";
                          }
                          else if(infoKey.equals ( "EP_SABUN" ) )     {  //사원 番号
                              Emp_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Emp_no).equals("")) Emp_no = "None";
                          }
                          else if(infoKey.equals ( "EP_COMPTEL" ) )   {  //회사 전화 番号
                              Compny_tel_no = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Compny_tel_no).equals("")) Compny_tel_no = "None";
                          }
                          else if(infoKey.equals ( "EP_SORGID" ) )     {  //총괄 구분 Code
                              GnDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(GnDivCd).equals("")) GnDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_SORGNAME" ) )  {  //총괄 구분명
                              GnDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(GnDivNm).equals("")) GnDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_BUSID" ) )     {  //사업장 구분 Code
                              WaDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(WaDivCd).equals("")) WaDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_BUSNAME" ) )   {  //사업장 구분명
                              WaDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(WaDivNm).equals("")) WaDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_REGID" ) )     {  //지역 구분 Code
                              LcDivCd = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(LcDivCd).equals("")) LcDivCd = "None";
                          }
                          else if(infoKey.equals ( "EP_REGNAME" ) )   {  //지역 구분명
                              LcDivNm = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(LcDivNm).equals("")) LcDivNm = "None";
                          }
                          else if(infoKey.equals ( "EP_MAIL" ) )      {  //Mail Address
                              Email = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(Email).equals("")) Email = "None";
                          }
                          else if ( infoKey.equals ( "EP_USERID" ) )  {  //Unique ID
                              UniqueID = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(UniqueID).equals("")) UniqueID = "None";
                          }
                          else if ( infoKey.equals ( "EP_DCOMP" ) )   {  //파견사 구분
                              DComp = infoValue.equals ( "=" ) ? "" : infoValue.substring ( infoValue.indexOf ( "=" ) + 1, infoValue.length ( ) );
                              if (ComUtil.checkString(DComp).equals("")) DComp = "None";
                          }

                      }
                  }
                  //UsrChkHome      = (SBUsrChkHome)JndiMgr.findHome("SBUsrChkCtl");
                  //UsrChkRemote    = UsrChkHome.create();

                  //usrChk          = UsrChkRemote.checkUsr(Reg_no);

                  if (usrChk.equals("D"))
                  {
                      //-----------------------------------------------
                      // 미登録 사용자 登録을 위한 Session 생성
                      //-----------------------------------------------
                      UsrSession.setSrName                (Name               );
                      UsrSession.setSrReg_no              (Reg_no             );
                      UsrSession.setSrGnDivCd             (GnDivCd            );
                      UsrSession.setSrGnDivNm             (GnDivNm            );
                      UsrSession.setSrCompny_tel_no       (Compny_tel_no      );
                      UsrSession.setSrEmail               (Email              );
                      UsrSession.setSrCompny_code         (Compny_code        );
                      UsrSession.setSrCompny_nm           (Compny_nm          );
                      UsrSession.setSrDept_code           (Dept_code          );
                      UsrSession.setSrDept_nm             (Dept_nm            );
                      UsrSession.setSrRank_code           (Rank_code          );
                      UsrSession.setSrRank_nm             (Rank_nm            );
                      UsrSession.setSrEmp_no              (Emp_no             );
                      UsrSession.setSrWaDivCd             (WaDivCd            );
                      UsrSession.setSrWaDivNm             (WaDivNm            );
                      UsrSession.setSrLcDivCd             (LcDivCd            );
                      UsrSession.setSrIp_addr             (userIP             );
                      UsrSession.setSrInner_dept_code     (Inner_dept_code    );

                      toClient.println ( "<HTML>           " );
                      toClient.println ( "<meta http-equiv=/"Content-Type/" content=/"text/html; charset=UTF-8/">" );
                      toClient.println ( "<BODY>           " );
                      toClient.println ( "<Script Language=javascript>           " );
                      toClient.println ( "        top.window.location.replace(/"/security/head/head_user_reg_info.jsp/")" );
                      toClient.println ( "    </Script>                             " );
                      toClient.println ( "</BODY>           " );
                      toClient.println ( "</HTML>           " );
                      return "USER";
                  }
                  else if (usrChk.equals("T"))
                  {
                   /*
                      pdssInfoBean = UsrChkRemote.chkTbSbUsr( Reg_no,    Compny_tel_no, Email,   Compny_code,
                                                              Compny_nm, Dept_code,     Dept_nm, Rank_code,
                                                              Rank_nm);

                      WaDivCd     = pdssInfoBean.srWaDivCd;
                      WaDivNm     = pdssInfoBean.srWaDivNm;
                      AuthGrp     = pdssInfoBean.srAuthGrpId;
                      regularTyp  = pdssInfoBean.srRegularTyp;

                   Ep_Chk = pdssInfoBean.srSystemUseTyp;

      }else{
                      //PDSS에서 정보를 불러온다.
                      pdssInfoBean = UsrChkRemote.getPdssInfo(Reg_no);

                      Emp_no    = pdssInfoBean.srEmp_no;
                      LcDivCd    = pdssInfoBean.srLcDivCd;
                      Compny_code   = pdssInfoBean.srCompny_code;
                      Compny_nm   = pdssInfoBean.srCompny_nm;
                      Dept_code   = pdssInfoBean.srDept_code;
                      Dept_nm    = pdssInfoBean.srDept_nm;
                      Rank_code   = pdssInfoBean.srRank_code;
                      Rank_nm    = pdssInfoBean.srRank_nm;
                      WaDivCd    = pdssInfoBean.srWaDivCd;
                      WaDivNm    = pdssInfoBean.srWaDivNm;
                      AuthGrp    = pdssInfoBean.srAuthGrpId;
                      regularTyp   = pdssInfoBean.srRegularTyp;
                      Inner_dept_code  = pdssInfoBean.srInnDptCd;
                      */

                  }

                  UsrSession.setSrAuthGrp         (AuthGrp            );
                  UsrSession.setSrRegularTyp      (regularTyp         );
                  UsrSession.setSrEpID            (EpID               );
                  UsrSession.setSrName            (Name               );
                  UsrSession.setSrReg_no          (Reg_no             );
                  UsrSession.setSrGnDivCd         (GnDivCd            );
                  UsrSession.setSrGnDivNm         (GnDivNm            );
                  UsrSession.setSrCompny_tel_no   (Compny_tel_no      );
                  UsrSession.setSrEmail           (Email              );
                  UsrSession.setSrUniqueID        (UniqueID           );
                  UsrSession.setSrDComp           (DComp              );
                  UsrSession.setSrCompny_code     (Compny_code        );
                  UsrSession.setSrCompny_nm       (Compny_nm          );
                  UsrSession.setSrDept_code       (Dept_code          );
                  UsrSession.setSrDept_nm         (Dept_nm            );
                  UsrSession.setSrRank_code       (Rank_code          );
                  UsrSession.setSrRank_nm         (Rank_nm            );
                  UsrSession.setSrEmp_no          (Emp_no             );
                  UsrSession.setSrWaDivCd         (WaDivCd            );
                  UsrSession.setSrWaDivNm         (WaDivNm            );
                  UsrSession.setSrLcDivCd         (LcDivCd            );
                  UsrSession.setSrIp_addr         (userIP             );
                  UsrSession.setSrInner_dept_code (Inner_dept_code    );
  Log.debug("IsComSessionSvlt.setUsrSessionSso IsComSessionVO["+UsrSession.toString()+"]");

              }
          }
          catch(Exception e)
          {
           errMsg = e.getMessage();
              e.printStackTrace();
              throw e;
          }
          finally
          {
              Log.debug("------------------------------------------------------");
              Log.debug("  END <=== [IsComSessionSvlt/setUsrSessionSso] ===> END  ");
              Log.debug("------------------------------------------------------");
          }
          return "";
      }


      // URL forwarding
      private String forwardUrl(HttpServletRequest req, HttpServletResponse res) throws Exception, IOException
      {
          PrintWriter toClient = new PrintWriter(res.getOutputStream(),true);
          String url = "";
          String fw_rul = "";
          String errMsg = "";

          try
          {
              url = ComUtil.checkString(req.getParameter("URL"));
              //------------------------------------------------------
              //------------------------------------------------------
              if (url.equals("VISIT"))
              {
                  fw_rul = "/servlets/security/head/ha/HaServlet?_SCREEN=APPROV&_ACT=APPROV_PATH&URL=/security/head/ha/ha_appl_int.jsp&SYSTYPE=HA_VISIT";
              }
              else if (url.equals("INOUT"))
              {
                  fw_rul = "/servlets/security/head/hb/HbOutSelServlet?_SCREEN=CARRYOUT&_ACT=HB_BRANCH";
              }
              else if (url.equals("TEMP_CARD"))
              {
                  fw_rul = "/servlets/security/head/ha/HaServlet?_SCREEN=APPROV&_ACT=APPROV_PATH&URL=/security/head/hc/hc_appl_int.jsp&SYSTYPE=HC_TMP_CARD_NEW";
              }
              else if (url.equals("EMP_CARD"))
              {
                  fw_rul = "/servlets/security/head/ha/HaServlet?_SCREEN=APPROV&_ACT=APPROV_PATH&URL=/security/head/hc/hc_emp_appl_int.jsp&SYSTYPE=HC_EMP_NEW";
              }
              else if (url.equals("ROOM"))
              {
                  fw_rul = "/security/head/hf/hf_res_int.jsp";
              }

              toClient.println ( "<HTML>           " );
              toClient.println ( "<meta http-equiv=/"Content-Type/" content=/"text/html; charset=utf-8/">" );
              toClient.println ( "<BODY>           " );
              toClient.println ( "<Script Language=javascript>           " );
              toClient.println ( "        top.window.location.replace(/""+fw_rul+"/")" );
              toClient.println ( "    </Script>                             " );
              toClient.println ( "</BODY>           " );
              toClient.println ( "</HTML>           " );
          }
          catch(Exception e)
          {
           errMsg = e.getMessage();
              Log.error(e.getMessage());
              throw e;
          }
          finally
          {
          }
          return "";
      }

  } 

原创粉丝点击