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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • date函数举例_初中数学基础知识整理

    date函数举例_初中数学基础知识整理Date类型:1.Date.parse()接收一个表示日期的字符串参数,然后再根据这个字符串返回响应的日期的毫秒数;如:创建一个日期:2.Date.UTC():也返回表示日期的毫秒数;但是其参数分别

    2022年8月1日
    12
  • Windows下dump文件生成与分析

    Windows下dump文件生成与分析一、生成Dump文件方式1.1任务管理器在程序崩溃后,先不关闭程序,在任务管理器中找到该程序对应的进程。右键—>创建转储文件。此时会在默认的目录下创建出一个dump文件。可以看出,此种方法只适用于程序崩溃但没有立即自行退出的情况。倘若程序故障后自行退出,则此方法就难以应用。不过,我们可以在注册表中添加如下信息已确保系统在程序崩

    2022年5月2日
    54
  • Tomcat启动一直卡在webapps/ROOT的解决方案

    Tomcat启动一直卡在webapps/ROOT的解决方案

    2021年6月1日
    126
  • python fileinput_Python之fileinput模块学习「建议收藏」

    python fileinput_Python之fileinput模块学习「建议收藏」fileinput模块fileinput.input([files[,inplace[,backup[,bufsize[,mode[,openhook]]]]]])files:#文件的路径列表,默认是stdin方式,多文件[‘1.txt’,’2.txt’,…]inplace:#是否将标准输出的结果写回文件,默认不取代…

    2022年5月16日
    40
  • Pycharm 常用快捷键 for Mac

    Pycharm 常用快捷键 for Mac格式化代码 command option L 多行合并一行 control shift J 快速注释 取消注释 crtl 鼠标指针上方插入空行 command option enter 鼠标指针下方插入空行 shift enter 上下移动选中代码 shift option 上 下上下移动函数 shift command 上 下复制选中的代码 command D 折叠选中函数 或者鼠标指针放在函数名 command 查找 全局

    2025年9月23日
    3
  • 移位运算(计算机组成原理15)

    移位运算(计算机组成原理15)三种移位运算的方法:算数移位+逻辑移位+循环移位

    2022年7月13日
    17

发表回复

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

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