서블릿 필터에 여러 URL 패턴 제공
내 JSF 애플리케이션에서 서블릿 필터를 사용하고 있습니다. 내 응용 프로그램에 세 개의 웹 페이지 그룹이있는 내 서블릿 필터에서 다음 페이지에 대한 인증을 확인합니다.
내 폴더
/Admin/ *.xhtml
/Supervisor/*.xhtml
/Employee/*.xhtml
그리고 나는 다음 web.xml
과 같이 쓰고 있다
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ems.admin.servlet.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Employee/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Supervisor/*</url-pattern>
</filter-mapping>
하지만 같은 요청
http://localhost:8080/EMS2/faces/Html/Admin/Upload.xhtml
필터에 들어 가지 언어.
이 3 개의 폴더에 보안을 제공해야합니다.
이 문제를 해결하는 방법?
URL 패턴이 시작되는 경우 /
루트에 최다입니다. /Admin/*
URL 패턴만의 페이지와 일치합니다 http://localhost:8080/EMS2/Admin/*
(즉, 즉 가정 할 /EMS2
경로입니다),하지만 당신은 실제로 http://localhost:8080/EMS2/faces/Html/Admin/*
당신의 URL 패턴이 일치하는 일이 없습니다.
URL 패턴에 다음과 /faces/Html
같이 접두사를 가져야합니다 .
<url-pattern>/faces/Html/Admin/*</url-pattern>
또는 /faces/Html
예를 들어 페이지를 열 수 있도록 URL 에서 경로를 제거 할 수 있도록 웹 프로젝트 구조 / 구성을 할 수도 있습니다 http://localhost:8080/EMS2/Admin/Upload.xhtml
.
필터 매핑 구문은 모두 괜찮습니다. 그러나 여러 URL 패턴을 지정하는 더 간단한 방법은 <filter-mapping>
여러 <url-pattern>
항목이있는 하나만 사용하는 것 입니다 .
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/faces/Html/Employee/*</url-pattern>
<url-pattern>/faces/Html/Admin/*</url-pattern>
<url-pattern>/faces/Html/Supervisor/*</url-pattern>
</filter-mapping>
필터 정의에 주석 메서드를 사용하는 경우 (에서 정의하는 것과 반대 web.xml
), @WebFilter
주석 에 매핑 배열을 추가하기 만하면 됩니다.
/**
* Filter implementation class LoginFilter
*/
@WebFilter(urlPatterns = { "/faces/Html/Employee","/faces/Html/Admin", "/faces/Html/Supervisor"})
public class LoginFilter implements Filter {
...
그리고 FYI와 사용하는 서블릿을 사용하는 서블릿 작업이 수행됩니다.
/**
* Servlet implementation class LoginServlet
*/
@WebServlet({"/faces/Html/Employee", "/faces/Html/Admin", "/faces/Html/Supervisor"})
public class LoginServlet extends HttpServlet {
...
참고 URL : https://stackoverflow.com/questions/11645516/giving-multiple-url-patterns-to-servlet-filter
'ProgramingTip' 카테고리의 다른 글
C # .NET을 사용하여 폴더에 "Everyone"권한 추가 (0) | 2020.11.04 |
---|---|
Putty (ssh)를 사용하여 서버에 파일을 업로드하는 방법 (0) | 2020.11.04 |
Google 크롬에서 두 요소 스타일의 차이점 (0) | 2020.11.04 |
WebView는 온라인 일 때 웹 사이트를로드하고 오프라인 일 때 로컬 파일을로드합니다. (0) | 2020.11.04 |
Swift에서 typedef를 어떻게 뻗으십니까? (0) | 2020.11.04 |