最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

springmvc实现注解拦截器

来源:懂视网 责编:小采 时间:2020-11-27 19:55:26
文档

springmvc实现注解拦截器

springmvc实现注解拦截器:这次给大家带来springmvc实现注解拦截器,springmvc实现注解拦截器的注意事项有哪些,下面就是实战案例,一起来看一下。最近在用SpringMvc写项目的时候,遇到一个问题,就是方法的鉴权问题,这个问题弄了一天了终于解决了,下面看下解决方法 项目需求:需要
推荐度:
导读springmvc实现注解拦截器:这次给大家带来springmvc实现注解拦截器,springmvc实现注解拦截器的注意事项有哪些,下面就是实战案例,一起来看一下。最近在用SpringMvc写项目的时候,遇到一个问题,就是方法的鉴权问题,这个问题弄了一天了终于解决了,下面看下解决方法 项目需求:需要

这次给大家带来springmvc实现注解拦截器,springmvc实现注解拦截器的注意事项有哪些,下面就是实战案例,一起来看一下。

最近在用SpringMvc写项目的时候,遇到一个问题,就是方法的鉴权问题,这个问题弄了一天了终于解决了,下面看下解决方法

项目需求:需要鉴权的地方,我只需要打个标签即可,比如只有用户登录才可以进行的操作,一般情况下我们会在执行方法时先对用户的身份进项校验,这样无形中增加了非常大的工作量,重复造轮子,有了java注解只需要在需要鉴权的方法上面打个标签即可:

解决方案:

??1、首先创建一个注解类:

@Documented
@Inherited
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Auth {
 boolean validate() default true;
}

2、再创建一个拦截器:

public class AuthInterceptor extends BaseInterceptor{
	@Override
	 public Boolean preHandle(HttpServletRequest request,
	 HttpServletResponse response, Object handler) throws Exception {
	if(handler.getClass().isAssignableFrom(HandlerMethod.class)){
	Auth authPassport = ((HandlerMethod) handler).getMethodAnnotation(Auth.class);
	//没有声明需要权限,或者声明不验证权限
	if(authPassport==null){
	return true;
	} else{
	//在这里实现自己的权限验证逻辑
	if(true){
	//如果验证成功返回true(这里直接写false来模拟验证失败的处理)
	System.out.println("执行权限校验了");
	return true;
	} else{
	//如果验证失败
	//返回到登录界面
	// System.out.println("权限校验对了");
	// response.sendRedirect("account/login");
	return false;
	}
	}
	} else{
	return true;
	}
	}
}

3、配置拦截器:需要在*-servlet.xml里面增加以下代码,如果您自定义了配置文件也可直接放到您定义的配置文件中

<mvc:interceptors>
	<bean class="com.benxq.shop.user.interceptors.AuthInterceptor"/>
</mvc:interceptors>

注意:需要将默认的改为RequestMappingHandlerMapping,增加RequestMappingHandlerAdapter的bean

重新启动tomcat即可,

温馨提示:如果对方法需要鉴权只需要在方法上面打上@Auth,如果对类的所有方法需要鉴权,只需要在类上面打上@Auth即可。

那么问题来了,方法拦截器会吧静态资源一块拦截,我们需要在tomcat中进行对静态文件进行拦截如:我的解决方法是在web.xml进行配置,大家有好的方法也可以加我扣扣752432995一块探讨

<servlet-mapping>
 <servlet-name>default</servlet-name>
 <url-pattern>*.jpg</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
 <servlet-name>default</servlet-name>
 <url-pattern>*.png</url-pattern>
 </servlet-mapping>

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

JSONAPI在PHP中的使用方法

zTree的树形菜单使用步奏详解

文档

springmvc实现注解拦截器

springmvc实现注解拦截器:这次给大家带来springmvc实现注解拦截器,springmvc实现注解拦截器的注意事项有哪些,下面就是实战案例,一起来看一下。最近在用SpringMvc写项目的时候,遇到一个问题,就是方法的鉴权问题,这个问题弄了一天了终于解决了,下面看下解决方法 项目需求:需要
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top