ssm实现用户登录功能拦截
生活随笔
收集整理的這篇文章主要介紹了
ssm实现用户登录功能拦截
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
攔截情況分為登,錄頁面不用攔截用戶未登錄要攔截,登錄后根據用戶的權限進行操作攔截;如果用戶未登錄就訪問某些頁面就攔截該頁面請求跳到登錄頁面,如果用戶登錄后想執行增加操作,但該用戶的權限中沒有增加的權限,所以顯示友好提示。
主要實現用攔截器:
/*** 實現用戶登錄,操作權限的攔截* @author ASUS**/ public class LoginInterceptor implements HandlerInterceptor {private List<String> passList=new ArrayList<>();@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {//允許放行的url路徑String url=request.getRequestURI();System.out.println("url-->"+url);for(String passUrl:passList) {System.out.println("passUrl-->"+passUrl);if(url.indexOf(passUrl)>0) {return true;}}//權限放行,獲取用戶已經登錄時,放在session的權限SysWorker worker= (SysWorker) request.getSession().getAttribute("user");for(SysRight right:worker.getSysJobs().getListRight()) {if(url.indexOf(right.getRightURL())>0) {return true;}else {request.getRequestDispatcher("/WEB-INF/pages/noPower.jsp").forward(request, response);return false;}}//已經登錄放行SysWorker user=(SysWorker)request.getSession().getAttribute("user");if(user!=null) {return true;}request.getRequestDispatcher("/WEB-INF/pages/error.jsp").forward(request, response);return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {// TODO Auto-generated method stub}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {// TODO Auto-generated method stub}public List getPassList() {return passList;}public void setPassList(List passList) {this.passList = passList;}}在springmvc.xml的配置文件中增加該攔截器:
<!--攔截器 --><mvc:interceptors><mvc:interceptor><mvc:mapping path="/pk/*/*" /><bean class="com.st.eleventh.interceptor.LoginInterceptor"><property name="passList"><list><value>/login</value></list></property></bean></mvc:interceptor></mvc:interceptors>分析:<mvc:mapping path="/pk/*/*" />表示要攔截的路徑請求。
<property name="passList"><list>? <value>/login</value>?</list></property>存放的是不用攔截的路徑請求,list的值在LoginInterceptor中有一個屬性:List<String> passList=new ArrayList<>();來接收。
效果:
我的座右銘:不會,我可以學;落后,我可以追趕;跌倒,我可以站起來;我一定行。
?
總結
以上是生活随笔為你收集整理的ssm实现用户登录功能拦截的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一坐感受神奇!迪士尼打造魔术台
- 下一篇: maven complie报错汇总