Ошибка 401 - логин / пароль исполнительного механизма пружинной загрузки в браузере

Я использую пружинную загрузку с приводом и добавляю конфигурацию безопасности:

management.port=8088
management.address=127.0.0.1
management.security.enabled=true
security.user.name=admin
security.user.password=secret
management.security.role=SUPERUSER

curl -u admin:secret http://127.0.0.1:8088/metrics все в порядке, но с Chrome ( http://127.0.0.1:8088/metrics): {"timestamp":1506692938036,"status":401,"error":"Unauthorized","message":"Full authentication is required to access this resource.","path":"/metrics"}

Как использовать логин / пароль в URL или заголовках?

РЕДАКТИРОВАТЬ 1

Я пробую решение @Lachezar Balev (авторизация: Basic YWRtaW46c2VjcmV0 + admin:secret@ in url), но это KO

2 ответа

В URL:

http://admin:secret@127.0.0.1:8088/metrics

В качестве заголовка:

Authorization: Basic YWRtaW46c2VjcmV0

Используйте CustomAuthenticationEntryPoint с аннотацией @Component

@Configuration
@EnableWebSecurity
public class AdminEntryPointsSecurityConfig {

    @Bean
    public PasswordEncoder encoder() {
        return new BCryptPasswordEncoder();
    }

    @Configuration
    @Order(1)
    public static class App1ConfigurationAdapter extends WebSecurityConfigurerAdapter {

        @Autowired
        private CustomAuthenticationEntryPoint authenticationEntryPoint;

        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.antMatcher("/actuator/**")
                .authorizeRequests().anyRequest().hasRole("ADMIN")
                .and().httpBasic().authenticationEntryPoint(authenticationEntryPoint)    
                .and().exceptionHandling().accessDeniedPage("/403");
        }   




        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();        
            auth.inMemoryAuthentication()
                .passwordEncoder(encoder)
                .withUser("act")
                .password(encoder.encode("act"))            
                .roles("ADMIN");
        }
    }

}

Затем выполните базовую аутентификацию.

@Component
public class CustomAuthenticationEntryPoint extends BasicAuthenticationEntryPoint {

    @Override
    public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException {
        response.addHeader("WWW-Authenticate", "Basic realm=\"" + getRealmName() + "\"");
        response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
        final PrintWriter writer = response.getWriter();
        writer.println("HTTP Status " + HttpServletResponse.SC_UNAUTHORIZED + " - " + authException.getMessage());
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        setRealmName("ADMIN");
        super.afterPropertiesSet();
    }

}

Пожалуйста обновите:

management.security.enabled=true

чтобы:

management.security.enabled=false
Другие вопросы по тегам