Spring Framework безопасности является основой для контроля посадки, получить файл конфигурации имя пользователя и пароль бэкэнд, сравнить посадочную решение
Используйте шаги
1, импорт-зависимый
<! - Аутентификация -> <Зависимость> <Идентификатор_группы> org.springframework.security </ идентификатор_группы> <Артефакт> весна-безопасность веб </ артефакт> <Версия> 4.1.0.RELEASE </ версия> </ Зависимость> <Зависимость> <Идентификатор_группы> org.springframework.security </ идентификатор_группы> <Артефакт> весна-безопасность конфигурация </ артефакт> <Версия> 4.1.0.RELEASE </ версия> </ Зависимость>
2, web.xml файл загружен пружинный security.xml файл
<Контекстно-пары> <Парам имя> contextConfigLocation </ PARAM-имя> <пары-значение> путь к классам: весна / весна-security.xml </ пары-значение> </ Контекстно-пары> <Слушатель> <listener- класс > org.springframework.web.context.ContextLoaderListener </ listener- класс > </ Слушателем> <Фильтр> <Имя-фильтра> springSecurityFilterChain <имя-фильтра /> <фильтр- класс > org.springframework.web.filter.DelegatingFilterProxy </ фильтр- класс > </ Фильтр> <Фильтр-отображение> <Имя-фильтра> springSecurityFilterChain <имя-фильтра /> <URL-шаблон> / * </ URL-шаблон> </ Фильтр-отображение>
3, на первой странице
4, фон для создания класса сущности кода , реализованного UserDetailsService интерфейсы, в котором реализован метод
// пользователь Войти класс аутентификации общественный класс UserDetailsServiceImpl орудия UserDetailsService { // Служба слой, чтобы получить информацию об имени пользователя в серверной базе данных частный SellerService sellerService; // множество方法注入一个 общественная пустота setSellerService (SellerService sellerService) { это .sellerService = sellerService; } // получить объекты имя пользователя в базе данных, @Override общественности UserDetails loadUserByUsername (String имя пользователя) бросает UsernameNotFoundException { System.out.println ( «После имп метод» ); // имя пользователя , это получить передний конец формы имени пользователя // которые пользователи имеют права посадки, List <GrantedAuthority> = Грант новый новый ArrayList <> (); // добавление пользователей роль информации, быть в состоянии использовать grant.add ( новый новый SimpleGrantedAuthority ( «ROLE_SELLER» )); // имя пользователя определяются структура управления, на самом деле, класс seller_id предприятия Продавец Продавец = sellerService.findOne (имя пользователя); // Ruoguo не существует этот пользователь , если (Продавец! = нуль && "1" .equals (seller.getStatus ())) { // только если утверждение торговца перед посадкой,Возвращаются пользователь имя пользователя ввода паролей, роли, вернуть новый пользователь (имя пользователя, seller.getPassword (), гранта); } Еще { возвращение нуль ; } }
5, весна-security.x <? Xml версия = «1,0» кодирующая = «UTF-8»?>
Правила внутри, я должен остановиться на блоге, мы можем оглянуться назад
< Бобы: фасоль
Xmlns = "http://www.springframework.org/schema/security"
XMLNS: фасоль = "http://www.springframework.org/schema/beans"
XMLNS: XSI = "http://www.w3.org / 2001 / XMLSchema-экземпляр» XMLNS: Dubbo = "http://code.alibabatech.com/schema/dubbo"
XSI: SchemaLocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd "> <! - Следующие страницы не будут перехвачены -> <HTTP шаблон = "/ *. HTML" безопасность = "нет"> </ HTTP> <HTTP шаблон = "/ CSS / **" безопасность = "нет"> </ HTTP> <HTTP шаблон = "/ IMG / **" безопасность = "нет"> </ HTTP> <HTTP шаблон = "/ JS / **" безопасность = "нет"> </ HTTP> <HTTP шаблон = "/ плагины / **" безопасность = "нет"> </ HTTP> <! - <HTTP шаблон = "/ продавец / add.do" безопасность = "нет"> </ HTTP> -> <! - страница Правила блокировки -> <HTTP потребительных выражения = «ложь»> <Перехватывать-шаблон URL = "/ **" доступ = "ROLE_SELLER" /> <Форма-Логин Логин-страница = "/ shoplogin.html" по умолчанию-целевой URL = "/ администратор / index.html" аутентификация безотказная-URL = "/ shoplogin.html" всегда использовать по умолчанию целевой = "истинный «/> <CSRF = отключено "верно" /> <Заголовок> <Frame-Options Policy = " SAMEORIGIN /"> информация // Роль </ Заголовков> <Выход из системы /> </ HTTP> <! - Certification Manager -> <Аутентификация менеджер> <Аутентификации провайдера пользователя сервис-исх = "userDetailService"> </ Аутентификации поставщика> </ Аутентификации-менеджер> <! - Применение Даббо -> <Даббо: имя приложения = "youlexuan-магазин" /> <Даббо: адрес реестра = "Zookeeper: //192.168.200.128: 2181" /> <Даббо: Reference ID = интерфейс "sellerService" = "com.ghh.core.service.SellerService"> </ Dubbo: Ссылка>
<! - пользовательский класс конфигурации ->
<бобы: фасоль ID = класс "userDetailService" = "com.ghh.shop.service.UserDetailsServiceImpl">
<бобы: имя свойство = "sellerService" исх = "sellerService" /> // исх引用Даббо中的sellerService
</ бобы : фасоль>
</ бобы: фасоль>
пункт Пользовательские настройки для пользовательского класса UserDetailsServiceImpl класса, фон возвращает имя пользователя, пароль, данные роли, для определения нулевой