diff --git a/src/main/java/com/gcsc/guide/config/ApiAccessLogInterceptor.java b/src/main/java/com/gcsc/guide/config/ApiAccessLogInterceptor.java index d1db598..c3de261 100644 --- a/src/main/java/com/gcsc/guide/config/ApiAccessLogInterceptor.java +++ b/src/main/java/com/gcsc/guide/config/ApiAccessLogInterceptor.java @@ -49,7 +49,8 @@ public class ApiAccessLogInterceptor implements HandlerInterceptor { } } - String originDomain = extractOriginDomain(request.getHeader("Origin")); + String originDomain = resolveOriginDomain( + request.getHeader("Origin"), request.getHeader("Referer")); String queryString = request.getQueryString(); if (queryString != null && queryString.length() > 2000) { @@ -75,14 +76,15 @@ public class ApiAccessLogInterceptor implements HandlerInterceptor { } } - private String extractOriginDomain(String origin) { - if (origin == null || origin.isBlank()) { + private String resolveOriginDomain(String origin, String referer) { + String url = (origin != null && !origin.isBlank()) ? origin : referer; + if (url == null || url.isBlank()) { return null; } try { - return URI.create(origin).getHost(); + return URI.create(url).getHost(); } catch (Exception e) { - return origin; + return null; } } }