web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!-- 默认访问index页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 加载时 统一认证拦截器 Start -->
<filter>
<filter-name>TassSSOLoginFilter</filter-name>
<filter-class>com.filter.TassSSOLoginFilter</filter-class>
<!-- 应用编号 -->
<init-param>
<param-name>APPID</param-name>
<param-value>53</param-value>
</init-param>
<!-- 应用权限开关 -->
<init-param>
<param-name>VAPP</param-name>
<param-value>true</param-value>
</init-param>
<!-- 票据AD校验开关 -->
<init-param>
<param-name>VAD</param-name>
<param-value>true</param-value>
</init-param>
<!-- 票据AD校验URL -->
<!--init-param>
<param-name>VADURL</param-name>
<param-value>
http://127.0.0.1:8080/bakgcjAppl/verifyad.jsp
</param-value>
</init-param-->
<!-- 票据IP校验URL -->
<!-- init-param>
<param-name>VIPURL</param-name>
<param-value>
http://127.0.0.1:8080/bakgcjAppl/verifyip.jsp
</param-value>
</init-param -->
<!-- 保存用户信息、应用信息到Session会话开关 -->
<!-- init-param>
<param-name>UFAPP</param-name>
<param-value>true</param-value>
</init-param-->
<!-- 错误信息显示URL -->
<init-param>
<param-name>ERRURL</param-name>
<param-value>
http://127.0.0.1:8080/bakgcjAppl/EIP.jsp
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>TassSSOLoginFilter</filter-name>
<!-- 对login页面的请求进行地址拦截 -->
<url-pattern>/login.jsp</url-pattern>
</filter-mapping>
<!-- 统一认证拦截器 End -->
</web-app>
TassSSOLoginFilter
package com.filter;
import java.io.IOException;
import java.net.URLEncoder;
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.HttpServletResponse;
import com.tass.util.Base64;
public class TassSSOLoginFilter implements Filter{
/* 应用编号 */
public static String APPID;
/* 应用权限开关 */
private static boolean VAPP;
/* 票据AD校验开关 */
private static boolean VAD;
/* 票据AD校验URL */
private static String VADURL;
/* 票据IP校验URL */
private static String VIPURL;
/* 保存用户信息、应用信息到Session会话开关 */
private static boolean UFAPP;
/* 错误信息显示URL */
public static String ERRURL;
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
/* 设置编码方式,并清除页面缓存*/
resp.setContentType("text/html; charset=GBK");
resp.setHeader("Pragma","No-cache");
resp.setHeader("Cache-Control","no-cache");
resp.setDateHeader("Expires", 0);
String username = request.getParameter("username");
if(username == null){
chain.doFilter(request, response);
}else{
//加密
if(username.equals("zhangsan")){
username = URLEncoder.encode("BASE64" + Base64.encode(username.getBytes()),"utf-8");
resp.sendRedirect("login.jsp?desc=" + username);
}else{
resp.sendRedirect(ERRURL);
}
}
}
/**
* @description 拦截器初始化
* 用于获取拦截器配置信息
* @param filterConfig 拦截器配置
*/
public void init(FilterConfig filterConfig) throws ServletException {
/* 应用编号 */
APPID = filterConfig.getInitParameter("APPID");
APPID = APPID==null?"":APPID;
System.out.println("TassSSOLoginFilter APPID:"+APPID);
/* 应用权限开关 */
String vapp = filterConfig.getInitParameter("VAPP");
VAPP = (vapp!=null)&&("true".equals(vapp));
System.out.println("TassSSOLoginFilter VAPP:"+VAPP);
/* 票据AD校验开关 */
String vad = filterConfig.getInitParameter("VAD");
VAD = (vad!=null)&&("true".equals(vad));
System.out.println("TassSSOLoginFilter VAD:"+VAD);
/* 票据AD校验URL */
VADURL = filterConfig.getInitParameter("VADURL");
VADURL = VADURL==null?"":VADURL;
System.out.println("TassSSOLoginFilter VADURL:"+VADURL);
/* 票据IP校验URL */
VIPURL = filterConfig.getInitParameter("VIPURL");
VIPURL = VIPURL==null?"":VIPURL;
System.out.println("TassSSOLoginFilter VIPURL:"+VIPURL);
/* 保存用户信息、应用信息到Session会话开关 */
String ufApp = filterConfig.getInitParameter("UFAPP");
UFAPP = (ufApp!=null)&&("true".equals(ufApp));
System.out.println("TassSSOLoginFilter UFAPP:"+UFAPP);
/* 错误信息显示URL */
ERRURL = filterConfig.getInitParameter("ERRURL");
ERRURL = ERRURL==null?"":ERRURL;
System.out.println("TassSSOLoginFilter ERRURL 1:"+ERRURL);
// ERRURL += "?appid="+APPID;
// System.out.println("TassSSOLoginFilter ERRURL 2:"+ERRURL);
}
}
index.jsp
<a href="login.jsp?username=zhangsan">登录</a>
url:
http://127.0.0.1:8080/bakgcjAppl/login.jsp?desc=BASE64emhhbmdzYW4%3D