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

📄 portalfilter.java

📁 java数据库操作工具类
💻 JAVA
字号:
package com.baosight.util;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.*;
import java.sql.*;

/**
 * @author steven
 *
 */
public class PortalFilter implements Filter {
	public static final String TOKEN_NAME = "token";

	public static final String CHARSET_NAME = "encoding";

	public static final String ERROR_PAGE_NAME = "error_page";

	private String token_para = "token";

	private String charset;

	private String error_page;

	private FilterConfig config;

	/*
	 * (non-Javadoc)
	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
	 */
	public void init(FilterConfig arg0) throws ServletException {

		config = arg0;

		String tc = config.getInitParameter(TOKEN_NAME);
		if (tc != null) token_para = tc;

		charset = config.getInitParameter(CHARSET_NAME);
		error_page = config.getInitParameter(ERROR_PAGE_NAME);

		System.out.println("[frg:filter init]token_name:"
				+ token_para + "||charset=" + charset);
	}

	/*
	 * (non-Javadoc)
	 *
	 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
	 *      javax.servlet.ServletResponse, javax.servlet.FilterChain)
	 */
	public void doFilter(ServletRequest req, ServletResponse res,
			FilterChain chain) throws IOException, ServletException {

		if( charset != null ){
			req.setCharacterEncoding( charset );
		}
		if( "false".equals( token_para ) ){
			chain.doFilter(req, res);
			return;
		}

		String uriStr =((HttpServletRequest) req).getRequestURI().toLowerCase();
		System.out.println("###[frg:uriStr]"+uriStr);
		if( uriStr.indexOf("rolecontrol.jsp") != -1 || uriStr.indexOf("setsession.jsp") != -1
			|| uriStr.indexOf("extraservice") != -1 || uriStr.indexOf("login.jsp") != -1
		){
			chain.doFilter(req, res);
			return;
		}

		String token = req.getParameter(token_para);
		HttpSession session = ((HttpServletRequest) req).getSession(true);
		Object uip_userid = session.getAttribute("uip_userid");

		if (uip_userid == null){
			if( token != null ){
				boolean rt = initSession(session,token);
				if( rt ){
					chain.doFilter(req, res);
				}else{
					System.out.println("###[frg:filter]validate failure!###");
					((HttpServletResponse)res).sendRedirect( error_page );
				}
			}else{
				System.out.println("[frg:filter]can not find token,goto "+ error_page);
				((HttpServletResponse)res).sendRedirect( error_page );
			}
		}else{
			chain.doFilter(req, res);
		}

	}

	/**
	 * @param token
	 */
	private boolean initSession(HttpSession session,String token) {
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		try {
			String sql = "SELECT USER_ID, UIP_ID,USER_NAME,USER_ROLE,ORG_NAME,loginname,b.UIP_TOKEN FROM V_UIP_OPERATOR a , uiptab.UIP_USERTOKENS b WHERE a.TOKEN_USERID = b.uip_userid AND b.UIP_TOKEN='"
					+ token + "'";
			String userType = null;
//			String next_url = null;

			conn = DBFactory.borrowConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			if (rs.next()) {
                          userType = rs.getString("USER_ROLE");
                          session.setAttribute("uip_userid", rs.getString("USER_ID"));
                          session.setAttribute("uip_username", rs.getString("USER_NAME"));
                          session.setAttribute("uip_usertype", userType);
                          session.setAttribute("uip_usermodule", userType);
                          session.setAttribute("uip_id", rs.getString("UIP_ID"));

                          System.out.println(session.getAttribute("uip_userid").toString());
                          System.out.println(session.getAttribute("uip_username").toString());
                          System.out.println(session.getAttribute("uip_usertype").toString());
                          System.out.println(session.getAttribute("uip_usermodule").toString());
                          System.out.println(session.getAttribute("uip_id").toString());

			}else{
				return false;
			}
			return true;
		} catch (Exception e) {
			System.out.println(e);
			return false;
		} finally {
			try {
				if (rs != null)
					rs.close();
				if (stmt != null)
					stmt.close();
				if (conn != null)
					conn.close();
			} catch (Exception ee) {

			}
		}

	}

	/*
	 * (non-Javadoc)
	 *
	 * @see javax.servlet.Filter#destroy()
	 */
	public void destroy() {

	}

}

⌨️ 快捷键说明

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