Denis stephanov:
¿Puede usted ayudar a los puntos finales de actuador seguras en la primavera de arranque 2? Revisé la migración guía pero no me ayuda.
Aquí está mi configuración de seguridad:
@Configuration
@EnableWebSecurity
public class SecConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole("ADMIN")
.anyRequest().authenticated();
}
}
pero cuando voy a la http://localhost:8080/actuator/health
que se carga sin inicio de sesión. Otros puntos finales con prefijo /actuator
no requiere inicio de sesión también. ¿Que hice mal?
También agrego OAuth con esta configuración:
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient("client-id")
.scopes("read", "write")
.authorizedGrantTypes("password")
.secret("xxxxxx")
.accessTokenValiditySeconds(6000);
}
}
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/ajax/**").authenticated()
.and()
.csrf()
.disable();
}
}
Francisco Recio:
Si su aplicación es un servidor de recursos que no necesita la clase SecConfig.
Así que si usted lo quita, en su ResourceServerConfig
clase se le pueda prestar los actuadores y dejar de administración a través de:
@Configuration
@EnableResourceServer
public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/ajax/**").authenticated()
.antMatchers("/actuator/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.csrf()
.disable();
}
}
Añado .anyRequest().authenticated()
para asegurar el resto de los criterios de valoración de aplicación.