2016-06-02 12 views
1

Ich habe die "Sprungfeder-Starter-Aktor" Abhängigkeit zu meinem Spring-Boot-Projekt hinzugefügt.federstarter Stellantrieb zusammen mit Feder Sicherheit und Form Basic Auth

Das Projekt verfügt bereits über formbasierte Sicherheit.

Der Stammkontext für die Anwendung ist "/".

Management: kontext Pfad:

Ich habe den Antrieb am Rahmen root "/ Actuators", indem zu application.yaml hinzugefügt/Aktoren

Die unempfindlichen Aktoren arbeiten, wie beispiel als "Gesundheit".

Wenn ich versuche, auf die empfindlichen Aktoren zuzugreifen, erscheint das Popup für Benutzername/Passwort. Die Authentifizierung findet statt, aber dann sehe ich "403" Zugriff verweigert. Hier

ist die Konfiguration für Web-Sicherheit:

@Configuration 
@EnableWebSecurity 
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
private AuthenticationLookupService authenticationLookupService; 
private AuthenticationManagerBuilder authenticationManagerBuilder; 
private UrlSuccessAuthenticationHandler successHandler; 

@Autowired 
public void setAuthenticationLookupService(AuthenticationLookupService authenticationLookupService) { 
    this.authenticationLookupService = authenticationLookupService; 
} 

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) { 
    this.authenticationManagerBuilder = auth; 
} 

@Autowired 
public void setSuccessHandler(UrlSuccessAuthenticationHandler successHandler) { 
    this.successHandler = successHandler; 
} 

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.authorizeRequests() 
      .antMatchers("/", "/index.html", "/auth/**").permitAll() 
      .anyRequest().authenticated() 
      .and() 
      .formLogin() 
      .loginPage("/index.html").successHandler(successHandler) 
      .permitAll() 
      .and() 
      .logout() 
      .permitAll(); 

    http.csrf().disable(); // todo: fix later 
} 

@PostConstruct 
public void process() throws Exception { 
    this.authenticationManagerBuilder.userDetailsService(this.authenticationLookupService).passwordEncoder(new ShaPasswordEncoder()); 
} 

}

Antwort

1

hinzufügen unter Werte in application.properties oder application.yml und dann, wenn Pop-up für Benutzernamen und Kennwort eingeben, stellt diese Anmeldeinformationen

security.user.name=admin 
security.user.password=secret 

Wenn Sie Ihre Werte angeben, überprüfen Sie, ob dieser Benutzer die Rolle ADMIN hat, da der Aktuator den ADMIN-Rollenbenutzer für den Zugriff auf sensible benötigt Endpunkte.

aktualisieren Wenn Sie mit Feder-Boot-1.5. * + Dann sollten Benutzer ACTUATOR Rolle

+0

haben denke ich, nur der Teil über ADMIN Rolle hier eigentlich die relevant ist. – Nikem

+0

@Nikem Wenn der Benutzer die Aktorwerte nur mit bestimmten Berechtigungsnachweisen abrufen möchte, können wir die in meiner Antwort angegebene Vorgehensweise einschränken – rajadilipkolli

Verwandte Themen