Das Projekt hat kürzlich eine IP-Black-White-List-Funktion hinzugefügt. Ich habe festgestellt, dass das Frontend immer noch domänenübergreifend angezeigt wird Hat nicht funktioniert. Schließlich habe ich dem Interceptor ein Urteil hinzugefügt. Das ist es. IP-Interceptor vor der Änderung
Geänderter IP-Interceptor
1
2
3
4
5
6
7
@Override
public
boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
// ----------- 加上这个就好了 -----------
if
(!(handler
instanceof
HandlerMethod)) {
return
true;
}
}
Nach dem Login kopieren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Configuration
@RestControllerAdvice
public
class
WebMvcConfig
implements
WebMvcConfigurer {
@Resource
private
IpFilterInterceptor ipFilterInterceptor;
@Override
public
void addInterceptors(InterceptorRegistry registry) {
// IP拦截器
registry.addInterceptor(ipFilterInterceptor)
.addPathPatterns(
"/**"
)
.order(5);
}
@Override
public
void addCorsMappings(CorsRegistry registry) {
registry.addMapping(
"/**"
)
.allowCredentials(true)
.allowedOriginPatterns(
"*"
)
.allowedMethods(
"*"
)
.allowedHeaders(
"*"
)
.maxAge(3600);
}
}
Nach dem Login kopierenSchließlich liegt die Ursache des Problems darin, dass der Interceptor dies tun muss Bestimmen Sie den Typ des Handlers in preHandle. Dieser muss HandlerMethod sein. Nur wenn
übergeben werden muss
Das obige ist der detaillierte Inhalt vonDer SpringBoot-Interceptor gibt „false' zurück, um zu zeigen, wie domänenübergreifende Probleme gelöst werden können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!