У меня есть следующий класс, который имеет условие CSRF if / else. Я читаю этот флаг из файла свойств и могу изменить значение флага, используя / refre sh конечную точку. :
@Order(-1)
@EnableWebSecurity
public class SomeConfigClass extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
String csrfFlag = somePropertyFile.getCsrfFlag();
if(isCsrfEnable){
http.csrf()....some other code
}else {
http.csrf().disable();
}
}
}
Проблема: поэтому, когда я отлаживаю код, я узнаю, что этот класс вызывается только один раз, когда контейнер Spring запускается. После этого если не будет звонить. Таким образом, даже после изменения флага CSRF в значение false, которое намерено отключить флаг CSRF, работать не будет, и будет проверка CSRF.
Чтобы избежать этого, мне нужно перезапустить / заново загрузить приложение, чтобы контейнер затем выберет конфигурацию fre sh из файлов свойств, что может привести к простою приложения. Кто-нибудь может иметь лучшее решение этой проблемы?
Цель: флаг отключения / включения CSRF должен быть выведен наружу. Можно переключить флаг и включить / отключить CSRF без перезапуска / повторной установки приложения.