2017-10-03 1 views
1

JSON을 반환하는 Grizzly 서버를 만들었습니다. 그것은 잘 작동 :Grizzly 서버에 필터를 추가하는 방법은 무엇입니까?

final ResourceConfig resourceConfig = new ResourceConfig().packages("com.mypackage"); 
    resourceConfig.setApplicationName("My-Service"); 
    resourceConfig.register(JacksonJaxbJsonProvider.class); 
    server = GrizzlyHttpServerFactory.createHttpServer(uri, resourceConfig); 

내가 x-forwarded-proto가 설정 위치 (http 경우/재 인증 헤더는 유효한 키

  • (302)로 응답 포함

    • 선택하면 필터 것을 필요 https 상당)
    • x-forwarded-for이 흰색 목록에 없으면 403/금지됨으로 응답합니다.

    는 지금은이 같은 검사를 수행합니다

    @Path에게 ("V1") 공용 클래스 외관 {

    @GET 
    @Path("/getinfo/{infotype}") 
    @Produces(MediaType.APPLICATION_JSON) 
    public Response getNextPwc(@HeaderParam("authorization") String authorizationKey, 
         @Context Request request, 
         @HeaderParam("x-forwarded-proto") String xForwardedProto, 
         @HeaderParam("x-forwarded-for") String xForwardedFor, 
         @PathParam("infotype") String infoType) { 
        Response errorResponse = getErrorResponse(authorizationKey, request, xForwardedFor, xForwardedProto); 
        if (errorResponse != null) { 
         return errorResponse; 
        } 
        ... start work with infoType here ... 
    

    의미가 있습니다 - 서버가 제대로 작동 -하지만 코드에 틀린 장소 (그리고 나는 그것을 모든 새로운 방법에 추가해야한다는 것을 기억해야합니다) 그래서 필터 메커니즘으로 옮기고 싶습니다.

    도움이 매우 감사합니다.

    (나는 x-forwarded-protox-forwarded-for 검사 방탄하지 알고 있지만,없는 것보다는 낫다.) 업데이트

  • 답변

    0

    : 이 작품, 그것이이 설정되어야했는데 어떻게 아마 비록 :

    getFilterChain()에서
    final HttpServer server = new HttpServer(); 
    
    final NetworkListener networkListener = new NetworkListener(
        "secured-listener", 
        "0.0.0.0", 
        9191 
    ); 
    server.addListener(networkListener); 
    server.start(); 
    
    networkListener.getFilterChain().add(5, new BaseFilter(){ 
        @Override 
        public NextAction handleRead(FilterChainContext ctx) throws IOException { 
         return super.handleRead(ctx); 
        } 
    }); 
    System.in.read(); 
    

    공지 지수 (추가 -..!이 정지 조치를 반환 원인 필터 전에 HttpServerFilter을해야

    +0

    재미있는, 나는 이것이 시도해하지만 어떻게되어 있습니다 "당신"'transport' 및 "내"'봉사 r' 연결? –

    +0

    업데이트 해 주셔서 감사합니다! 이제 나는 이해하기 시작했습니다. –

    관련 문제