Sichern Spring Boot REST-app mit basic-Authentifizierung

Habe ich nachgeschaut Artikel über die Verwendung von Spring Security, aber nicht ganz meine Antwort brauchen. Sie in der Regel befassen sich mit in-memory-Nutzer und nur-Text-Kennwörter.

, Was ich erreichen will:

Clients authentifizieren sich mit der Basic-Authentifizierung.

Gesichert Controller-Methoden wie folgt Aussehen:

  @RequestMapping(value = "/test")
  public ResponseEntity test(@AuthenticationPrincipal MyUser user){
      //Logic
  }

Möchte ich die controller-Methode eine MyUser-Objekt in seine Parameter, wenn der Benutzer authentifiziert ist, oder null, wenn nicht.

Ich bin die Speicherung von Hash-Passwort und salt des Benutzers in einer Datenbank, und ich habe einen service, der Sie authentifiziert gegeben Benutzername-Passwort-paar und gibt ein User-Objekt oder null, wenn die Authentifizierung erfolgreich war oder fehlgeschlagen ist, bzw.

Alles, was jetzt passiert, ist das abfangen jede Anfrage, Blick auf den header für die Basisauthentifizierung, vorbei an der info zu meiner benutzerdefinierten Authentifizierung-service und übergeben Sie dann Ihr Ergebnis in die controller-Methode. Leider habe ich bisher noch nicht in der Lage, das zu tun.


Ich lese zur Verwendung von benutzerdefinierten UserDetailsService, aber das scheint nur zu behandeln, Holen der Benutzer-Daten aus der Datenbank, und keine Authentifizierung. Ich kann nicht herausfinden, wie stecken Sie alle Komponenten zusammen.

Können Sie zeigen mich in die richtige Richtung, wie man diese eher einfachen workflow zu arbeiten?


BEARBEITEN

Ich bin nicht mit XML-config und die einzige Sicherheit, die zugehörigen config die ich habe, ist:

@Configuration
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class ApplicationSecurity extends WebSecurityConfigurerAdapter {
    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.antMatcher("/**").csrf().disable();

        http.authorizeRequests()
                .antMatchers("/user").permitAll()
                .antMatchers("/user/**").permitAll()
                .anyRequest().authenticated();
    }
}
Im Grunde, was Sie suchen, sind Sie auf hinzufügen <http-basic /> in die <http> tag (wenn Sie die XML-style-config). Für eine genauere Antwort, können Sie fügen Sie einige details über Ihre Konfiguration, um Ihre post? Zum Beispiel die Dateien / Klassen und die web.xml (wenn Sie irgendwelchen haben)
Ich bin nicht mit xml-config, ich habe es im code. Es ist nicht viel, es ist jedoch. Ich habe es zu der Frage

InformationsquelleAutor Martin Melka | 2016-04-09

Schreibe einen Kommentar