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

被折叠的 条评论
为什么被折叠?



