Я пытаюсь защитить конечные точки Actuators
внутри Spring Boot
проекта. Однако вместо использования готовой конфигурации Spring Security
для Actuators
:
management:
security:
enabled: true
role: ADMINISTRATOR
Слишком просто мне нужно подключить Actuators
к нашей пользовательской безопасности (здесь CAS
SSO).
Сначала попробуйте добавить context-path
для Actuators
:
management:
security:
enabled: true
role: ADMINISTRATOR
context-path: /management
И обновите конфигурацию WebSecurityConfigurerAdapter
@Override
protected void configure(HttpSecurity http) throws Exception {
...
http.authorizeRequests()..antMatchers("/management/**").hasRole(Role.ADMINISTRATOR.toString());
...
}
Он работает, но я должен жестко указать Actuators
context-path
, поэтому, когда я хочу обновить management.context-path
, мне нужно обновить мою безопасность.
Я знаю, что можно получить значение management.context-path
, но как управлять им, когда значение равно ""
?
Вы можете ответить мне на @Autowired
EndpointHandlerMapping
и получить список конечных точек Actuators
... Наконец, я буду копировать прошлую логику как ManagementSecurityAutoConfiguration.ManagementWebSecurityConfigurerAdapter
.
Кроме того, ManagementSecurityAutoConfiguration.ManagementWebSecurityConfigurerAdapter
@ConditionalOnMissingBean
указывает себя, но ManagementSecurityAutoConfiguration.ManagementWebSecurityConfigurerAdapter
является внутренне-статическим защищенным классом, поэтому невозможно отключить его, не передавая параметр management.security.enabled=false
, и это может быть странно, потому что ваша конфигурация говорит management.security.enabled=false
, но на самом деле конечные точки защищены...
Заключение
- Есть ли способ переопределить (только часть) правильно
Actuators
security - Могу я что-то упустить, и я совершенно не прав?