java 拦截器 追加参数_javaweb添加拦截器

这篇博客介绍了如何在Java Web应用中使用拦截器(Interceptor)进行登录验证,并展示了如何配置拦截器链来追加特定请求路径的参数。通过拦截器,控制器类`DispatcherController`实现了不同用户登录的判断,将登录成功的用户信息存储在会话(HttpSession)中。同时,拦截器配置方法`addInterceptors`用于设置拦截规则,将登录请求排除在外,确保登录页面不受拦截影响。

packagecom.ctzj.biz.isale.deploy.controller;importjava.io.IOException;importjava.io.UnsupportedEncodingException;importjava.util.Date;importjava.util.List;importjava.util.Map;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.curator.utils.ZKPaths;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.bind.annotation.RestController;importorg.springframework.web.context.request.RequestContextHolder;importorg.springframework.web.context.request.ServletRequestAttributes;importorg.springframework.web.servlet.config.annotation.InterceptorRegistry;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.ViewControllerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;importorg.springframework.web.socket.WebSocketSession;importcom.ctzj.biz.isale.deploy.config.ApplicationProperties;importcom.ctzj.biz.isale.deploy.model.Menu;importcom.ctzj.biz.isale.deploy.model.ResponseResult;importcom.ctzj.biz.isale.deploy.model.dataobject.DeployConfigDo;importcom.ctzj.biz.isale.deploy.model.query.DeployConfigQuery;importcom.ctzj.biz.isale.deploy.service.DeployConfigService;importcom.ctzj.biz.isale.deploy.service.MenuConfigService;importcom.ctzj.biz.isale.deploy.util.Interceptor;importcom.google.common.collect.Lists;importcom.google.common.collect.Maps;

@RestController

@RequestMapping(value= "/dispatcher")public class DispatcherController extendsWebMvcConfigurerAdapter{

@AutowiredprivateDeployConfigService deployConfigService;

@AutowiredprivateMenuConfigService menuConfigService;

@AutowiredprivateApplicationProperties properties;/*** 登录验证

*@paramrequest

*@paramresponse

*@return*@throwsUnsupportedEncodingException*/@RequestMapping("/login")

@ResponseBodypublic ResponseResultlogin(HttpServletRequest request,

HttpServletResponse response,String username,String password)throwsUnsupportedEncodingException {

HttpSession session=request.getSession();if(properties.getPstUsername().equals(username)&&properties.getPstPassword().equals(password)){

session.setAttribute("user", username);

}else if(properties.getProdUsername().equals(username)&&properties.getProdPassword().equals(password)){

session.setAttribute("user", username);

}else if(properties.getSuperUsername().equals(username)&&properties.getSuperPassword().equals(password)){

session.setAttribute("user", username);

}else{

username="用户名或密码错误!!!";returnResponseResult.buildFailure(username);

}returnResponseResult.buildSuccessInstance

(username);

}public voidaddInterceptors(InterceptorRegistry registry) {//多个拦截器组成一个拦截器链//addPathPatterns 用于添加拦截规则//excludePathPatterns 用户排除拦截

registry.addInterceptor(new Interceptor()).addPathPatterns("/dispatcher/*").excludePathPatterns("/dispatcher/login");super.addInterceptors(registry);

}

@Overridepublic voidaddResourceHandlers(ResourceHandlerRegistry registry) {

registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");super.addResourceHandlers(registry);

}

@Overridepublic voidaddViewControllers(ViewControllerRegistry registry) {

registry.addViewController("/toLogin").setViewName("login.html");super.addViewControllers(registry);

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值