java权限拦截器
来源:互联网 发布:qq偷菜软件下载 编辑:程序博客网 时间:2024/06/05 06:03
SecurityInterceptor.java
package light.mvc.framework.interceptors;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import light.mvc.framework.constant.GlobalConstant;import light.mvc.framework.tool.SessionInfo;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;/** * 权限拦截器 * */public class SecurityInterceptor implements HandlerInterceptor {private List<String> excludeUrls;// 不需要拦截的资源public List<String> getExcludeUrls() {return excludeUrls;}public void setExcludeUrls(List<String> excludeUrls) {this.excludeUrls = excludeUrls;}/** * 完成页面的render后调用 */@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object object,Exception exception) throws Exception {}/** * 在调用controller具体方法后拦截 */@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object object,ModelAndView modelAndView) throws Exception {}/** * 在调用controller具体方法前拦截 */@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object object) throws Exception {String requestUri = request.getRequestURI();String contextPath = request.getContextPath();String url = requestUri.substring(contextPath.length());SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute(GlobalConstant.SESSION_INFO);//判断是否包含在菜单权限里if ((url.indexOf("/admin/") > -1) || excludeUrls.contains(url)) {// 如果要访问的资源是不需要验证的return true;}if ((sessionInfo == null) || (sessionInfo.getId() == null)) {// 如果没有登录或登录超时request.setAttribute("msg", "您还没有登录或登录已超时,请重新登录,然后再刷新本功能!");request.getRequestDispatcher("/error/noSession.jsp").forward(request, response);return false;}if(!sessionInfo.getAccessAllList().contains(url)){return true;}if (!sessionInfo.getAccessList().contains(url)) {// 如果当前用户没有访问此资源的权限request.setAttribute("msg", "您没有访问此资源的权限!<br/>请联系超管赋予您<br/>[" + url + "]<br/>的资源访问权限!");request.getRequestDispatcher("/error/noSecurity.jsp").forward(request, response);return false;}return true;}}
spring-mvc.xml中增加配置
<!-- 拦截器 --><mvc:interceptors><mvc:interceptor><mvc:mapping path="/**" /><bean class="light.mvc.framework.interceptors.SecurityInterceptor"><!-- 不需要权限验证的地址 --><property name="excludeUrls"><list><value>/access/tree</value><!-- 首页左侧功能菜单 --></list></property></bean></mvc:interceptor></mvc:interceptors>
阅读全文
0 0
- java权限拦截器
- 权限拦截器
- java struts 2 使用拦截器完成权限控制
- Java学习笔记 Struts2拦截器实现权限登录
- Struts2拦截器实例-权限拦截器
- Struts2权限控制拦截器
- Struts2权限控制拦截器
- Struts 权限控制 拦截器
- Struts2-拦截器-权限控制
- WebService:权限控制、拦截器
- SSH中的权限拦截器
- Struts2拦截器权限学习心得
- 权限拦截器 用户信息验证
- 后台权限拦截器编写
- 登录权限拦截器,配置全局拦截器,连接池
- JavaWeb -- Struts 自定义拦截器, 登录权限拦截
- Struts2拦截器 实现未登录拦截和权限控制
- Struts2拦截器 实现未登录拦截和权限控制
- HDOJ 1018 数学(N的阶乘)
- Ubuntu下安装并配置VS Code编译C++
- 2017秋招之面试整理(3)
- GreenDao,注解,RecyclerView,EventBus,Retrofit展示列表
- Kotlin基本数据类型
- java权限拦截器
- 进度条加载完成后跳转到扫描二维码页面
- 关于Linux下多版本的Python配置
- scanf&&cin巧妙应对字符串
- Huffman 编码
- 轮播图main
- 逆向脱壳和去广告实例
- Unity3D导入图片资源
- 网络的拓扑结构