запрос Spring Security с серверной базой данных, чтобы осуществлять контроль посадки

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 класса, фон возвращает имя пользователя, пароль, данные роли, для определения нулевой

рекомендация

отwww.cnblogs.com/guanyuehao0107/p/11863791.html