Mit der Sicherheit um Ausnahmen in Spring Boot Resource Server

Wie kann ich meine benutzerdefinierte ResponseEntityExceptionHandler oder OAuth2ExceptionRenderer Exceptions ausgelöst von Spring security in einer reinen Ressourcen-server?

Implementierten wir eine

@ControllerAdvice
@RestController
public class GlobalExceptionHandler extends ResponseEntityExceptionHandler {

also, Wann immer es ist ein Fehler auf der Ressourcen-server, die wir wollen, zu beantworten, mit

{
  "message": "...",
  "type": "...",
  "status": 400
}

Den resource-server verwendet die Anwendung.Eigenschaften der Einstellung:

security.oauth2.resource.userInfoUri: http://localhost:9999/auth/user

zur Authentifizierung und Autorisierung einer Anfrage an unsere auth-server.

Jedoch keine spring security Fehler wird immer umgehen, unsere exception-handler bei

    @ExceptionHandler(InvalidTokenException.class)
    public ResponseEntity<Map<String, Object>> handleInvalidTokenException(InvalidTokenException e) {
        return createErrorResponseAndLog(e, 401);
    }

produzieren und entweder

{
  "timestamp": "2016-12-14T10:40:34.122Z",
  "status": 403,
  "error": "Forbidden",
  "message": "Access Denied",
  "path": "/api/templates/585004226f793042a094d3a9/schema"
}

oder

{
  "error": "invalid_token",
  "error_description": "5d7e4ab5-4a88-4571-b4a4-042bce0a076b"
}

So, wie ich die Sicherheitseinstellungen konfigurieren exception-handling für ein Ressourcen-server? Alles, was ich jemals finden werden Beispiele auf, wie Sie die Auth-Server durch die Implementierung einer benutzerdefinierten OAuth2ExceptionRenderer. Aber ich kann nicht finden, wo dieser Draht auf die Ressource server-security-Kette.

Unsere einzige Konfiguration/setup ist:

@SpringBootApplication
@Configuration
@ComponentScan(basePackages = {"our.packages"})
@EnableAutoConfiguration
@EnableResourceServer
InformationsquelleAutor Pete | 2016-12-14
Schreibe einen Kommentar