springmvc权限过滤器

package com.zbb.cn.filter;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class frontInterceptor implements HandlerInterceptor {
// @Autowired
// private VariableService variableService;
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
// 后台session控制
Object user=request.getSession().getAttribute("user");
/* String returnUrl = request.getRequestURI(); */
String requestUrl = request.getRequestURI();
if(null==user){
boolean date=false;
if(requestUrl.contains("login.htmls") || requestUrl.contains("login.jsp") || requestUrl.contains("/baVerify/verifyCode.htmls")){//登入的时候放行
date=true;
}else{
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
StringBuilder builder = new StringBuilder();
builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
builder.append("alert(\"请求超时,请重新登陆!\");");
/*builder.append("window.location.href=\""+variableService.selectVariable("HTML_URL")+"/login.jsp\";");//之前的写法 */
builder.append("window.location.href=\"/login.jsp\";");
builder.append("</script>");
out.print(builder.toString());
out.close();
}
/* request.getRequestDispatcher("/login.jsp").forward(request, response); */
return date;
} else {
return true;
}
}
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
}
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse response, Object o, Exception e) throws Exception {
}
}

2、springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
<context:component-scan base-package="com.zbb.cn.controller" />
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<mvc:interceptors>
<!-- 后台拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/user/*.htmls"/>
<mvc:mapping path="/ztemp/*.htmls"/>
<mvc:mapping path="/form/*.htmls"/>
<mvc:mapping path="/config/*.htmls"/>
<mvc:mapping path="/active/*.htmls"/>
<mvc:mapping path="/role/*.htmls"/>
<mvc:mapping path="/custom/*.htmls"/>
<mvc:mapping path="/log/*.htmls"/>
<mvc:mapping path="/auth/*.htmls"/>
<mvc:mapping path="/baVerify/*.htmls"/>
<bean class="com.zbb.cn.filter.frontInterceptor">
</bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- json转换器 -->
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>

<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
<!-- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/" p:suffix=".jsp" /> -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp"></property>
<property name="suffix" value=".jsp"></property>
</bean>

<!-- 配置多文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
<property name="maxUploadSize">
<!-- 上传文件大小限制为31M,31*1024*1024 -->
<value>32505856</value>
</property>
<property name="maxInMemorySize">
<value>4096</value>
</property>
</bean>

<!--
首先是配置你要定时加载的目标类
<bean id="myTimer" class="com.timer.MyTimer"></bean>
定时器配置
<bean id="timeDitail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="myTimer"></property>指定任务类
<property name="targetMethod" value="doit"></property>指定任务方法
</bean>
-->
</beans>

时间: 2024-10-26 06:48:15

springmvc权限过滤器的相关文章

asp.net mvc 全局权限过滤器及继成权限方法

全局权限过滤器 //----------------------------------------------------------------------- // <copyright file="PermissionFilter.cs" company="STO EXPRESS, Ltd."> // Copyright (c) 2015 , All rights reserved. // </copyright> //--------

一种基于annotation的Spring-mvc权限控制方法

简介 本文介绍一种采用annotation来对spring-mvc进行权限控制的方法. 通过枚举类来定义权限项. 将annotation标注到需要控制权限的spring-mvc方法上. 然后,在spring-mvc中定义全局过滤器, 过滤所有spring-mvc方法, 查看方法上的权限annotation信息, 以此对权限进行控制.程序源代码: https://github.com/eagle0445/sample/ 优点 编写比较方便, 在需要控制权限的方法上进行annotation的标注即可

Shiro权限管理框架(三):Shiro中权限过滤器的初始化流程和实现原理

本篇是Shiro系列第三篇,Shiro中的过滤器初始化流程和实现原理.Shiro基于URL的权限控制是通过Filter实现的,本篇从我们注入的ShiroFilterFactoryBean开始入手,翻看源码追寻Shiro中的过滤器的实现原理. 初始化流程 ShiroFilterFactoryBean实现了FactoryBean接口,那么Spring在初始化的时候必然会调用ShiroFilterFactoryBean的getObject()获取实例,而ShiroFilterFactoryBean也在

SSH系列:(20)权限过滤器

在系统中,① 需要验证用户的登录,只有登录后才能访问系统的资源.② 对于各个子系统,只有角色拥有"该子系统的权限"才可以操作. 编写LoginFilter过滤器,在过滤器中对用户访问的url进行登录验证,在登录的前提下再次验证如果访问的是纳税服务命名空间下的资源则利用权限验证接口PermissionCheck校验用户是否有"纳税服务". 基本步骤: (1)编写过滤器 (2)注册过滤器 (3)权限验证类 1.编写过滤器 LoginFilter.java package

过滤器的使用(权限过滤器)

1.实体类 1 package com.zdsofe.work; 2 3 public class User { 4 5 6 public String userName; 7 public String password; 8 9 public User(String userName, String password) { 10 11 this.userName = userName; 12 this.password = password; 13 } 14 public String ge

SpringMvc的过滤器。

一:过滤器的原理: 过滤器放在web资源之前,可以在请求抵达它所应用的web资源(可以是一个Servlet.一个Jsp页面,甚至是一个HTML页面)之前截获进入的请求,并且在它返回到客户之前截获输出请求. Filter:用来拦截请求,处于客户端与被请求资源之间,目的是重用代码.Filter链,在web.xml中哪个先配置,哪个就先调用.在filter中也可以配置一些初始化参数. Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对H

[转]ASP.NET MVC过滤器中权限过滤器ValidateAntiForgeryToken的用法(Post-Only)

用途:防止CSRF(跨网站请求伪造). 用法:在View->Form表单中:<%:Html.AntiForgeryToken()%> 在Controller->Action动作上:[ValidateAntiForgeryToken] 原理: 1.<%:Html.AntiForgeryToken()%>这个方法会生成一个隐藏域:<inputname="__RequestVerificationToken" type="hidden&qu

ASP.NET MVC过滤器中权限过滤器ValidateAntiForgeryToken的用法(Post-Only)

用途:防止CSRF(跨网站请求伪造). 用法:在View->Form表单中:<%:Html.AntiForgeryToken()%> 在Controller->Action动作上:[ValidateAntiForgeryToken] 原理: 1.<%:Html.AntiForgeryToken()%>这个方法会生成一个隐藏域:<inputname="__RequestVerificationToken" type="hidden&qu

java权限过滤器

个人案列: package com.ilas.bookcase.filter; import com.ilas.bookcase.controller.admin.AdminController; import com.ilas.bookcase.entity.Permission; import org.springframework.web.filter.OncePerRequestFilter; import javax.servlet.FilterChain; import javax.