Sto provando a fissare gli endpoint attuatore Spring Boot. Ho una protezione funzionante sull'interfaccia REST /api
, ma non sembra funzionare la sicurezza degli endpoint incorporati.Impossibile assicurare gli endpoint degli attuatori di gestione di avvio Spring
Ho installato il raggruppamento dei punti finali nel mio application.properties
:
management.context-path=/management
ho questo nel mio 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);
}
Quando uso il mio browser per andare a nulla al di sotto /api
, ho ottenere un 403 indietro come previsto. Quando si va a/management/info
per esempio, vedo il JSON viene restituito in cui mi aspetterei anche un 403.
Ho anche provato ad aggiungere questo al mio file application.properties
:
management.security.role=ADMIN
Ma questo non ha aiutato neanche.
Gli spettacoli output di debug:
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/**']
E allora perché cerco il GET HTTP:
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
Completamente corretto! I 2 che ho provato sono '/ info' e'/health' ed entrambi sembrano essere sempre disponibili. Ad esempio, se utilizzo '/ beans', restituisco il 403 previsto. Puoi forse aggiungere queste informazioni [nei documenti] (http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#production-ready-sensitive-endpoints)? –
È lì: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready-sensitive-endpoints, http://docs.spring.io/spring-boot/docs/corrente/di riferimento/htmlsingle/# production-ready-endpoint. Se vuoi suggerire ulteriori chiarimenti, ti preghiamo di farlo. –
Infatti, sembra che non abbia notato la colonna 'Sensitive' nella tabella. –