1

봄 RestController의 HTTP 헤더 필드 컨트롤러는 SpringBoot에 있습니다.검증 나는 사용자 정의 헤더 'X-클라이언트 ID가'는 REST로 전송 HTTP 요청 내에서 <code>Repository</code>에 정의 된 값으로 설정되어 있는지 여부를 확인하는 방법을 찾고 있어요

@RequestHeader(value="User-Agent")과 같은 메소드의 헤더를 포함하는 자습서 (예 :)를 참조하십시오. 모든 메소드에 해당 라인을 작성하고 값을 확인하기 위해 공통 유효성 검증기 빈을 주입해야한다고 가정합니다.

또 다른 stackoverflow answerHandlerInterceptor을 사용하는 것이 좋습니다. 헤더 값과 REST 끝점에 적용 할 수 있는지 확실하지 않습니다.

그렇다면 특정 헤더가 설정되었는지 여부를 클래스/REST- 컨트롤러의 모든 메소드에서 확인하는 것이 좋습니다.

답변

2

은 기본적으로 가장 쉬운 (그리고 가장 논리적 인) 방법은 당신의 컨트롤러에 도달하기 전에 요청을 잡을 것입니다. 이는 다른 응답 상태 인 HandlerInterceptor 또는 Filter과 같은 단순한 OncePerRequestFilter을 사용하여 얻을 수 있습니다.

doFilter()가 마지막이므로 해당 클래스를 확장하고 적절한 헤더 값을 추출한 다음 필요에 따라 값을 확인하고 값에 따라 Exception을 throw하거나 체인을 계속 사용하십시오.

+0

여기 예제를 통해 완벽한 설명을 발견했다고 생각합니다. http://stackoverflow.com/a/35458670/3105453. 도움을 주셔서 감사 드리며 올바른 방향을 제시하십시오. – user3105453