⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webguard.java

📁 j2ee源码
💻 JAVA
字号:
/*
 * Created on 2005/11/8
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package com.leeman.wkexs.common.security;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Cookie; 
import javax.servlet.http.HttpSession;

import java.util.HashMap;
import java.util.Date;
import java.util.Locale;
import java.util.ArrayList;

import com.leeman.common.util.EjbGetter;
import com.leeman.common.util.DateUtils;

//import javax.security.auth.login.FailedLoginException;
import org.apache.struts.Globals;

import com.leeman.wkexs.common.ClientInfo;
import com.leeman.wkexs.web.base.BaseConstants;
import com.leeman.wkexs.common.security.exceptions.*;
import com.leeman.wkexs.master.company.entity.CompanyVO;
import com.leeman.wkexs.master.company.handler.CompanyHandler;
import com.leeman.wkexs.master.company.handler.CompanyHandlerHome;
import com.leeman.wkexs.master.users.handler.UsersHandler;
import com.leeman.wkexs.master.users.handler.UsersHandlerBean;
import com.leeman.wkexs.master.users.handler.UsersHandlerHome;
import com.leeman.wkexs.master.users.entity.UsersVO;
import com.leeman.wkexs.master.rolemgt.entity.RoleHdrVO;
import com.leeman.wkexs.master.rolemgt.handler.RoleMgtHandler;
import com.leeman.wkexs.master.rolemgt.handler.RoleMgtHandlerBean;
import com.leeman.wkexs.master.rolemgt.handler.RoleMgtHandlerHome;

/**
 * @author kenneth
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class WebGuard {

//	private static void debug(String msg)
//	{
//		System.out.println("[WebGuard]: " + msg);
//	}
	
	//Get Handler Method
	public static CompanyHandler getCompanyHandler() throws Exception
	{
		CompanyHandlerHome home = (CompanyHandlerHome)EjbGetter.getEJBHome(CompanyHandler.JNDINAME, CompanyHandlerHome.class);
		CompanyHandler companyHandler = home.create();
		return companyHandler;
	}
		
	public static UsersHandler getUsersHandler() throws Exception
	{
		UsersHandlerHome home = (UsersHandlerHome)EjbGetter.getEJBHome(UsersHandler.JNDINAME, UsersHandlerHome.class);
		UsersHandler usersHandler = home.create();
		return usersHandler;
	}
	
	public static void logon(
		String comp_id, 
		String user_id, 
		String password,
		String lang_id,
		HttpServletRequest request,
		HttpServletResponse response) throws Exception{
		
		//Create Session
		HttpSession session = request.getSession();
		ClientInfo ci = new ClientInfo();

		String cid = comp_id.toUpperCase();
		String uid = user_id.toUpperCase();
		String lid = lang_id;
		String pw = password;
		
		ci.setCompany_id(cid);
		ci.setUser_id(uid);
		ci.setLang_id(lid);
		ci.setSession_id(request.getRequestedSessionId());
		ci.setRemote_addr(request.getRemoteAddr());
		ci.setRemote_host(request.getRemoteHost());
		
		UsersVO rec = new UsersVO();
		rec.setCompany_id(cid);
		rec.setUser_id(uid);
		rec.setPassword(pw);
		
		//For Testing
//		debug(rec.getCompany_id());
//		debug(rec.getUser_id());
//		debug(rec.getActivate());
//		debug(rec.getPassword());
		
		UsersHandler handler = getUsersHandler();
		if(!handler.isExist(rec)){
			System.out.println("[WebGuard] No Record Find.");
			throw new InvalidUserException("No Record Find.");
		}
		else
		{
			UsersVO result_rec =  handler.get(rec);

			//For Testing
//			debug("Get Function Finish.");
//			debug(result_rec.getCompany_id());
//			debug(result_rec.getUser_id());
//			debug(result_rec.getActivate());
//			debug(result_rec.getPassword());

			if(!result_rec.getPassword().equals(rec.getPassword()))
			{
				System.out.println("[WebGuard] Invalid Password.");
				throw new InvalidPasswordException("Invalid Password.");
			}
			else if (!result_rec.getActive().equals("Y"))
			{
				System.out.println("[WebGuard] Non Active User.");
				throw new AccountLockedException("Non Active User.");
			}
			else
			{
				//Successfully logoin								
				session.setAttribute(BaseConstants.SESSION_CLIENT_INFO,ci);
				session.setAttribute(BaseConstants.SESSION_LANG_ID, ci.getLang_id());
				session.setAttribute(BaseConstants.SESSION_COMPANY_NAME, getCompanyName(ci.getCompany_id(), ci.getLang_id()));
				session.setAttribute(BaseConstants.SESSION_USER_NAME, result_rec.getName());
				session.setAttribute(BaseConstants.SESSION_IS_WELCOME_PAGE_OPENED,"N");
				
				//Set Locale For MessageResource
				SetSessionLocale(request,ci.getLang_id());
				
				//External report URL
				//String uidstr = userSO.userID; 
				//String pwdstr = getURLEncodedPwd(userSO.password);
				String reportUrlPath = "/";	//Get Path From init file						
				String reportUrl =  reportUrlPath + "?uid=" + ci.getUser_id() + "&pwd=" + result_rec.getPassword();				
				session.setAttribute("reportUrl", reportUrl);
				
//					session.setAttribute("jobTitle",userVO.jobTitle);

				//Logon Tracking
//				LockTrackVO lockTrackVO = new LockTrackVO();
//				lockTrackVO.companyID = userVO.companyID;
//				lockTrackVO.userID = userVO.ID;
//				lockTrackVO.sessionID = getSessionID(req);
//				lockTrackVO.logonTime = Formatter.getCurrentDateTime();
//		
//				LockTrackHandler lockTrackHandler = getLockTrackHandler();
//				lockTrackHandler.logonTrack(lockTrackVO);
//				lockTrackHandler.remove();
		
				//Handle the Mutliple Session
//				ObjectTokenHandler objectTokenHandler = getObjectTokenHandler();
//				boolean isUserToken = objectTokenHandler.isUserToken(userVO.companyID, userVO.ID);
//		
//				System.out.println("isUserToken:" + isUserToken);
//		
//				systemMsg = new SystemMsg();
//		
//				if(isUserToken == true)
//				{ 
//					actionForward.URL = URL_PATH + "sessioncheck.jsp";
//					systemMsg.addMsg(getMessage(137, langID));
//					systemMsg.msgMode = "sessionCheck";
//				}
//		
//				String toURL = "../iflow/WorkListForm?txhCommand=searchAction";
				//String toURL = "../delivery/delnote/DelNoteForm?txhCommand=searchMode";
		
//				if (!systemMsg.isEmpty())
//				{
//					systemMsg.type = SystemMsg.WARNING;
//			
//					actionForward.URL =  URL_PATH + "showmsg.jsp";
//					req.setAttribute("toURL", toURL);
//					req.setAttribute("SystemMsg", systemMsg);					
//					return actionForward;			
//				}
//				else
//				{
//					actionForward.URL = toURL;
//					actionForward.isRedirect = true;
//					return actionForward;
//				}
//			}
			}
		}
	}
	
	public static void logout(
		HttpServletRequest request,
		HttpServletResponse response)throws Exception{
		
		HttpSession session = request.getSession();
		
		//debug("Is ClientInfo Exist :" + (session.getAttribute(BaseConstants.SESSION_CLIENT_INFO)!=null));
		
		session.removeAttribute(BaseConstants.SESSION_CLIENT_INFO);
		session.removeAttribute(BaseConstants.SESSION_LANG_ID);
		session.removeAttribute(BaseConstants.SESSION_COMPANY_NAME);
		session.removeAttribute(BaseConstants.SESSION_USER_NAME);
		session.removeAttribute(BaseConstants.SESSION_IS_WELCOME_PAGE_OPENED);
		
		//debug("Is ClientInfo Exist After Remove :" + (session.getAttribute(BaseConstants.SESSION_CLIENT_INFO)!=null));
		
		//if(session.getAttribute(BaseConstants.SESSION_CLIENT_INFO)==null)
			//debug("Session of ClientInfo has been removed.");
	}
	
	public static boolean IsPrivilaged(
		HashMap securityProf, 
		String funcCd,
		int privCd)throws Exception{
		boolean isPriv = true;
		return isPriv;
	}

	public static void LockUser(String userName)throws Exception{
	}

	public static void UnlockUser(String userName)throws Exception{
	}

	public static void TimeoutUser(String userName)throws Exception{
	}

	public static void ValidateSession(
		HttpServletRequest request,
		HttpServletResponse response, 
		String errMsg)throws Exception{
		
		HttpSession session = request.getSession();
		//debug("Is ClientInfo Exist :" + (session.getAttribute(BaseConstants.SESSION_CLIENT_INFO)!=null));
		
		if(session.getAttribute(BaseConstants.SESSION_CLIENT_INFO)==null)
			throw new NotLoggedOnException(errMsg);
							
		//If sess(SessionCacheObject.SC_SESSION_PROFILE) Is Nothing Then
		//	Throw New Exceptions.NotLoggedOnException(errMsg)
		//End If
	}

	public static String EncryptPassword(String password)throws Exception{
		return password;
	}

	public static String GeneratePassword()throws Exception{
		//Dim minLength As Integer
		//return SecUtil.Randomize(minLength)
		String password ="";
		return password;
	}
	
	public static String getCompanyName(String Comp_id, String Lang_id) throws Exception{
		String company_name = null;
		//Coding Here(Company Ejb for Get Company Name)
		CompanyHandler handler = getCompanyHandler();
		CompanyVO companyVO = handler.get(Comp_id.toUpperCase());
		if(Lang_id.equals(BaseConstants.LANG_TRADITIONAL_CHINESE))
			company_name = companyVO.getCompany_name_cht();
		else if(Lang_id.equals(BaseConstants.LANG_SIMPLIFIED_CHINESE))
			company_name = companyVO.getCompany_name_chs();
		else
			company_name = companyVO.getCompany_name_eng();
		//End
		return company_name;
	}
	
	public static void SetSessionLocale(HttpServletRequest request, String Lang_id){
		HttpSession session = request.getSession();
		if(Lang_id.equals(BaseConstants.LANG_ENGLISH))
			session.setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
		else if(Lang_id.equals(BaseConstants.LANG_TRADITIONAL_CHINESE))
			session.setAttribute(Globals.LOCALE_KEY,new Locale("cht","cht"));
		else if(Lang_id.equals(BaseConstants.LANG_SIMPLIFIED_CHINESE))
			session.setAttribute(Globals.LOCALE_KEY,new Locale("chs","chs"));
			
		//debug("SetSessionLocale=" + session.getAttribute(Globals.LOCALE_KEY) + " langid=" + Lang_id);
	}
	
	public static ArrayList getUserPrivList(UsersVO usersVO, String programId) throws Exception
	{
		UsersHandler usersHandler = getUsersHandler();
		UsersVO vo = usersHandler.get(usersVO);
		usersHandler.remove();
		
		RoleHdrVO roleHdrVO = new RoleHdrVO();
		roleHdrVO.setCompany_id(vo.getCompany_id());
		roleHdrVO.setRole_id(vo.getRole_id());
		
		RoleMgtHandler roleMgthandler = getRoleMgrHandler();
		ArrayList privList =  roleMgthandler.getRoleProgramPrivList(roleHdrVO, programId);
		roleMgthandler.remove();
		return privList;
	}
	
	public static RoleMgtHandler getRoleMgrHandler() throws Exception
	{
		RoleMgtHandlerHome home = (RoleMgtHandlerHome)EjbGetter.getEJBHome(RoleMgtHandler.JNDINAME, RoleMgtHandlerHome.class);
		RoleMgtHandler roleMgtHandler = home.create();
		return roleMgtHandler;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -