오늘 저는 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.servletrpender; javax.servlet.http.http.httpervletrequest; import javax.servlet.http.http.httpsession; import javax.servlet.http.httpession; public class loginfilter emplements filter {@override public void init (filterconfig filterconfig) servletexemence { / retem remether into rement { / remence). Method Stub} @override public void dofilter (servletrequest 요청, servletreponse 응답, 필터 체인 체인)는 ioexception, servletexception {// 다음 코드 httpservletrequest servletrequest = (httpservletrequest) 요청; httpservletresponse servletresponse = (httpservletresponse) 응답; httpsession session = servletrequest.getSession (); // 사용자 문자열 경로 = servletrequest.getRequesturi ()에 의해 요청 된 URI를 가져옵니다. //system.out.println(path); // 세션에서 직원 작업 번호 정보를 가져옵니다. String Empid = (String) Session.getAttribute ( "Empid"); /*클래스 상수를 만듭니다. java는 필터링없이 페이지를 말합니다 (int i = 0; i <constants.nofilter_pages.length; i ++) {if (path.indexof (constants.nofilter_pages [i])> -1) {chain.dofilter (servletrequest, servletResponse); 반품; }}*// 로그인 페이지에 필터링이 필요하지 않음 if (path.indexof ( "/ login.jsp")> -1) {chain.dofilter (servletrequest, servletResponse); 반품; } // 판단 : 직원 정보가 검색되지 않은 경우 로그인 페이지로 점프하면 (Empid == null || "".Equals (empid)) {// 로그인 페이지로 점프하십시오. ServletResponse.SendRedirect ( "/jingxing_oa/login.jsp"); } else {// 로그인,이 요청 chain.dofilter (요청, 응답)를 계속합니다. }} @override public void destroy () {// todo 자동 생성 메소드 스터브}}}2. 그런 다음 Web.xml에서 로그인 권한 확인이 필요한 JSP 파일을 구성합니다.
에이. 특정 JSP 파일 (예 : a.jsp) 인 경우 로그인하고 확인해야합니다.
<!-로그인 필터 구성-> <filter> <filter-name> 로그인 </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <filter-mapping> <filter-name> login </filter-name>/*</url-pattern>
비. 디렉토리 (예 :/ 디렉토리) 인 경우 전체 디렉토리의 파일을 로그인하고 확인해야합니다.
<!-로그인 필터 구성-> <filter> <filter-name> 로그인 </filter-name> <filter-class> com.jingxing.oa.filter.loginfilter </filter-class> </filter> <filter-mapping> <filter-name> login </filter-name> </url-pattern>/a </ur tattern>
위의 것은 로그인이 내가 소개 한 인터페이스에 들어가는 것을 방지하기위한 Java Web Filter Verification Login입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!