springsecurity-微服務-認證授權的過程


springsecurity的認證授權有兩種方式:基於session和基於token。由於token的使用會比較多,下面講token的這種方式。

  整個大概的流程是這樣的:

  1.用戶訪問服務器進行登錄,服務器返回登錄頁面給用戶

  2.用戶填寫用戶名和密碼,並提交給服務器

  3.服務器收到后,由springsecurity來進行認證校驗,主要是查詢數據庫用戶名和密碼,判斷是否是合法的用戶,如果是,則認證成功,並且從數據庫中查出該用戶的權限列表

  4.將用戶名和權限列表保存到redis中,用戶名為key,權限列表為value;通常每個權限用其code來表示,在權限表會有一個code字段,到時候redis存的權限列表,其實就是一系列的code值。

  5.此時根據用戶名等信息生成token,把token保存在cookie中並返回給用戶;此時用戶就已經認證成功了,接下來就是授權了

  6.當用戶再次訪問時,從cookie中取出token信息,放到請求中的header請求頭,隨着請求發送給服務器

  7.服務器從header頭中拿到token,並解析token拿到用戶名

  8.查詢redis,根據用戶名,查詢該用戶的權限列表

  9.springsecurity根據權限列表,為用戶此請求賦予相應的權限

  10.用戶請求進行相應的操作

大概流程是這樣的,我們可以知道,實際上權限列表是保存在數據庫中的,但是springsecurity會從redis取用戶的權限,再賦予用戶該請求的權限


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM