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