這篇文章將為大家詳細(xì)講解有關(guān)SpringBoot如何集成Shiro安全驗(yàn)證,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
為雙城等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及雙城網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、雙城網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!Shiro工作原理是服務(wù)端將SessionID寫入客戶端瀏覽器的cookie中,客戶端發(fā)起請(qǐng)求時(shí)攜帶cookie信息,服務(wù)端從cookie中讀取sessionId,以此來維持會(huì)話。但是在前后端分離模式下,我們的后端服務(wù)不能將sessionId寫到請(qǐng)求瀏覽器cookie中,而且存在跨域問題,基于安全方面原因,ajax請(qǐng)求也都不帶cookie信息,后端程序沒辦法取得sessionId,也就無法驗(yàn)證登錄。
實(shí)現(xiàn)思路:將SessionID返回前端做保存(寫入cookie或localStage中),然后前端發(fā)起請(qǐng)求的時(shí)候,將Sessionid傳給服務(wù)器,服務(wù)器獲取這個(gè)SessionID,再取對(duì)應(yīng)的session
后臺(tái)登錄接口,需要將ShiroSession的SessionId返回給前端,前端保存到cookie中,
登錄成功后,前端JS中接收sessionID(token),并保存到cookie中,
第一,修改Shiro安全配置,重寫SessionManager類,創(chuàng)建一個(gè)MySessionManager類繼承DefaultWebSessionManager類,重寫getSessionId方法,先從cookie獲取SessionID,取不到再從requestHeader中獲取,如取不到再從請(qǐng)求參數(shù)中獲取
第二,修改Shiro配置中的session管理類,配置為我們的MySessionManager類,這里用到了redis作為緩存管理器,
第三,在項(xiàng)目中添加一個(gè)過濾器類CrosFilter,處理跨域問題,其中,OPTIONS預(yù)處理請(qǐng)求,要返回200,表示成功,否則ajax發(fā)起post,get等請(qǐng)求,服務(wù)器不能響應(yīng)。另外,Access-Control-Allow-Headers配置項(xiàng)中,要設(shè)置Authorization,而且,Access-Control-Allow-Credentials 要設(shè)置成true.
-最后,前端ajax發(fā)起請(qǐng)求時(shí),需要添加請(qǐng)求頭信息,requestHeader添加Authorization項(xiàng),值為登錄時(shí)返回的sessionID($.cookie("token")),設(shè)置crossDomain為true。最后,前端ajax發(fā)起請(qǐng)求時(shí),需要添加請(qǐng)求頭信息,requestHeader添加Authorization項(xiàng),值為登錄時(shí)返回的sessionID($.cookie("token")),設(shè)置crossDomain為true。
SpringBoot前后端分離API接口怎么保證API接口的安全性?
關(guān)于“SpringBoot如何集成Shiro安全驗(yàn)證”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。