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