中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

springSecurity如何自定義用戶認證

發布時間:2021-09-27 14:28:57 來源:億速云 閱讀:147 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關springSecurity如何自定義用戶認證,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

首先我需要在xml文件中聲明.我要進行自定義用戶的認證類,也就是我要自己從數據庫中進行查詢

<http pattern="/*.html" security="none"/>  <http pattern="/css/**" security="none"/>  <http pattern="/img/**" security="none"/>  <http pattern="/js/**" security="none"/>  <http pattern="/plugins/**" security="none"/>  <http pattern="/seller/add.do" security="none"/>  <!-- use-expressions:設置是否啟動SpEL表達式,默認值是true。 -->  <http use-expressions="false">    <!--      配置SpringSecurity的攔截路徑(攔截規則)      * pattern:配置攔截規則。  /* 代表的是根路徑下的所有資源(不包含子路徑) /**代表的是根路徑下所有的資源(包含子路徑)      * access:設置角色 角色命名 ROLE_角色名稱 如: ROLE_USER    -->    <intercept-url pattern="/**" access="ROLE_SELLER"/>    <!--    開啟表單驗證      username-parameter="username"      password-parameter="password"      login-page      :登錄頁面名稱 以 / 開始      default-target-url  :登錄成功后跳轉的頁面      login-processing-url:提交的路徑的設置 默認值"/login" 可以修改    -->    <form-login login-page="/shoplogin.html" default-target-url="/admin/index.html" always-use-default-target="true" authentication-failure-url="/shoplogin.html"/>    <!-- 不使用csrf的校驗 -->    <csrf disabled="true"/>    <!-- 配置框架頁面不攔截 -->    <headers>      <frame-options policy="SAMEORIGIN"/>    </headers>    <!-- 注銷的配置 -->    <logout logout-url="/logout" logout-success-url="/shoplogin.html" />  </http>  <!-- 配置認證管理器 -->  <authentication-manager>    <!-- 認證的提供者 -->    <authentication-provider user-service-ref="userDetailService">      <password-encoder ref="passwordEncoder"></password-encoder>    </authentication-provider>  </authentication-manager><!-- 配置自定義的認證類 -->  <beans:bean id="userDetailService" class="com.qingmu2.core.service.UserDetailServiceImpl">    <beans:property name="sellerService" ref="sellerService"></beans:property>  </beans:bean><!--加密時候使用的算法是BCryptPasswordEncoder-->  <beans:bean id="passwordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>

配置完自定義的文件以后,在需要自定義認證類的模塊中實現

UserDetailsService

package com.qingmu2.core.service;import com.alibaba.dubbo.config.annotation.Reference;import com.qingmu2.core.pojo.seller.Seller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.security.core.GrantedAuthority;import org.springframework.security.core.authority.SimpleGrantedAuthority;import org.springframework.security.core.userdetails.User;import org.springframework.security.core.userdetails.UserDetails;import org.springframework.security.core.userdetails.UserDetailsService;import org.springframework.security.core.userdetails.UsernameNotFoundException;import java.util.ArrayList;import java.util.HashMap;import java.util.HashSet;import java.util.List;/** * 自定義的認證類 * @Auther:qingmu * @Description:腳踏實地,只為出人頭地 * @Date:Created in 8:33 2019/5/31 */public class UserDetailServiceImpl implements UserDetailsService {  private SellerService sellerService;  public UserDetailServiceImpl() {  }  @Override  public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {    Seller seller = sellerService.findOne(username);    if(null!=seller){      //判斷一次商家是否被審核通過.      if("1".equals(seller.getStatus())){        //創建一個集合,用來存儲權限        HashSet<GrantedAuthority> authorities = new HashSet<>();        authorities.add(new SimpleGrantedAuthority("ROLE_SELLER"));        //將這個用戶的信息返回給認證類        return new User(username,seller.getPassword(),authorities);      }    }    //沒有這個用戶,則返回null    return null;  }  public UserDetailServiceImpl(SellerService sellerService) {    this.sellerService = sellerService;  }  public SellerService getSellerService() {    return sellerService;  }  public void setSellerService(SellerService sellerService) {    this.sellerService = sellerService;  }}

關于“springSecurity如何自定義用戶認證”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莱州市| 安国市| 高要市| 华亭县| 沧州市| 通渭县| 双牌县| 宁蒗| 巴南区| 咸宁市| 洮南市| 土默特左旗| 平阴县| 天全县| 涡阳县| 始兴县| 西和县| 收藏| 宁波市| 西林县| 深水埗区| 临朐县| 沭阳县| 林芝县| 日土县| 陕西省| 六枝特区| 南木林县| 夏邑县| 泉州市| 获嘉县| 凌源市| 和田县| 资源县| 辉南县| 涿州市| 双柏县| 南平市| 平凉市| 南康市| 宜都市|