|
|
@@ -9,7 +9,7 @@ import org.springframework.web.servlet.ModelAndView;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 访问日志拦截器
|
|
|
@@ -20,7 +20,7 @@ import java.util.Set;
|
|
|
@Slf4j
|
|
|
@Component
|
|
|
public class AccessLogInterceptor implements HandlerInterceptor {
|
|
|
- private final Set<String> refererSet = Set.of(
|
|
|
+ private final List<String> list = List.of(
|
|
|
"https://bili.reghao.cn/",
|
|
|
"https://admin.reghao.cn/",
|
|
|
"https://account.reghao.cn/");
|
|
|
@@ -37,7 +37,7 @@ public class AccessLogInterceptor implements HandlerInterceptor {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- if (referer == null || !refererSet.contains(referer)) {
|
|
|
+ if (referer == null || !hasPrefix(referer)) {
|
|
|
log.info("request {} from {}", uri, referer);
|
|
|
response.setStatus(403);
|
|
|
return false;
|
|
|
@@ -46,6 +46,16 @@ public class AccessLogInterceptor implements HandlerInterceptor {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ private boolean hasPrefix(String referer) {
|
|
|
+ for (String prefix : list) {
|
|
|
+ if (referer.startsWith(prefix)) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public void postHandle(HttpServletRequest request, HttpServletResponse response,
|
|
|
Object handler, @Nullable ModelAndView modelAndView) throws Exception {
|