当前位置: 首页 > news >正文

地方门户信息网站建设方案/搜索百度网页版

地方门户信息网站建设方案,搜索百度网页版,做招聘网站赚钱吗,页面模板第三方应用这篇文章简单介绍如何自定义一个SpringMVC拦截器,并通过拦截器实现具体的功能。 首先,需要创建一个自定义的拦截器类,该类实现HandlerInterceptor接口。 package cn.edu.sgu.www.mhxysy.interceptor;import cn.edu.sgu.www.mhxysy.feign.Fei…

这篇文章简单介绍如何自定义一个SpringMVC拦截器,并通过拦截器实现具体的功能。

首先,需要创建一个自定义的拦截器类,该类实现HandlerInterceptor接口。

package cn.edu.sgu.www.mhxysy.interceptor;import cn.edu.sgu.www.mhxysy.feign.FeignService;
import cn.edu.sgu.www.mhxysy.property.NetworkProperties;
import cn.edu.sgu.www.mhxysy.restful.JsonResult;
import cn.edu.sgu.www.mhxysy.restful.ResponseCode;
import cn.edu.sgu.www.mhxysy.util.IpUtils;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;/*** 自定义拦截器* @author heyunlin* @version 1.0*/
@Slf4j
@Component
public class WebInterceptor implements HandlerInterceptor {@Value("${spring.application.name}")private final String service = "mhxysy";/*** 匿名接口权限*/private static Set<String> ANONYMITY_URLS;private final NetworkProperties networkProperties;@Autowiredpublic WebInterceptor(FeignService feignService, NetworkProperties networkProperties) {this.networkProperties = networkProperties;if (ANONYMITY_URLS == null) {List<String> permissions = feignService.selectAnonymityPermissions(service);ANONYMITY_URLS = new HashSet<>(permissions);}}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {// 获取请求urlString requestURI = request.getRequestURI();// 1、处理匿名访问接口,直接跳过鉴权if (ANONYMITY_URLS.contains(requestURI)) {log.debug("匿名接口" + requestURI + "正在被访问...");return true;}// 2、内外网控制if (networkProperties.isEnableInnerIpAccess()) {// 得到客户端IPString clientIp = IpUtils.getIp();if (!networkProperties.getInnerIps().contains(clientIp)) {// 构建返回对象JsonResult<Void> jsonResult = JsonResult.error(ResponseCode.FORBIDDEN, requestURI + "只允许内网访问~");// 设置内容类型为jsonresponse.setContentType("application/json;charset=utf-8");// 设置响应状态码response.setStatus(ResponseCode.FORBIDDEN.getValue());response.getWriter().write(JSON.toJSONString(jsonResult));return false;}}return true;}/*** 获取匿名接口列表* @return Set<String>*/public static Set<String> getAnonymityUrls() {return ANONYMITY_URLS;}}

IpUtils.java

package cn.edu.sgu.www.mhxysy.util;import javax.servlet.http.HttpServletRequest;/*** ip地址工具类* @author heyunlin* @version 1.0*/
public class IpUtils {/*** 获取客户端IP* @return String*/public static String getIp() {HttpServletRequest request = UserUtils.getRequest();String ip = request.getHeader("x-forwarded-for");if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("WL-Proxy-Client-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_CLIENT_IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("HTTP_X_FORWARDED_FOR");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getHeader("X-Real-IP");}if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {ip = request.getRemoteAddr();}return ip;}/*** 获取浏览器类型* @return String 浏览器类型*/public static String getBrowserType() {HttpServletRequest request = UserUtils.getRequest();String type = "其它";String browserName = request.getHeader("USER-AGENT").toLowerCase();if (browserName.indexOf("msie") > 0) {type = "IE";} else if (browserName.indexOf("firefox") > 0) {type = "Firefox";} else if (browserName.indexOf("chrome") > 0) {type = "Chrome";} else if (browserName.indexOf("opera") > 0) {type = "Opera";} else if (browserName.indexOf("gecko") > 0 && browserName.indexOf("rv:11") > 0) {type = "IE11";}return type;}}

然后把拦截器注册到SpringMVC

package cn.edu.sgu.www.mhxysy.config;import cn.edu.sgu.www.mhxysy.interceptor.WebInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import javax.servlet.ServletContext;/*** springmvc配置类* @author heyunlin* @version 1.0*/
@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {@Value("${uploads.path}")private String uploadPath;private final WebInterceptor webInterceptor;@Autowiredpublic SpringMvcConfig(WebInterceptor webInterceptor) {this.webInterceptor = webInterceptor;}/*** 解决跨域问题*/@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*").allowCredentials(true).maxAge(5000);}/*** 添加静态资源路径*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {// 配置静态资源路径registry.addResourceHandler("/**").addResourceLocations("classpath:static/").addResourceLocations("file:" + uploadPath + "/");// 解决knife4j访问失败问题registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(webInterceptor).addPathPatterns("/**");}/*** 设置SESSION_ID* @return ServletContextInitializer*/@Beanpublic ServletContextInitializer servletContextInitializer() {return new ServletContextInitializer() {@Overridepublic void onStartup(ServletContext servletContext) {servletContext.getSessionCookieConfig().setName("MHXYSY_JSESSIONID");}};}}

http://www.rdtb.cn/news/340.html

相关文章:

  • 西安有关做网站的公司/福建seo网站
  • 网站建设公司湖南/武汉seo优化分析
  • 网站从建设到运行要多少/搜索引擎seo优化平台
  • 做一个色流网站怎么做/南宁seo网络推广
  • 石家庄搭建网站/市场营销方案范文5篇
  • 怎么在.Net中做团购网站/湖南seo优化报价
  • 高性能网站建设进阶/百度推广有哪些形式
  • 郑州做网站易云巢/网站推广的案例
  • 网站文章页的排名怎么做/广东培训seo
  • 当前最新域名/网站搭建谷歌seo
  • 用rp怎么做网站按钮下拉菜单/百度优化是什么意思
  • 网站开发案例/湖南长沙疫情最新消息
  • 营销型网站开发公司/免费发布信息网
  • 做有后台的网站/关键词seo排名怎么做的
  • 杭州视频网站建设/免费下载百度一下
  • 网站页面背景/惠州seo网络推广
  • 网站建设要求报告/百度指数关键词
  • 无上升级系统/seo在线培训课程
  • 网站开发类参考文献/重要新闻今天8条新闻
  • 兰溪做网站/贴吧推广400一个月
  • 怎么查看一个网站有没有做推广/搜索引擎优化是什么工作
  • 东莞网站优化找哪家/百度广告标识
  • 备案停止网站/seo能干一辈子吗
  • 泊头公司做网站/互联网营销师证
  • 个人网站做废品回收/软文代写服务
  • 帝国cms 网站迁移/seo服务优化
  • 在线修图编辑器免费/关键词排名优化方法
  • 网站建设中企动力强/网络竞价推广托管公司
  • 惠州附近公司做网站建设多少钱/seo优化网站教程
  • 大理建设投资有限公司网站/nba排名最新