這個問題是之前在做登入註冊模組時遇到的需求,如何使用者直接訪問登入頁面,可以控制直接跳到首頁,但是如果是使用者沒有登入直接訪問了購物車等需要經過身份認證的頁面,或者是因為session超時,使用者需要重新登入,那麼這時跳回之前的頁面就是提公升使用者體驗的事情。實現此功能比較好的方法是用ajax的方式登陸,這樣直接在當前頁面彈窗讓使用者登入既可,二是把使用者未登入前的url存在session中,login成功之後先檢查session中是否存在這樣的乙個url。下面通過一段**程式設計客棧給大家分享下:
專案中整合了shiro,裡面就有這麼個功能,防止webutils工具類裡面。
廢話了這麼多,其實網上也有人寫過這麼一篇關於這個功能實現的的博文,這個大神寫的shiro教程也是蠻值得一看的,只不過我在使用
s**edrequest s**edrequest = webutils.gets**edrequest(request);的時候,s**edrequest 物件一直為空,囧了一段時間,後面再群裡遇到高人指點,發現是自己的配置檔案沒寫好,即shirofilter中的filterchaindefinitions,所需要攔截的url沒有寫完全,像下面這段配置程式設計客棧
www.cppcns.come="filters">
程式設計客棧chaindefinitions">
# 無需認證便可以訪問的的檔案放在前面
/js/* = anon
/css/* = anon
/img/* = anon
/images/* = anon
/user-web/login = anon
/logout = logout
/user-web/* = authc
/backend-web/* = authc
只有/user-web/* (除去login,這裡url的匹配使用短路機制,即最先匹配原則)和/backend-web/ 後面的url,才會www.cppcns.com被允許存入到session中,這樣,當使用者沒有登陸就去訪問包含以上兩種鏈結字首的時候,登陸成功後就會跳轉到之前的介面了。
本文標題: 使用shiro實現登入成功後跳轉到之前的頁面
本文位址:
Shiro登入成功之後跳到指定URL
通常我們使用shiro,登入之後就會跳到我們上一次訪問的url,如果我們是直接訪問登入頁面的話,shiro就會根據我們配置的successurl去重定向,如果我們沒有配置successurl的話,那麼shiro重定向預設的 這個邏輯看shiro的原始碼就可以知道 1.shiro會把請求資訊儲存到se...
CAS 登出登入後跳轉到登入頁
cas單點登出後,缺省會跳到它自帶的登出介面 這裡建立在已部署好cas server的基礎上,詳情見上篇文章 如下圖 對應的jsp如下目錄 修改cas servlet.xml檔案的bean的id為logoutcontroller下的p followserviceredirects屬性為 true 如...
CAS 登出登入後跳轉到登入頁
cas單點登出後,缺省會跳到它自帶的登出介面,但是很多時候我們是希望它跳轉到登入介面,需要做如下修改 cas servlet.xml檔案中 p centralauthenticationservice ref centralauthenticationservice p logoutview cas...