📄 webguard.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 + -