成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

springSecurity如何自定義用戶認(rèn)證

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

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營網(wǎng)站定制開發(fā).小程序定制開發(fā),H5頁面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為紗窗等企業(yè)提供專業(yè)服務(wù)。

首先我需要在xml文件中聲明.我要進(jìn)行自定義用戶的認(rèn)證類,也就是我要自己從數(shù)據(jù)庫中進(jìn)行查詢

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

配置完自定義的文件以后,在需要自定義認(rèn)證類的模塊中實(shí)現(xiàn)

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;/** * 自定義的認(rèn)證類 * @Auther:qingmu * @Description:腳踏實(shí)地,只為出人頭地 * @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())){        //創(chuàng)建一個(gè)集合,用來存儲(chǔ)權(quán)限        HashSet<GrantedAuthority> authorities = new HashSet<>();        authorities.add(new SimpleGrantedAuthority("ROLE_SELLER"));        //將這個(gè)用戶的信息返回給認(rèn)證類        return new User(username,seller.getPassword(),authorities);      }    }    //沒有這個(gè)用戶,則返回null    return null;  }  public UserDetailServiceImpl(SellerService sellerService) {    this.sellerService = sellerService;  }  public SellerService getSellerService() {    return sellerService;  }  public void setSellerService(SellerService sellerService) {    this.sellerService = sellerService;  }}

關(guān)于“springSecurity如何自定義用戶認(rèn)證”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)頁名稱:springSecurity如何自定義用戶認(rèn)證
瀏覽地址:http://jinyejixie.com/article44/ipehee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站設(shè)計(jì)公司、移動(dòng)網(wǎng)站建設(shè)、企業(yè)建站、微信公眾號(hào)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
昌吉市| 延边| 乌拉特中旗| 宁化县| 巨鹿县| 进贤县| 哈巴河县| 定南县| 小金县| 洮南市| 濉溪县| 灌云县| 井陉县| 宣武区| 息烽县| 海口市| 达拉特旗| 漳浦县| 赤城县| 甘孜| 湄潭县| 镇江市| 大邑县| 乌拉特前旗| 祁连县| 古蔺县| 徐水县| 四会市| 南投市| 固镇县| 即墨市| 临邑县| 安顺市| 明星| 侯马市| 同江市| 苏州市| 扬州市| 鞍山市| 迁西县| 巩留县|