2013-08-27 1 views
0

나는PostProcessInterceptor의 리소스 클래스 필드에 액세스 하시겠습니까?

@Path("secure") 
@RequestScoped 
// @SecurityChecked 
public class SecureResource { 

    @Context 
    private HttpServletRequest request; 

    @GET 
    @SecurityChecked 
    public Response getUser() { 
     return Response.ok("authenticated successfully!").build(); 
    } 

    @POST 
    public Response login(@FormParam("user") @Nonnull final String user, 
          @FormParam("password") @Nonnull final String password) { 
     final String authToken = TokenUtils.createToken(user); 
     return Response.ok().header(AUTH_TOKEN, authToken).build(); 
    } 

    @PUT 
    public Response updateUser() { 
     return Response.ok("updating user").build(); 
    } 
} 

같은 자원 클래스를 가지고 있고 내가 여기에 요청 객체에 액세스 할 수있는 방법을 나는 확실하지 않다

@Interceptor 
@Provider 
@ServerInterceptor 
@SecurityChecked 
public class SecurityCheckInterceptor implements PostProcessInterceptor { 
    private static final Pattern PATTERN = Pattern.compile(":"); 
    private static final Logger LOGGER = LoggerFactory.getLogger(SecurityCheckInterceptor.class); 
    @Override 
    public void postProcess(final ServerResponse response) { 
     // access the Resource class request object 

    } 
} 

헤더 클래스의 request으로 접근하고 싶습니다 어디 PostProcessInterceptor

당신에게

감사 도와주세요

답변

0

왜 PostProcessInterceptor에서 요청에 액세스 하시겠습니까? 위선적으로 사용하실 수 있습니까?

public static class MyInterceptor implements PreProcessInterceptor{ 
... 
@Override 
public ServerResponse preProcess(HttpRequest request, ResourceMethod method){...} 
} 

여기에 사용할 수 있습니까?

+0

예, 요청에 '헤더'가 있으며 응답을 보내기 전에 요청에 새 헤더를 생성해야합니다. 그것은 의미가 있습니까? – daydreamer

+0

메신저는이 API에 익숙하지 않습니다. 어쩌면 http://www.mastertheboss.com/resteasy/resteasy-interceptors-tutorial/page-2에서 respone 개체가 preprocess 핸들러에서 수동으로 생성 된 것을 볼 수 있습니다 - new Headers ()이 전달됩니다. 아마도 거기에 헤더를 추가 할 수있을 것입니다. – freakman

관련 문제