Java 웹 필터 인증 로그인 인터페이스에 로그인하지 않음 방지

오늘 ssh2로 간단한 시스템을 썼는데 문제가 하나 발견되었습니다. 저는 이 시스템이 먼저 로그인을 해야만 홈페이지에 들어갈 수 있습니다. 그러나 저는 브라우저에서 홈페이지 주소를 직접 입력해서 들어갈 수 있습니다. 이것은 틀림없이 좋지 않을 것입니다. 안전성이 전혀 없습니다. 나중에 자료를 조사한 결과 필터에 로그인해야 한다는 것을 발견하고 시도해 보았습니다. 과연 로그인하지 않고 홈페이지에 들어갈 수 있는 위험을 피할 수 있습니다. 다음은 제가 정리한 상세한 절차입니다.
1. 필터 클래스를 필터링하여 필터 인터페이스를 구현하는 권한

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 javax.servlet.http.HttpSession;
public class LoginFilter implements Filter {
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
  // TODO Auto-generated method stub
 }
 @Override
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  //  request,response,session 
  HttpServletRequest servletRequest = (HttpServletRequest) request;
  HttpServletResponse servletResponse = (HttpServletResponse) response;
  HttpSession session = servletRequest.getSession();
  //  URI
  String path = servletRequest.getRequestURI();
  //System.out.println(path);
  //  session 
  String empId = (String) session.getAttribute("empId");
  /* Constants.java, 
  for (int i = 0; i < Constants.NoFilter_Pages.length; i++) {
   if (path.indexOf(Constants.NoFilter_Pages[i]) > -1) {
    chain.doFilter(servletRequest, servletResponse);
    return;
   }
  }*/
  //  
  if(path.indexOf("/login.jsp") > -1) {
   chain.doFilter(servletRequest, servletResponse);
   return;
  }
  //  , 
  if (empId == null || "".equals(empId)) {
   //  
   servletResponse.sendRedirect("/JingXing_OA/login.jsp");
  } else {
   //  , 
   chain.doFilter(request, response);
  }
 }
 @Override
 public void destroy() {
  // TODO Auto-generated method stub
 }
}
2. 그리고 웹에서.xml에서 로그인 권한 검증이 필요한 JSP 파일을 구성합니다.
a. 특정 JSP 파일 (예: a.jsp) 의 경우 로그인 인증이 필요합니다.

<!--   -->
<filter>
  <filter-name>login</filter-name>
  <filter-class>com.jingxing.oa.filter.LoginFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>login</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
b. 디렉터리 (예: a/디렉터리) 의 모든 디렉터리에 있는 파일은 로그인 검증이 필요합니다.

<!--   -->
 <filter>
  <filter-name>login</filter-name>
  <filter-class>com.jingxing.oa.filter.LoginFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>login</filter-name>
  <url-pattern>/a/*</url-pattern>
 </filter-mapping>
위에서 말한 것은 편집자가 여러분께 소개한 자바 웹 필터 검증 로그인이 인터페이스에 로그인하지 않는 것을 방지하는 것입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 것이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 여러분에게 회답할 것입니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기