[SPRING] Java / Jetty : Embedded Jetty에 필터를 추가하는 방법
SPRINGJava / Jetty : Embedded Jetty에 필터를 추가하는 방법
임베디드 Jetty로 작업 중이며 각 요청 전에 인증을 확인하기 위해 서블릿 필터를 추가하려고합니다. 이 예제를 따라했지만 서명이 변경된 것 같습니다.
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.0.4.v20130625</version>
</dependency>
내 방파제 스타터는 다음과 같이 보입니다.
public class JettyStarter {
public static void main( final String[] args ) throws Exception {
Server server = new Server(8080);
final ServletHolder servletHolder = new ServletHolder(new CXFServlet());
final ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
// context.addFilter(AuthenticationFilter.class, "/*", FilterMapping.REQUEST);
context.addServlet(servletHolder, "/platform/*");
context.addEventListener(new ContextLoaderListener());
context.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName());
context.setInitParameter("contextConfigLocation", Config.class.getName());
server.setHandler(context);
server.start();
server.join();
}
}
줄의 주석을 제거 할 때
// context.addFilter(AuthenticationFilter.class, "/*", FilterMapping.REQUEST);
나는 서명이 변경된 것을 발견했다. 그래서 작은 걸음을 뒤로 물려서 임베디드 부두와 함께 요청 초기에 실행되는 필터를 추가하고 조건이 충족 될 때만 요청을 계속하도록 허용하려면 어떻게해야합니까?
AuthenticationFilter 클래스의 시작은 다음과 같습니다.
import javax.servlet.*;
import java.io.IOException;
public class AuthenticationFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {}
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {}
@Override
public void destroy() {}
}
해결법
-
==============================
1.EnumSet.of (DispatcherType.REQUEST)를 찾으려고합니다. 아래에 전체 예제가 포함되어 있습니다.
EnumSet.of (DispatcherType.REQUEST)를 찾으려고합니다. 아래에 전체 예제가 포함되어 있습니다.
import java.io.IOException; import java.util.EnumSet; import javax.servlet.DispatcherType; 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.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.ServletHandler; public class JettyFilter { public static void main(final String[] args) throws Exception { Server server = new Server(8080); ServletHandler handler = new ServletHandler(); server.setHandler(handler); handler.addServletWithMapping(HelloServlet.class, "/*"); handler.addFilterWithMapping(HelloPrintingFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST)); server.start(); server.join(); } public static class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().println("<h1>Hello SimpleServlet</h1>"); } } public static class HelloPrintingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.print("hello from filter"); } @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void destroy() {} } }
from https://stackoverflow.com/questions/19530806/java-jetty-how-to-add-filter-to-embedded-jetty by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 3.1에서 JDO 구성하기 (0) | 2019.02.11 |
---|---|
[SPRING] 콩의 조건부 주사 (0) | 2019.02.11 |
[SPRING] JAXB 주석이있는 Spring 3.1.2의 등록자 MappingJackson2HttpMessageConverter (0) | 2019.02.11 |
[SPRING] spring-security-context.xml에서 사용자 이름 / 패스워드를 이동하는 방법? (0) | 2019.02.11 |
[SPRING] Spring MVC에서 Gzip 압축 된 요청 바디를 디코딩하는 법 (0) | 2019.02.11 |