Ich versuche, die Frühlings-Boot-actuactor Endpunkte sichern zu sichern. Ich habe Arbeitssicherheit auf meiner REST-Schnittstelle /api
, aber die Sicherheit auf den integrierten Endpunkten hinzufügen scheint nicht zu funktionieren.Unable Frühling Bootmanagement Aktor Endpunkte
management.context-path=/management
Ich habe dies in meinem Java Config
@Override
protected void configure(HttpSecurity http) throws Exception
{
http.csrf().disable();
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeRequests()
.antMatchers("/api/**").hasRole("READONLY")
.antMatchers("/management/**").hasRole("ADMIN");
SecurityConfigurer<DefaultSecurityFilterChain, HttpSecurity> securityConfigurer = new XAuthTokenConfigurer(userDetailsServiceBean());
http.apply(securityConfigurer);
}
Wenn ich meinen Browser etwas unterhalb /api
, ich zu gehen:
Ich habe bei der Gruppierung der Endpunkte meines application.properties
einrichten Holen Sie sich 403 zurück, wie erwartet. Wann/management/info
zum Beispiel gehen, sehe ich die JSON zurückgegeben werden, wo ich auch ein 403.
erwarten würde ich auch versucht, diese zu meine application.properties
Datei:
management.security.role=ADMIN
Aber das auch nicht geholfen hat.
Die DEBUG Ausgabe zeigt:
2014-05-02 10:15:30 DEBUG [localhost-startStop-1] ExpressionBasedFilterInvocationSecurityMetadataSource -
Adding web access control expression 'hasRole('ROLE_READONLY')', for Ant [pattern='/api/**']
2014-05-02 10:15:30 DEBUG [localhost-startStop-1] ExpressionBasedFilterInvocationSecurityMetadataSource -
Adding web access control expression 'hasRole('ROLE_ADMIN')', for Ant [pattern='/management/**']
Und warum dann versuche ich die HTTP-GET:
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/css/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/js/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/images/**'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/**/favicon.ico'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] AntPathRequestMatcher - Checking match of request : '/management/info'; against '/management/info'
2014-05-02 10:16:39 DEBUG [http-nio-8443-exec-4] FilterChainProxy - /management/info has an empty filter list
Völlig richtig! Die 2, die ich ausprobiert habe, sind '/ info' und'/health' und beide scheinen immer verfügbar zu sein. Wenn ich zum Beispiel "/ beans" verwende, bekomme ich die erwarteten 403 zurück. Sie können vielleicht diese Informationen hinzufügen [im docs] (http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-sensitive-endpoints)? –
Es ist da: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-sensitive-endpoints, http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/# produktionsfertige Endpunkte. Wenn Sie weitere Erläuterungen vorschlagen möchten, tun Sie dies bitte. –
Tatsächlich scheint ich die Spalte "Sensitiv" in der Tabelle nicht bemerkt zu haben. –