Характер весенней безопасности
Spring Security, по сути, представляет собой серию фильтров, которые затем вставляются в цепь фильтров в виде отдельного фильтра, называемого FilterChainProxy. Как показано на рисунке.
Фактически, в соответствии с FilterChainProxy может быть несколько цепочек фильтров, чтобы проверить различные URL -адреса, а фильтры, принадлежащие цепочке фильтров, автоматически увеличиваются или уменьшатся в соответствии с определенной службой. Таким образом, нет необходимости отображать и определять эти фильтры, если вы не хотите реализовать свою собственную логику.
Ключевые категории
Аутентификация
Аутентификация - это интерфейс, используемый для представления информации о аутентификации пользователей. Перед тем, как пользователь входит в систему для аутентификации, соответствующая информация будет инкапсулирована в объект конкретного класса реализации, конкретной аутентификации. После того, как аутентификация входа в систему будет успешной, будет создан объект аутентификации с более полной информацией, включая разрешения пользователей и другую информацию, а затем сохраняется в SecurityContext, удерживаемом SecurityContextholder для последующих программ для вызова, таких как аутентификация прав доступа.
Аутентификация Manager
Основным интерфейсом, используемым для проверки, является AuthenticationManager, который имеет только один метод:
Аутентификация публичного интерфейса Manage {аутентификация аутентификации (аутентификация аутентификации) выбрасывает AuthenticationException;}После запуска метода Authenticate () может быть три ситуации:
Проверка успешна, а аутентификация с информацией пользователя возвращается.
Проверка не удалась, и было брошено исключение Authentication Exception.
Невозможно судить, вернуть ноль.
ProviderManager
ProviderManager является наиболее распространенной реализацией AuthenticationManager выше. Он сама по себе не обрабатывает проверку, но передает проверку в списке аутентификации, которые он настраивает, а затем вызывает каждую аутентификацию, в свою очередь, для аутентификации. В этом процессе, пока проверка аутентификации успешно аутентифицируется, не будет продолжена никакой проверки. Этот результат аутентификации будет напрямую использоваться в качестве результата аутентификации поставщика.
Процесс сертификации
Пользователи входят в систему с их именем пользователя и паролем.
Spring Security инкапсулирует полученное имя пользователя и пароль в класс реализации интерфейса аутентификации, такой как обычно используемый usernamepasswordAuthenticationToken.
Передайте объект аутентификации, сгенерированный выше, на аутентификацию поставщика класса реализации Manager для аутентификации.
ProviderManager вызывает каждую аутентификацию Provider в свою очередь для аутентификации. После того, как аутентификация будет успешной, объект аутентификации инкапсулирует разрешения пользователя, а другая информация будет возвращена.
Назначьте объект аутентификации, возвращаемый аутентификацией Manager, текущему SecurityContext.
Пользовательская проверка
С приведенными выше резервами знаний вы можете настроить метод проверки. Из вышесказанного мы видим, что на самом деле, провидеры аутентификации фактически используются для выполнения операций проверки. Поэтому, если вы хотите настроить метод проверки, вам нужно только реализовать свой собственный Authentication Provider, а затем добавить его в Provider Manager.
Настроить аутентификацию
@Componentpublic class customauthenticationprovider реализует аутентификацию provider {@override public authentication authentication (аутентификация аутентификации) Throws AuthenticationException {string name = Authentication.getName (); String password = Authentication.getCredentials (). ToString (); if (upeAuthenticateAgainstThirdPartySystem ()) {// Использовать учетные данные // и аутентификация против сторонней системы возвращает новый usernamepassWordAuthenticationToken (имя, пароль, новый ArrayList <> ()); } else {return null; }} @Override Public Boolean Supports (Class <?> Authentication) {return Authentication.equals (usernamepasswordAuthenticationtoken.class); }}Метод поддержки () принимает параметр аутентификации, чтобы определить, является ли аутентификация, в которой проходит тип, который может обрабатывать Authentication Provider.
Зарегистрируйте аутентификацию Provider
Теперь зарегистрируйте Authentication Provider, который вы только что создали в ProviderManager, и все операции завершены.
@Configuration@enablewebsecurity@componentscan ("org.baeldung.security") Public Class SecurityConfig Extends WebseCurityConfigurerAdapter {@Autowired Private CustomAuthenticationProvider ayprovider; @Override Protected void configure (AuthenticationManagerBuilder auth) выбрасывает Exception {auth.AuthenticationProvider (authProvider); } @Override Protected void configure (httpsecurity http) выбрасывает исключение {http.authorizeRequests (). AnyRequest (). Authenticated (). И () .httpbasic (); }}Суммировать
Выше приведено анализ процесса проверки безопасности Spring и методы индивидуальной проверки, введенные вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!