WPF MVVM Используя команды по сравнению с обработчиками событий

http.antMatcher(...) - означает, применить это http и все, что настроено здесь, когда встречается образец в antMatcher.

http.authorizeRequests()... - определяет ваши разрешения, если пользователь нажал на эту конечную точку, он должен иметь «ADMIN», «logged» и т. Д.


В вашем FirstWaveFilters вы должны начать свой http с http.antMatcher():

http.antMatcher("/HQ/test_web/**");
http.authorizeRequests().antMatchers("/HQ/test_web/**").anonymous()
   .and()
   .addFilterBefore(new CustomFilter(),BasicAuthenticationFilter.class);

Если вы не добавите http.antMatcher(...);, то этот http будет перехватывать все URL и SecondWaveFilters никогда не будет достигнуто.

http.authorizeRequests().antMatchers("/HQ/test_web/**").anonymous() - означает, что любой анонимный пользователь может нажать /HQ/test_web/**, но это не означает «применять FirstWaveFilters, когда /HQ/test_web/**», это просто означает, что любой, кто шипит /HQ/test_web/**, может быть анонимным.

10
задан Denis Troller 1 April 2009 в 11:54
поделиться

1 ответ

Я сказал бы, что Ваше эмпирическое правило не плохо.

По моему мнению, базовое беспокойство является "действительно ли кодом, является определенным для представления, или это обращается к бизнес-логике?".

Нормально иметь код в представлении, если тот код должен строго здесь изменить представление а не выполнить какой-либо вид бизнес-логики. Вашим примером изменения размера шрифта является главный пример кода, который прекрасно подходит в представлении (и увеличил бы шум в ViewModel, мешая понимать и поддерживать). В сущности Вы уже делаете часть этого при использовании триггеров, поэтому дело не в этом странный.

Следует иметь в виду, хотя при использовании модульных тестов будет очень трудно протестировать тот бит логики представления. При необходимости в в протестированном Вы могли бы быть более обеспеченным помещением его в viewmodel.

14
ответ дан 3 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: