package com.qfedu.dang.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
/**
* spring 攔截器
* @author czy
*
*/
public class PriviledgeInterceptor implements HandlerInterceptor {
/**
* 請求發到控制器之前需要做的事情
* 如對用戶進行權限驗證,驗證通過返回true,否則返回false
* 返回false后,其它兩個方法將不會執行
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
// 拿到請求的URL
String url = request.getServletPath();
//先通過業務方法訪問持久層獲得所有需要權限驗證的URL
//hibernate:select distinct o.url
// from Operation as o where o.url not null;
//list<String> ---> 裝有所有需要權限的URL
//對url進行處理,檢查url是否需要驗證
//如果不需要直接return true
//如果需要權限驗證,先檢查用戶是否登錄
//如果用戶沒有登錄,就直接跳轉登錄頁
//如果用戶已經登錄就從HttpSession中獲取登錄的用戶
//通過用戶對象獲得用戶所有的角色,再通過角色獲得所有的權限
//然后檢查剛才的URL在不在用戶的權限對應的URL之中
//如果再就返回true表示放行,否則跳轉到固定頁面提示沒有足夠的權限
return false;
}
//請求執行完,視圖未渲染之前執行
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView model)
throws Exception {
// TODO Auto-generated method stub
}
//視圖解析器在視圖渲染完成后執行的事情,主要處理善后的事情,例如釋放資源的代碼或處理異常
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex)
throws Exception {
}
}
spring 攔截器的實現
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- 在進入處理器之前記錄開始時間,即在攔截器的 preHandle 記錄開始時間; 在結束請求處理之后記錄結束時間,即...
- Spring 中的Interceptor 攔截請求是通過HandlerInterceptor 來實現的。在Spri...
- 原理:在新建頁面中Session保存token隨機碼,當保存時驗證,通過后刪除,當再次點擊保存時由于服務器端的Se...