Индикатор состояния привода пружинной загрузки показывает подробную информацию при авторизации + безопасностьJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Индикатор состояния привода пружинной загрузки показывает подробную информацию при авторизации + безопасность

Сообщение Anonymous »

Я внедрил HealthIndicator в приложение весенней загрузки (актуатор 2.5.1) и попытался немного настроить параметры. К сожалению, в документации «четко» не указаны значения по умолчанию. И когда я их копаю... у меня другое поведение.
Не могли бы вы указать мне, является ли это недоразумением/неправильной настройкой/ошибкой? Спасибо.
Вопрос:
Как настроить привод, чтобы разрешить анонимные вызовы к обеим конечным точкам: /actuator/health и / привод/здоровье/пользователь с простым ответом (без подробностей и компонентов). И обе конечные точки возвращают полную информацию для аутентифицированных (и авторизованных) запросов.
К сожалению, ситуация осложняется настройкой безопасности Spring...
У меня две области
  • /api/** для приложений SPA с аутентификацией JWT
  • /api2/** для других инструментов с базовой аутентификацией
  • (больше ничего явно не обрабатывается. Таким образом, /actuator/** доступен для всех)
Случай 1: конфигурация по умолчанию

Код: Выделить всё

@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
...
return Health
.status(...)
.withDetail("detailDto", detailDto)
.build();
}
}
документы по конфигурации по умолчанию
management.endpoint.health.show-details=never
Ожидаемый ответ для /actuator/health

Код: Выделить всё

{"status":"DOWN"}
ОШИБКА?: реальный ответ С подробностями (опять же значение по умолчанию: никогда)

Код: Выделить всё

{
"status": "DOWN",
"components": {
"blobStorage": {
"status": "DOWN",
"details": ...
},
"diskSpace": {
"status": "UP",
"details": ...
},
"custom": {
"status": "UP",
"details": ...
},
"ping": {
"status": "UP"
}
}
}
Ожидаемый ответ для /actuator/health/custom — БЕЗ подробностей, но реальный ответ — С подробностями.
То, что подробности доступны в конфигурации по умолчанию, выглядит для меня как ОШИБКА.
Случай 2: изменена конфигурация

Код: Выделить всё

management.endpoint.health.show-details=when-authorized
Ожидаемое поведение таково, поскольку я не добавлял безопасность в /actuator/**. Любой запрос будет обработан как несанкционированный, поэтому он должен возвращать json БЕЗ подробностей.
Реальный ответ для /actuator/health такой же, как и ожидалось – просто статус: {"status":"DOWN" >. НО реальный ответ для /actuator/health/custom — HTTP 404 НЕ НАЙДЕН?!? Почему вся пользовательская конечная точка работоспособности отключена? И если таковые имеются, то я ожидал бы HTTP 401 UNAUTHENTICATED. Похоже на ОШИБКУ. В любом случае, я ожидал, что /actuator/health/custom будет работать, но без подробностей:

Код: Выделить всё

{"status":"DOWN"}
Случай 3: изменена конфигурация

Код: Выделить всё

management.endpoint.health.show-components=when-authorized
management.endpoint.health.show-details=when-authorized
И добавьте безопасность для /actuator/**

Код: Выделить всё

    @Configuration
@Order(3)
public static class ActuatorSecurityConfiguration extends WebSecurityConfigurerAdapter {

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
...
}

@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/actuator/**")
.authorizeRequests(authorize -> authorize
.anyRequest().permitAll()
)
.httpBasic();
// ?????
}
}
Endpoints /actuator/health возвращает {"status":"DOWN" для анонимных и полных сведений для аутентифицированных запросов, как и ожидалось. Но конечная точка /actuator/health/custom по-прежнему работает только для аутентифицированных запросов. Он возвращает 404 NOT FOUND для анонимных вызовов. Я не знаю, как правильно настроить безопасность, как указано в документации:

Если вы защитили свое приложение и хотите использовать его всегда, ваша конфигурация безопасности должна разрешать доступ к конечной точке работоспособности для как аутентифицированных, так и неаутентифицированных пользователей.


Подробнее здесь: https://stackoverflow.com/questions/691 ... d-security
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»