web.xml에서 로그인 필터를 설정하는 방법
1.web.xml 설정
login_filter
cn.com.trueway.sys.filter.LoginFilter
skip
/loginController/*.do
login_filter
*.do
2. 필터 코드
package cn.com.trueway.sys.filter;
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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.com.trueway.sys.entity.SysUser;
import cn.com.trueway.sys.util.ConstantUtil;
public class LoginFilter implements Filter {
private String skip;
public String getSkip() {
return skip;
}
public void setSkip(String skip) {
this.skip = skip;
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.setSkip(filterConfig.getInitParameter("skip"));
}
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
String[] skips = null;
if (skip != null) {
skips = skip.split(";");
}
String url = httpServletRequest.getServletPath();
boolean flag = true;
if (skips != null) {
for (int i = 0; i < skips.length; i++) {
String sk = skips[i];
if (sk.indexOf("*") != -1) {
// *
if (sk.startsWith("*")) {
if (url.endsWith(sk.replace("*", ""))) {
flag = false;
break;
}
} else if (sk.endsWith("*.do")) {
if (url.startsWith(sk.replace("*.do", ""))) {
flag = false;
break;
}
}
} else {
//
if (sk.equals(url)) {
flag = false;
break;
}
}
}
}
if (flag) {
SysUser user = (SysUser) httpServletRequest.getSession().getAttribute(ConstantUtil.LOGIN_USER);
if (user != null) {
filterChain.doFilter(servletRequest, servletResponse);
} else {
httpServletResponse.sendRedirect(httpServletRequest.getContextPath() + "/loginController/login.do");
}
} else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
@Override
public void destroy() {
this.setSkip(null);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.