2017-05-04 5 views
0

Ich möchte die Authentifizierung für die/Login-Anfrage überspringen.Authentifizierung überspringen für/Anmeldung im Spring Boot

In meinem Serveranwendung, schrieb ich diese Methode, es zu erreichen:

@Configuration 
    @EnableResourceServer 
    protected class ResourceServer extends ResourceServerConfigurerAdapter { 

     @Override 
     public void configure(HttpSecurity http) throws Exception { 
      http.authorizeRequests().antMatchers("/login").permitAll(); 
     } 
    } 

Aber ich diese Antwort jetzt bekommen (beim Versuch, die /login Endpunkt zu schlagen, egal welche Argumente/headers ich gehe):

{ 
    "timestamp": 1493881871867, 
    "status": 415, 
    "error": "Unsupported Media Type", 
    "exception": "org.springframework.web.HttpMediaTypeNotSupportedException", 
    "message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported", 
    "path": "/login" 
} 

Versuchte consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, und einige andere ähnliche Lösungen, aber immer noch die gleiche Antwort bekommen.

erstellt auch einen Endpunkt für/login, aber das ist nicht getroffen zu werden:

@RequestMapping(value = "/login", 
      method = RequestMethod.POST, 
      produces = "application/json") 
    public ResponseEntity login(@RequestBody Map<String, String> requestBody) { 
     System.out.println("DO I EVEN REACH HERE?"); 
     return null; 
    } 

Ich bin auf Frühling sehr neu und herausfinden kann, nicht den Fehler, den ich hier tue. Irgendeine Hilfe?

+0

'.antMatchers ("/login * "). Anonymous()'? Übrigens schickst du wirklich JSON? Es könnte nur Inhaltstyp falsch sein. – StanislavL

+0

hat nicht funktioniert .. :( –

+0

Versuchen Sie '.anyRequest();' zu Ihrem Anruf hinzuzufügen. 'http.authorizeRequests(). AntMatchers ("/login "). AllowAll.anyRequest();' – Kai

Antwort

0

Fehlermeldung ist;

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported 

Das bedeutet, dass Sie über ein HTML-Formular an /login senden. aber Ihr login Endpunkt akzeptiert keine Formularparameter. Ändern Sie den login Endpunkt wie folgt

@RequestMapping(value = "/login", 
     method = RequestMethod.POST, 
     produces = "application/json") 
public ResponseEntity login(@RequestParam("username") String username, @RequestParam("password") String password) { 
    System.out.println("DO I EVEN REACH HERE?"); 
    return null; 
} 
Verwandte Themen