Spring - Authentication object was not found

sascha-sphw

Top Contributor
ich habe eine Spring boot Rest Applikation abgesichert über JWT Bearer Token (spring-boot-starter-oauth2-resource-server). Funktioniert soweit auch alles, bis auf die Upload Funktion. Hier bekomme ich folgende Fehlermeldung.
Java:
An Authentication object was not found in the SecurityContext

Die Methode sieht so aus.
Java:
@PreAuthorize("hasAuthority('SCOPE_demo:write')")
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@Override
public ResponseEntity<Object> upload(@RequestParam final MultipartFile file) {
    ...
    return ResponseEntity.created(location).build();
}

Der Request so.
Bash:
curl --request POST \
  --url http://localhost:8080/upload \
  --header 'Authorization: Bearer <token>' \
  --header 'content-type: multipart/form-data; boundary=---011000010111000001101001' \
  --form 'file=@file.exe'

Alle anderen Methoden funktionieren einwandfrei.
Jemand eine Idee?
Danke
 
Lustig! Weder bei Up-, noch bei Download ist der Security Context gesetzt, in beiden Fällen ist er null. Fragt sich nur warum. Ggf. bin ich heute mal wieder Blind und finde es nicht. Aber weder meine Suche über Mr. Google, noch in der Spring Doku werde ich fündig.
 
OK, alles klar, jetzt ist es amtlich. Ich bin ein Trottel... Ich hatte die URI ignoriert.
Java:
@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring()
            .antMatchers("/upload");
}

Ist wohl doch Zeit Schluss zu machen für Heute. 🙃
 

Neue Themen


Zurück
Oben