📄 loginproc.java
字号:
import java.io.*;
import java.util.*; /*Date*/
import java.security.*;
import javax.servlet.*;
import javax.servlet.http.*;
import Base.Action.*;
import Base.DataBean.*;
public class LoginProc extends Action
{
DefaultDataBean m_dBean = null;
//交易处理的入口函数,
//参数: DefaultDataBean类的实例
//返回值:0 - 出错,错误原因放在key: Action.perform.errReason, value:为String类
// 错误代码放在key: Action.perform.errCode, value:为Integer类
// 1 - 成功,可以继续执行后一个交易
public int perform(DefaultDataBean dBean) throws IOException, ServletException
{
m_dBean = dBean;
//刘中兵修改
String passin = dBean.getAttributeStr("UserPass");
String id = dBean.getAttributeStr("qpass.id");
String workid = dBean.getAttributeStr("qpass.workid");
String name = dBean.getAttributeStr("qpass.name");
String password = dBean.getAttributeStr("qpass.password");
String role = dBean.getAttributeStr("qpass.role");
// if( !hash(usr+passin).equals(passdb) )
if( !passin.equals(password) )
{
setError(2000,"密码错误");
return 0;
}
//
Calendar now = Calendar.getInstance();
String stub = hash(now.toString());
if( stub.length()==0 ) { setError(2001,"内部错误"); return 0; }
//刘中兵修改:与另一种验证方式统一********************************
m_request.getSession().setAttribute("ID",id);//***************
m_request.getSession().setAttribute("WORKID",workid);
m_request.getSession().setAttribute("NAME",name);
m_request.getSession().setAttribute("ROLE",role);
//****************************************************************
dBean.putAttribute("log_Stub",stub);
// dBean.putAttribute("log_AuthBit",dBean.getAttributeStr("qpass.AUTHBIT"));
//
Cookie newcookie = new Cookie("stub",stub);
m_response.addCookie(newcookie);
// Cookie usernamecookie = new Cookie("UserName",usr);
// m_response.addCookie(usernamecookie);
// Cookie usermbcookie = new Cookie("UserMb",usrMb);
// m_response.addCookie(usermbcookie);
Cookie useridcookie = new Cookie("UserID",workid);
m_response.addCookie(useridcookie);
dBean.putAttribute("UserID",workid);
//
// String isAgency = dBean.getAttributeStr("qpass.USRISAG");
// if(isAgency.equals("0") )dBean.putAttribute("log_AgID","0");
// else
// {
// String agid = dBean.getAttributeStr("qpass.AGID");
// if(agid.length() == 0) { setError(2002,"没有此用户"); return 0; }
// dBean.putAttribute("log_AgID",agid);
// }
return 1;
}
//
String hash(String str)
{
MessageDigest digest = null;
String strRs="";
try {
digest = MessageDigest.getInstance("MD5");
}
catch (NoSuchAlgorithmException nsae) {
setError(150,"Failed to load the MessageDigest");
return strRs;
}
digest.update(str.getBytes());
byte[] rs = digest.digest();
for(int i=0;i<rs.length;i++)
{
String ss = Integer.toHexString(rs[i]&0xff);
if(ss.length()<2) strRs = strRs + '0' + ss ;
else strRs = strRs + ss;
}
return strRs;
}
void setError(int errCode ,String errReason)
{
if(m_dBean != null)
{
if(errReason == null) { errReason = new String(""); errCode = 101; }
m_dBean.putAttribute("Action.perform.errReason",errReason );
m_dBean.putAttribute("Action.perform.errCode",new Integer(errCode) );
m_servlet.log(2,"Action report error: " + errReason);
}
return;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -