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

📄 fetionssopcservlet.java

📁 自己实现的AES和DES的加密算法。自己可以随意组成加密数据结构
💻 JAVA
字号:
package com.cmcc.web.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import com.cmcc.common.util.StringUtil;
import com.cmcc.server.FetionSsoManager;
import com.cmcc.util.Constant;
import com.cmcc.util.DigPwd;
import com.cmcc.util.SpringHelper;
import com.cmcc.ws.info.UserInfo;

/**
 * 
 * @author Administrator
 * 
 */
public class FetionSsoPcServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 8470900244836132777L;

	private static Logger log = Logger.getLogger(FetionSsoPcServlet.class);
	private String action;

	/**
	 * 
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	public void doPress(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String domains = StringUtil.getValue(request
				.getParameter(Constant.P_DOMAINS));
		String mp = StringUtil.getValue(request.getParameter(Constant.P_MP));
		String sid = StringUtil.getValue(request.getParameter(Constant.P_SID));
		String pwd = StringUtil.getValue(request.getParameter(Constant.P_PWD));
		String digest = StringUtil.getValue(request
				.getParameter(Constant.P_DIGEST));
		String corecreden = StringUtil.getValue(request.getHeader("Cookie"));
		String statuscode = "", userstate = "";
		String corec = "";
		String[] domain = null;
		if (domains != null && domains.indexOf(";") > -1) {
			domain = domains.split(";");
		}
		/* 判断IP是否是Socket IP 访问,拒绝Socket ip 访问 */
		String ip = request.getRemoteHost();
//		if (Constant.ipWhiteMap.containsKey(ip)) {
//			log.info("IP is Error!");
//			return;
//		}
		/* 判断Ssikey是否过期 */
		boolean flag = SpringHelper.getFetionSsoService().isExpireSsiKeys(
				response);
		if (flag) {
			log.info("Ssikey is Expired !");
			return;
		}
		FetionSsoManager ssomanager = new FetionSsoManager(request, response);
		/* 保持单点登录 */
		if (corecreden != null && !"".equals(corecreden)
				&& corecreden.length() > 5) {
			sid = SpringHelper.getFetionSsoService().staySsoLogin(response,
					corecreden, ssomanager);
		}
		log.info("=================");
		log.info("mp is : " + mp);
		log.info("sid is : " + sid);
		log.info("pwd is : " + pwd);
		log.info("digest is :" + digest);
		if ((sid == null || "".equals(sid)) && (mp == null || "".equals(mp))) {
			statuscode = "400"; // 请求格式错误
			SpringHelper.getFetionSsoService().getResponseDoc(response, "",
					statuscode, null, "", null, ssomanager);
			return;
		}
		if (pwd == null && digest == null) {
			statuscode = "400"; // 请求格式错误
			SpringHelper.getFetionSsoService().getResponseDoc(response, "",
					statuscode, null, "", null, ssomanager);
			return;
		}
		if ("".equals(pwd) && "".equals(digest)) {
			statuscode = "400"; // 请求格式错误
			SpringHelper.getFetionSsoService().getResponseDoc(response, "",
					statuscode, null, "", null, ssomanager);
			return;
		}
		String type = "", user = "";
		if (sid != null && !"".equals(sid)) {
			type = "1";
			user = sid;
		}
		if (mp != null && !"".equals(mp)) {
			type = "";
			user = mp;
		}
		UserInfo users = null;
		users = SpringHelper.getFetionSsoService().getUserInfo(type, user);
		if (users == null) {
			statuscode = "404"; // 用户不存在
			SpringHelper.getFetionSsoService().getResponseDoc(response, "",
					statuscode, null, "", null, ssomanager);
			return;
		}
		String state = String.valueOf(users.getStatus());
		if ("1".equals(state)) {
			if (pwd != null && !"".equals(pwd)) {
				boolean checkpass = SpringHelper.getFetionSsoService()
						.checkPwd(users, pwd);
				if (!checkpass) {
					statuscode = "401";// 用户密码验证失败
					SpringHelper.getFetionSsoService().getResponseDoc(response,
							"", statuscode, null, "", null, ssomanager);
					return;
				}
			}
			if (digest != null && !"".equals(digest)) {
				String digpwd = "";
				try {
					digpwd = DigPwd.getDigPwd(digest, users);
				} catch (Exception e) {
					e.printStackTrace();
				}
				if (!digest.equals(digpwd)) {
					statuscode = "401";// 用户密码验证失败
					SpringHelper.getFetionSsoService().getResponseDoc(response,
							"", statuscode, null, "", null, ssomanager);
					return;
				}
			}
		}
		
		if ("1".equals(state) || "2".equals(state)) {
			corec = ssomanager.createCoreCredenByAES(users, "WebUser");
			if ("".equals(corec)) {
				statuscode = "500";
				SpringHelper.getFetionSsoService().getResponseDoc(response, "",
						statuscode, null, "", null, ssomanager);
				return;
			}
		}
		statuscode = "200";

		if ("0".equals(state)) {
			userstate = Constant.USER_STATUS[0];
			statuscode = "404";
			SpringHelper.getFetionSsoService().getResponseDoc(response, corec,
					statuscode, users, userstate, domain, ssomanager);
			return;
		}
		if ("1".equals(state)) {
			userstate = Constant.USER_STATUS[1];
			SpringHelper.getFetionSsoService().getResponseDoc(response, corec,
					statuscode, users, userstate, domain, ssomanager);
			return;
		}

		if ("2".equals(state)) {
			userstate = Constant.USER_STATUS[2];
			SpringHelper.getFetionSsoService().getResponseDoc(response, corec,
					statuscode, users, userstate, domain, ssomanager);
			return;
		}
		if ("3".equals(state)) {
			userstate = Constant.USER_STATUS[3];
			statuscode = "434";
			SpringHelper.getFetionSsoService().getResponseDoc(response, corec,
					statuscode, users, userstate, domain, ssomanager);
			return;
		}

	}

	/**
	 * @throws ServletException
	 */

	public void init() throws ServletException {
		action = this.getInitParameter("action");
		super.init();
	}

	/**
	 * 
	 */
	public void destroy() {
		super.destroy();
	}

	/**
	 * @throws ServletException,IOException
	 * @param request
	 * @param response
	 */

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPress(request, response);
	}

	/**
	 * 
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doPress(request, response);
	}

	/**
	 * 
	 * @return action
	 */
	public String getAction() {
		return action;
	}

	/**
	 * 
	 * @param action
	 */
	public void setAction(String action) {
		this.action = action;
	}

}

⌨️ 快捷键说明

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