Это немного абстрактный вопрос, и есть немного абстрактный ответ.
[flow 1] Представьте себе большое офисное здание, на первом этаже которого находится главный ресепшн, который на первом этаже можно пропустить в зданиеи если вы хотите пойти в компанию, скажем, B , они приведут вас туда, но они не могут впустить вас в офис любой компании, потому что они честны, и у каждого офиса есть свой прием и когдаВы пришли на приемную в офисе B , в которой вам нужно будет пройти аутентификацию (просто гость, аноним, который хочет видеть свой офис, работника / пользователя, администратора и т. д.), и только они могут, если онивпустим вас в любого отца.
[flow 2] Представьте также, что в том же большом офисном здании есть ресторан / магазин / туалет, когда вы приходите вГлавный ресепшн на первом этаже и спросите их, где находится ресторан, они приведут вас туда, вы не должны здесь проходить аутентификацию, они не знают, кто вы, и не должны: web.ignoring().antMatchers("/restaurant/**");
[поток3] Представьте себе, что в том же большом офисном здании есть компания C , которая решила открыть галерею на своем этаже (в одной комнате, а не во всем офисе)
- они спросили у главной стойки регистрации на первом этаже «если кто-нибудь придет посмотреть нашу галерею, просто впустите их туда без аутентификации на нашем приеме»
web.ignoring().antMatchers("/C/gallery/**");
- и они могут сделать другой способ обработать поток 1 и когда человек придет к их стойке регистрации и скажет, что хочет посмотреть их галерею, они просто впустят их без аутентификации
http.authorizeRequests().antMatchers("/C/gallery/**").permitAll();
В обоих случаях результатбудет таким же, посетитель увидит галерею компании C , но в потоке с http
задействовано много шагов / персон / (фильтров в случае Spring Security
) - это немного медленнее инет необходимости в статических ресурсах.
Главный прием на первом этаже - это - WebSecurity
Это только один прием во всем приложении / здании.
Прием любой компанииэто WebSecurityConfigurerAdapter
(у каждого WebSecurityConfigurerAdapter
есть только один HttpSecurity
), вы можете иметь их столько, сколько пожелаете, и у каждого из них может быть полностью отдельный поток аутентификации, требования безопасности и т. д., но все они могут спроситьWebSecurity
для предоставления доступа к некоторым ресурсам кому-либо без какой-либо аутентификации.WebSecurity
даже не знает, как аутентифицировать пользователя - такой опции нет.
Подводя итог вашему вопросу, эти два подхода должны дать одинаковый эффект, если нет, это означает, что WebSecurityConfigurerAdapter
имеет некоторыедополнительная конфигурация (по умолчанию ex crsf и т. д.), которая также меняет поведение WebSecurityConfigurerAdapter
, по умолчанию имеет ExceptionTranslationFilter
, которая перехватывает исключения безопасности и возвращает соответствующий статус (401, 403).Чтобы дать вам лучший ответ, вы должны предоставить более подробную информацию.Создайте новый проект только с указанной конфигурацией, отключите http.csrf().disable()
.