📄 loginservlet.java
字号:
package com.set.appframe.web;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.StringTokenizer;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.set.appframe.data.GenericValueObject;
import com.set.appframe.exception.SystemException;
import com.set.security.table.AuthLogin;
import com.set.utils.DesUtils;
import com.set.utils.ParamUtils;
/**
* <p>
* Title:
* </p>
* <p>
* Description:
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company:
* </p>
*
* @author zhengbh
* @version 1.0
*/
public class LoginServlet extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String action = ParamUtils.getNotNullParam(request, "ActionID");
String redirect = request.getParameter("REDIRECT");
if (action.equalsIgnoreCase("login")) {
processLogin(request, response);
} else if (action.equalsIgnoreCase("loginfromportal")) {
processLoginForPortal(request, response);
}
}
private void processLogin(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String loginName = "";
String password = "";
String orgCode = "";
String organizationID = "0";
loginName = (String) request.getParameter("username");
password = DesUtils.Encrypt((String) request.getParameter("password"));
orgCode = (String) request.getParameter("orgCode");
if (!checkVerifyCode(request)) { // 验证码错误
RequestDispatcher rqd = getServletConfig().getServletContext()
.getRequestDispatcher(response.encodeURL("/Login.jsp"));
rqd.forward(request, response);
return;
}
loginName = loginName + ".";
// String [] logins=loginName.split(".");
StringTokenizer st = new StringTokenizer(loginName, ".");
int total = st.countTokens();
if (total == 2) {
orgCode = st.nextToken();
loginName = st.nextToken();
} else if (total == 1) {
loginName = st.nextToken();
} else { // 无效用户名
RequestDispatcher rqd = getServletConfig().getServletContext()
.getRequestDispatcher(response.encodeURL("/Login.jsp"));
rqd.forward(request, response);
return;
}
String strURL = "";
GenericValueObject authLogin = null;
AuthLogin sessionValue = new AuthLogin();
// 用户ip限制
boolean ipLogin = false;
if (authLogin != null && ipLogin) {
// 设置cookie
try {
String cookieName = "username";
String cookieCName = "companyname";
Cookie cookie = new Cookie(cookieName, URLEncoder
.encode(loginName));
Cookie companycookie = new Cookie(cookieCName, URLEncoder
.encode(orgCode));
cookie.setMaxAge(365 * 24 * 60 * 60);
companycookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie);
response.addCookie(companycookie);
} catch (Exception e) {
e.printStackTrace();
}
// 检验是否是运行商后台帐号登陆
sessionValue.setSystemUserName(loginName);
sessionValue.setOrganizationID(authLogin.getItemString("ORGANIZATIONID"));
sessionValue.setOrganizationName(authLogin
.getItemString("ORGANIZATIONNAME"));
sessionValue.setSystemUserName(authLogin.getItemString("USERNAME"));
sessionValue.setSystemUserID(authLogin.getItemString("SYSTEMUSERID"));
sessionValue.setEmail(authLogin.getItemString("EMAIL"));
sessionValue.setMobile(authLogin.getItemString("MOBILE"));
sessionValue.setBusinessUnitID(authLogin.getItemString(
"BUSINESSUNITID").toString());
sessionValue.setBusinessUnitName(authLogin.getItemString(
"BUSINESSUNITNAME").toString());
sessionValue.setIsCustomer(authLogin.getItemString("ISCUSTOMER"));
sessionValue.setParentId(authLogin.getItemString("PARENTID"));
// sessionValue.setSystemUserName(authLogin.getItemString("SYSTEMUSERNAME").
// toString());
sessionValue.setOrgCode(orgCode);
sessionValue.setMenuCategory(authLogin.getItemString("CATEGORY"));
sessionValue.setVersion(authLogin.getItemString("VERSION"));
sessionValue.setLogo(authLogin.getItemString("LOGO"));
organizationID = authLogin.getItemString("ORGANIZATIONID");
request.getSession().setAttribute("AuthLogin", sessionValue);
{
List userRights = null;
request.getSession().setAttribute("UserRights", userRights);
}
if (authLogin.getItem("ORGANIZATIONID").toString().equals("0")) {
strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
} else if (authLogin.getItem("ISCUSTOMER").toString().equals("0")) {
strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
} else {
strURL = "/home/IndexAction.do?dispatch=index";
}
} else {
strURL = "/Login.jsp";
}
RequestDispatcher rqd = getServletConfig().getServletContext()
.getRequestDispatcher(response.encodeURL(strURL));
rqd.forward(request, response);
}
private void processLoginForPortal(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String loginName = "";
String password = "";
String orgCode = "";
String organizationID = "0";
loginName = DesUtils.Decrypt((String) request.getParameter("username"));
password = (String) request.getParameter("password");
orgCode = DesUtils.Decrypt((String) request.getParameter("orgcode"));
request.getSession().setAttribute("EORGCODE",
(String) request.getParameter("orgcode"));
loginName = loginName + ".";
// String [] logins=loginName.split(".");
StringTokenizer st = new StringTokenizer(loginName, ".");
int total = st.countTokens();
if (total == 2) {
orgCode = st.nextToken();
loginName = st.nextToken();
} else if (total == 1) {
loginName = st.nextToken();
} else { // 无效用户名
RequestDispatcher rqd = getServletConfig().getServletContext()
.getRequestDispatcher(response.encodeURL("/Login.jsp"));
rqd.forward(request, response);
return;
}
String strURL = "";
GenericValueObject authLogin = null;
AuthLogin sessionValue = new AuthLogin();
// 用户ip限制
boolean ipLogin = false;
if (authLogin != null && ipLogin) {
// 设置cookie
try {
String cookieName = "username";
String cookieCName = "companyname";
Cookie cookie = new Cookie(cookieName, URLEncoder
.encode(loginName));
Cookie companycookie = new Cookie(cookieCName, URLEncoder
.encode(orgCode));
cookie.setMaxAge(365 * 24 * 60 * 60);
companycookie.setMaxAge(365 * 24 * 60 * 60);
response.addCookie(cookie);
response.addCookie(companycookie);
} catch (Exception e) {
e.printStackTrace();
}
// 检验是否是运行商后台帐号登陆
sessionValue.setSystemUserName(loginName);
sessionValue.setOrganizationID(authLogin
.getItemString("ORGANIZATIONID"));
sessionValue.setOrganizationName(authLogin
.getItemString("ORGANIZATIONNAME"));
sessionValue.setSystemUserName(authLogin.getItemString("USERNAME"));
sessionValue.setSystemUserID(authLogin
.getItemString("SYSTEMUSERID"));
sessionValue.setEmail(authLogin.getItemString("EMAIL"));
sessionValue.setMobile(authLogin.getItemString("MOBILE"));
sessionValue.setBusinessUnitID(authLogin.getItemString(
"BUSINESSUNITID").toString());
sessionValue.setBusinessUnitName(authLogin.getItemString(
"BUSINESSUNITNAME").toString());
sessionValue.setIsCustomer(authLogin.getItemString("ISCUSTOMER"));
sessionValue.setParentId(authLogin.getItemString("PARENTID"));
// sessionValue.setSystemUserName(authLogin.getItemString("SYSTEMUSERNAME").
// toString());
sessionValue.setOrgCode(orgCode);
sessionValue.setMenuCategory(authLogin.getItemString("CATEGORY"));
sessionValue.setVersion(authLogin.getItemString("VERSION"));
organizationID = authLogin.getItemString("ORGANIZATIONID");
request.getSession().setAttribute("AuthLogin", sessionValue);
{
List userRights = null;
request.getSession().setAttribute("UserRights", userRights);
}
if (authLogin.getItem("ORGANIZATIONID").toString().equals("0")) {
strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
} else if (authLogin.getItem("ISCUSTOMER").toString().equals("0")) {
strURL = "/system/OrganizationAction.do?dispatch=orgmgrsearch";
} else {
strURL = "/home/IndexAction.do?dispatch=index";
}
} else {
strURL = "/Login.jsp";
}
RequestDispatcher rqd = getServletConfig().getServletContext()
.getRequestDispatcher(response.encodeURL(strURL));
rqd.forward(request, response);
}
protected boolean checkVerifyCode(HttpServletRequest request) {
boolean f = false;
HttpSession session = request.getSession();
String rand = (String) session.getAttribute("rand");
String input = String.valueOf(request.getParameter("VERIFYCODE"));
return input.equals(rand);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -