java拦截器_Java拦截器实现「建议收藏」

java拦截器_Java拦截器实现「建议收藏」java拦截器实现功能类似于aop功能的实现,实现拦截部分方法,一般用于类似登录进入A页面,未登录进入B页面实现方法有两种实现Interceptor接口或者继承HandlerInterceptorAdapter类,实现接口需要实现其中所有方法,继承抽象类则一般实现preHandle方法即可。首先配置拦截类packagenet.parim.spark.portal.adapter;im…

大家好,又见面了,我是你们的朋友全栈君。

java拦截器实现功能类似于aop功能的实现,实现拦截部分方法,一般用于类似 登录进入A页面,未登录进入B页面

实现方法有两种 实现Interceptor 接口 或者 继承HandlerInterceptorAdapter类,实现接口需要实现其中所有方法,继承抽象类则一般实现preHandle方法即可。

首先配置拦截类

package net.parim.spark.portal.adapter;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration

public class HomeOpenHandlerConfigration extends WebMvcConfigurerAdapter {

//关键,将拦截器作为bean写入配置中

@Bean

public HomeOpenInterceptor myInterceptor(){

return new HomeOpenInterceptor();

}

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(myInterceptor()).addPathPatterns(“/api/open/portal/**”)

.excludePathPatterns(“/api/open/footerInfo”).excludePathPatterns(“/api/open/portal/template/default”);

super.addInterceptors(registry);

}

}

addPathPatterns()方法为需要拦截的api,excludePathPatterns()方法为不需要拦截的接口api

配置拦截逻辑

package net.parim.spark.portal.adapter;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.shiro.SecurityUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Component;

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import net.parim.spark.common.config.ApplicationProperties;

import net.parim.spark.common.exceptions.BusinessException;

import net.parim.spark.core.system.constant.Constants;

import net.parim.spark.core.system.entity.Site;

import net.parim.spark.core.system.security.UserToken;

import net.parim.spark.core.system.security.exceptions.UnauthenticatedException;

import net.parim.spark.portal.service.PortalCommonService;

/**

* 首页外放拦截器

* @author liweiqiang

*

*/

@Component

public class HomeOpenInterceptor extends HandlerInterceptorAdapter {

@Autowired

private PortalCommonService portalCommonService;

@Autowired

private ApplicationProperties applicationProperties;

@Override

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

throws Exception {

//判断是否需要拦截

Boolean flag = false;

if(flag){

//判断是否允许不登录的情况下 访问主页

//如果不允许匿名访问返回401

throw new UnauthenticatedException();

}

//否则允许直接放过,不进行任何拦截

return true;

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 干货丨初学者学Java应该安装什么软件?

    干货丨初学者学Java应该安装什么软件?初学者刚刚入门学习需要用到一些开发工具,初学Java一般从控制台应用程序开发开始的,在cmd下调试,为你的电脑搭建好开发环境,需要在网站上下载JDK,安装完成后调试成功就可以开始写你的J…

    2022年7月8日
    22
  • pycharm汉化包

    pycharm汉化包更新一个pycharm汉化包,下面给出具体炒作流程1.解压压缩包,里面一共有两个东西第一个文件夹是汉化的所有文件,(简单的说就是第二个文件解压后的文件,不过第二个文件本身并不是压缩包,只是可以用解压的方式打开而已)2.解压以后,将resources_cn复制,粘贴到pycharm的lib目录下,具体目录如下图3.将resources_cn粘贴到这个目录下…

    2022年5月9日
    52
  • ScheduledExecutorService 接口[通俗易懂]

    ScheduledExecutorService 接口[通俗易懂]newScheduledThreadPool()或者newSingleThreadScheduled-Executor()方法:延迟执行、周期性执行的执行器如果想在某一段时间之后执行线程操作,或者周期性地重复执行线程操作,则可以使用工厂类Executors的newScheduledThreadPool()方法或者newSingleThreadSche…

    2022年5月5日
    66
  • 小米手机解BL锁、线刷详细教程,适用于小米全系列手机[通俗易懂]

    小米手机解BL锁、线刷详细教程,适用于小米全系列手机[通俗易懂][教程]小米手机解BL锁、线刷详细教程,适用于小米全系列手机这几天看到论坛里很多人在问怎么线刷,下面我就做个详细的线教程大家看一下高手别喷我哈此教程只适合刷官方MIUI包进入正题。第一步:解BL锁1.浏览器打开申请解锁小米手机点击立即解锁,然后再点击下载解锁工具,下载后保存到电脑也可以点击这里立即下载2.解压后双击miflash_unlock.exe打开手机解锁工具V3.33.点同意,然后登陆帐号,手机会检测您的帐号是否可以解锁,如果不支持点击申请解锁,好像是大约一周左右可以通过申

    2022年6月7日
    82
  • 在活动目录中,转移和占用操作主机角色(转移)

    在活动目录中,转移和占用操作主机角色(转移)

    2022年3月4日
    36
  • 大数据时代下数据挖掘技术的应用[通俗易懂]

    大数据时代下数据挖掘技术的应用[通俗易懂]原文链接:https://mp.weixin.qq.com/s/bxSEO4gKQ-BbDWT1BNnwyw随着社会信息化的迅速发展,无论是数据的变化速率,还是数据的新增种类都在不断更新,数据研究变得越来越复杂,这意味着“大数据时代”到来。2011年,互联网数据中心(internetdatacenter,IDC)将大数据重新定义为:在大数据原有的三维特征——数量、多样、速度基础上,增加了另…

    2022年6月15日
    78

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号