Wie kann ich Spring Security anweisen, authorizeRequests nur für einen bestimmten Port anzuwenden?

Wir haben unseren neuen Mikrodienst (mithilfe von Spring-Boot) so konfiguriert, dass sich die offizielle API auf Port 8080 befindet (der außerhalb unseres virtuellen Netzwerks auf normales HTTPS auf Port 443 abgebildet wird), während sich einige Verwaltungsfunktionen auf einer sekundären Ebene befinden HTTP-Port 7979. Diese werden nur innerhalb des virtuellen Netzwerks verwendet und dienen zur Überwachung, zum Lastenausgleich usw.

er @All-API-Zugriff muss mit OAuth gesichert werden, während die Verwaltungsfunktionen im Netzwerk frei zugänglich sein müssen. So haben wir die Spring-Sicherheit konfiguriert (http ist ein HttpSecurity-Objekt):

    http
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER)
        .and()
        .authorizeRequests()
            .antMatchers("/info").anonymous()
            .antMatchers("/health").anonymous()

            .antMatchers(HttpMethod.GET, "/warehouses/**").access(oauthScopeRead)
            .antMatchers(HttpMethod.PUT, "/warehouses/**").access(oauthScopeWrite)

            .anyRequest().denyAll();

Dies hat Auswirkungen auf beide Ports:/info und/health sind nicht autorisiert, während/warehouses benötigt Authentifizierung, und alles andere benötigt auch Authentifizierung (gibt 401 zurück, aber beim Aufrufen mit Authentifizierung wird 403 zurückgegeben).

Als es kein @ gi/info oder/health auf dem öffentlichen Port geben diese 404 für nicht autorisierte Benutzer zurück, während alles andere 401 zurückgibt. Ich bin damit unzufrieden und hätte gerne

Auf dem öffentlichen Port muss für alles eine Authentifizierung erfolgen (und 404 oder 403 erst nach der Authentifizierung zurückgegeben werden)uf dem Admin-Port ist überhaupt keine Authentifizierung erforderlich (Rückgabe 404 für alles, was nicht zu den konfigurierten Endpunkten gehört

Ich konnte nichts über Ports in den Spring Security Javadocs oder @ findereference documentation.

Was kann ich hier machen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage