2626import lombok .Getter ;
2727import lombok .NonNull ;
2828import lombok .Setter ;
29+ import lombok .extern .slf4j .Slf4j ;
2930
3031import org .springframework .web .filter .OncePerRequestFilter ;
3132
4041 * @since 0.3
4142 * @author daisuke
4243 */
44+ @ Slf4j
4345public class RequestIdFilter extends OncePerRequestFilter {
4446
4547 private static final String DEFAULT_REQUEST_ID_ATTRIBUTE = "requestId" ;
@@ -48,17 +50,14 @@ public class RequestIdFilter extends OncePerRequestFilter {
4850
4951 private static final String DEFAULT_REQUEST_ID_MDC_KEY = "requestId" ;
5052
51- @ NonNull
5253 @ Getter
5354 @ Setter
5455 private String requestIdAttribute = DEFAULT_REQUEST_ID_ATTRIBUTE ;
5556
56- @ NonNull
5757 @ Getter
5858 @ Setter
5959 private String requestIdMdcKey = DEFAULT_REQUEST_ID_MDC_KEY ;
6060
61- @ NonNull
6261 @ Getter
6362 @ Setter
6463 private String requestIdHeader = DEFAULT_REQUEST_ID_HEADER ;
@@ -77,19 +76,24 @@ public void destroy() {
7776 @ Override
7877 protected void doFilterInternal (HttpServletRequest request , HttpServletResponse response , FilterChain filterChain )
7978 throws ServletException , IOException {
80-
79+ log . trace ( "Start issue request ID" );
8180 String requestId = generator .generateRequestId (request );
81+ log .info ("Request ID issued: {}" , requestId );
8282 if (requestIdAttribute != null ) {
8383 request .setAttribute (requestIdAttribute , requestId );
8484 }
8585 if (requestIdMdcKey != null ) {
8686 MDC .put (requestIdMdcKey , requestId );
8787 }
88- response .setHeader (requestIdHeader , requestId );
88+ if (requestIdHeader != null ) {
89+ response .setHeader (requestIdHeader , requestId );
90+ }
8991 try {
9092 filterChain .doFilter (request , response );
9193 } finally {
92- MDC .remove (requestIdMdcKey );
94+ if (requestIdMdcKey != null ) {
95+ MDC .remove (requestIdMdcKey );
96+ }
9397 }
9498 }
9599}
0 commit comments