/**
* Title:业务认证过滤
* Description:业务认证过滤类
* Copyright: Copyright(c) 2005-2008
* Company: fmcc&newland
* @author: zhangxw
* @version: 1.0 Date: 2006-02-10
*/
package com.newland.common.auth.filter;
import java.io.IOException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import business.jsf.model.OperLoginBean;
import business.sys.OperLoginEnv;
import com.newland.common.auth.data.AuthInfoForm;
import com.newland.common.auth.data.AuthTypeForm;
import com.newland.common.auth.jsf.AuthMgr;
import com.newland.common.data.CompositeVO;
public class AuthFilter implements Filter {
private static final String MENU_ID = "menuId";
private static final String OBJECT_TYPE = "object_type";
private static final String AUTH_FLAG = "authFlag";
private static final String USER_NO = "userNo";
private static final String HOME_CITY = "homeCity";
private static final String NOTE = "note";
private static final String H_CITY = "hCity";
private static final String SYS_FUNC_ID = "sysFuncId";
private static final String PASS_FLAG = "passFlag";
private static final String ACCOUNET_FLAG = "accounetFlag";
// 超级密码级别,不做认证类型叠加
private static final String SUPER_PASSWORD_LEVEL = "60";
private static final String AUTH_TYPE_OPTION_SET = "authTypeOptionSet";
private static final String AUTH_TYPE_HIDDEN_SET = "authTypeHiddenSet";
private static final String MSG = "msg";
//提示信息
private static final String memoMsg="memoMsg";
private static final String COMMON_AUTH_PAGE = "/common/authentication/common_auth.jsf";
private static final String TELEPHONE_AUTH_PAGE = "/common/authentication/telephone_auth.jsf";
private static final String SECOND_AUTH_PAGE = "bm_changeSimCard_authentication.jsf";//需二次话单验证 的补换卡页面
private static final String TELEPHONE_AUTH_FLAG = "telephone_auth_flag";//需二次话单验证 的补换卡页面
private static final String AUTH_METHOD = "authMethod";
private static final String CERT_TYPE = "certType";//证件类型
private static final String GROUP_ID = "groupId"; //查询返回的集团编码
private static final String CUSMGR_NAME = "cusMgrName"; //客户经理名字
private static final String CUSMGR_ID = "cusMgrId"; //客户经理工号
private static final String AGENT = "agent"; //代办人名字
private static final String AGENT_CertNo = "agentCertNo"; //代办人证件号码
private static final String NAME = "name"; //客户二代身份证姓名
private static final String BIRTHDAY = "birthday"; //客户二代身份证出生日期
private static final String IC_ADDR = "ic_addr"; //客户二代身份证储存的住址
private static final String NATION = "nation"; //客户二代身份证民族
private static final String VISA_ORG = "visa_org"; //客户二代身份证签发机关
private static final String IC_STARTDATE = "ic_startdate"; //客户二代身份证有效期起始时间
private static final String IC_ENDDATE = "ic_enddate"; //客户二代身份证有效期失效时间
private static final String PICTURE = "picture"; //客户二代身份证照片数据流
// session里面的标志,表示是话单认证的信息--档案修改页面来的
private static final String TELEPHONE_INFO_BRAND = "TELEPHONE_INFO_BRAND";
// session里面的标志,表示是话单认证的信息--补换卡页面来的
private static final String TELEPHONE_INFO_SIM = "TELEPHONE_INFO_SIM";
//"认证方式",放在request里面供打印使用
private static final String AUTH_TYPE_PRINT = "AUTH_TYPE_PRINT";
private FilterConfig filterConfig;
public void init(FilterConfig fconfig) throws ServletException {
this.filterConfig = fconfig;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httprequest = (HttpServletRequest) request;
ServletContext servletContext = this.filterConfig.getServletContext();
// 设置uri,每次提交都是同一个uri,当认证成功时,forward到这个uri
String uri = httprequest.getRequestURI();
httprequest.setAttribute("uri", uri);
// 取得session
HttpSession session = httprequest.getSession(true);
// 根据请求uri判断是否进行认证
if (uri != null && uri.indexOf("authentication.js") > 0) {
// homeCity标志
String homeCityFlag = httprequest.getParameter(H_CITY);
httprequest.setAttribute(H_CITY, homeCityFlag);
// 跳转页面,默认为用户号码页面
RequestDispatcher requestDispatcher = servletContext
.getRequestDispatcher(COMMON_AUTH_PAGE);
// 认证标志
String authFlag = null;
// 认证方法标志:1、query 2、auth
String authMethod = null;
// 用户号码
String userNo = null;
// 归属地市
String homeCity = null;
// 号码类型
String objType = null;
// 机构名称
String organName = "";
// 功能号
String sysFuncId = httprequest.getParameter(SYS_FUNC_ID);
//话单认证标志
String telephone_auth_flag = httprequest.getParameter(TELEPHONE_AUTH_FLAG);
// 用户号码页面和业务认证页面的标志
authMethod = httprequest.getParameter(AUTH_METHOD);
// 用户归属地市
OperLoginBean operBean = (OperLoginBean) session
.getAttribute("OperLoginBean");
OperLoginEnv operLoginEnv = (OperLoginEnv) session
.getAttribute("OperLoginEnv");
// 菜单id,先从页面取,没有的话从session中取。唯一从session中取的机会是点击菜单
String menuId = sysFuncId;
if (operBean != null && menuId == null) {
menuId = operBean.getCurSysfuncID();
}
if (operLoginEnv != null) {
organName = operLoginEnv.getOrganName();
}
httprequest.setAttribute(MENU_ID, menuId);
// 该模块是否有帐户认证的权限标志
boolean accountFlag = canSelectAccount(menuId);
httprequest.setAttribute(ACCOUNET_FLAG, "" + accountFlag);
// 非跨省认证
if (!"1".equals(homeCityFlag)) {
// 由用户号码页面提交的,所有该页面提交的都forward到隐式提交页面(集成了发送短信功能,如果有必要,进行分离)
if ("query".equalsIgnoreCase(authMethod)
|| "note".equalsIgnoreCase(authMethod)) {
String hiddenForward = "/common/authentication/common_auth_hidden_submit.jsp";
try {
userNo = httprequest.getParameter(USER_NO);
homeCity = httprequest.getParameter(HOME_CITY);
objType = httprequest.getParameter(OBJECT_TYPE);
if (userNo == null || "".equals(userNo)) {
// 设置提示信息
httprequest.setAttribute(MSG, "用户号码不能为空!");
} else if ("query".equalsIgnoreCase(authMethod)) {
// 根据userNo查询认证类型
AuthMgr authMgr = new AuthMgr();
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA语言,JSP,JDBC笔记
共131个文件
txt:131个
需积分: 0 8 下载量 159 浏览量
2009-12-10
01:06:07
上传
评论
收藏 121KB RAR 举报
温馨提示
JAVA常用类及相关的笔记和资料;是半年来的笔记。主要记录了JDBC,JSP,JAVA基本的资料
资源推荐
资源详情
资源评论
收起资源包目录
JAVA语言,JSP,JDBC笔记 (131个子文件)
001_AuthFilter.txt 73KB
003_server.xml.txt 18KB
3_startmydomain.sh.txt 12KB
002_多线程状态.txt 10KB
001_VO_PO概念.txt 7KB
001_字节错误.txt 5KB
001_DriverManager.txt 4KB
001_JSP实现文件下载应注意的几个问题.txt 3KB
1_startmydomain.cmd.txt 3KB
001_Servlet简介.txt 3KB
001_Java特点.txt 3KB
006_字符串.txt 3KB
001_配置及环境安装.txt 3KB
002_加载驱动.txt 2KB
002_优化Statement对象.txt 2KB
001_Tomcat.txt 2KB
007_代码块与函数同步.txt 2KB
001_资料.txt 2KB
002_Thread与Runnable区别.txt 2KB
001_JAVA基本环境配置.txt 2KB
001_Runnable说明.txt 2KB
002_JdbcUrl.txt 2KB
001_Driver接口.txt 2KB
001_用Thread创建线程.txt 2KB
006_多线程的同步.txt 2KB
001_pageContext方法.txt 2KB
005_Statement对象.txt 2KB
003_创建数据库连接.txt 2KB
002_几个配置问题.txt 2KB
002_配置环境变量.txt 2KB
002_变量定义格式.txt 2KB
001_Context.txt 2KB
001_技巧.txt 1KB
001_request方法.txt 1KB
1_一维数组.txt 1KB
001_类方法.txt 1KB
1_第一个程序.txt 1KB
001_session方法.txt 1KB
3_多维数组.txt 1KB
001_response方法.txt 1KB
002_注解.txt 1KB
003_两种多线程方式的对比.txt 1KB
001_JDBC介绍.txt 1KB
004_字符.txt 1KB
001_基本类型常量.txt 1KB
002_HTML响应机制.txt 1KB
2_二维数组.txt 1KB
006_PreparedStatement对象.txt 1KB
005_循环语句.txt 1005B
001_取路径及IP等信息.txt 987B
004_执行语句.txt 966B
001_application方法.txt 946B
003_DAO模式.txt 941B
002_JDBC7步骤.txt 926B
001_同步使用方法.txt 923B
000_9个对象.txt 918B
003_注意.txt 904B
0_第一个类.txt 878B
001_命令说是.txt 847B
003_声明.txt 843B
001_ClassLoader.txt 837B
001_Jsp.txt 833B
000_JAVA介绍.txt 818B
001_out方法.txt 817B
002_数组复制.txt 803B
001_启动不起来.txt 803B
008_Switch选择.txt 799B
001_采用适当缓冲数据行.txt 788B
001_URL.txt 757B
004_条件语句.txt 756B
002_整数.txt 752B
003_浮点.txt 751B
003_getParameterMap.txt 731B
004_表达式.txt 723B
001_exception方法.txt 720B
006_跳转.txt 706B
002_用Runnable接口创建线程.txt 680B
005_Bean.txt 626B
002_实现的示例.txt 592B
1_JAVA代码执行过程.txt 532B
001_数据类型转换.txt 505B
002_常数.txt 495B
005_布尔类型.txt 483B
1_java执行JAVA程序.txt 480B
004_类修饰符.txt 464B
3_示例1.txt 458B
007_标签中断.txt 452B
001_config方法.txt 422B
001_常用语法.txt 422B
002_表达式类型自动提升.txt 411B
004_后台线程.txt 387B
001_JAVA数据类型.txt 383B
001_JAVA语法格式.txt 352B
008_线程间的通讯.txt 340B
001_幂.txt 321B
001_变量含义.txt 321B
2_main函数.txt 306B
001_基本语句.txt 301B
002_相关问题.txt 296B
006_读取配置文件.txt 277B
共 131 条
- 1
- 2
资源评论
Lenuanzz
- 粉丝: 21
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功