Commit 8e19bce4 authored by zhuangzhuang's avatar zhuangzhuang

3.5--登录拦截器,增加获取用户名的接口,修改传值为空的判断

parent 3b887955
This diff is collapsed.
package com.example.tdl.config;
import com.example.tdl.interceptor.LoginInterceptor;
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 MyWebMvcConfigurer extends WebMvcConfigurerAdapter {
@Bean
public LoginInterceptor loginInterceptor(){
return new LoginInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor())
.excludePathPatterns("/login/**");
super.addInterceptors(registry);
}
}
package com.example.tdl.domain.vo;
public class UserNameVo {
private String UserName;
public UserNameVo() {
}
public UserNameVo(String userName) {
UserName = userName;
}
public String getUserName() {
return UserName;
}
public void setUserName(String userName) {
UserName = userName;
}
}
package com.example.tdl.interceptor;
import com.example.tdl.service.TokenRedisService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
public class LoginInterceptor implements HandlerInterceptor {
private static Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
@Autowired
private TokenRedisService redisService;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURI();
if(url.contains("swagger") || url.contains("/v2/api-docs")){
return true;
}
String token = request.getHeader("Account_token");
if(token == null){
response.setContentType("application/json");
response.setStatus(401);
response.setHeader("Content-type", "text/html;charset=UTF-8");
OutputStream ps = response.getOutputStream();
ps.write("{\"code\":0,\"message\":\"用户未登录,请先登录\"}".getBytes("UTF-8"));
return false;
}
String data = redisService.get("TOKEN_" +token);
if(data == null){
response.setContentType("application/json");
response.setStatus(401);
response.setHeader("Content-type", "text/html;charset=UTF-8");
OutputStream ps = response.getOutputStream();
ps.write("{\"code\":0,\"message\":\"用户登录过期,请重新登录\"}".getBytes("UTF-8"));
return false;
}
redisService.expire("TOKEN_" +token,60 * 30);
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
\ No newline at end of file
...@@ -103,9 +103,6 @@ public class LoginController { ...@@ -103,9 +103,6 @@ public class LoginController {
@ResponseBody @ResponseBody
public String logout(HttpServletRequest request){ public String logout(HttpServletRequest request){
String token=request.getHeader("Account_token"); String token=request.getHeader("Account_token");
// JSONObject jsonObject= JSON.parseObject(token);
// token=(String)jsonObject.get("token");
// logger.info(request.getHeader("Account_token"));
tokenRedisService.delKey("TOKEN_"+token); tokenRedisService.delKey("TOKEN_"+token);
fb.setCode(1); fb.setCode(1);
fb.setMessage("注销成功"); fb.setMessage("注销成功");
......
...@@ -72,26 +72,19 @@ public class LoginLogController { ...@@ -72,26 +72,19 @@ public class LoginLogController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"), @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
}) })
@RequestMapping(value="/getByTime",method = RequestMethod.POST) @RequestMapping(value="/getByTime",method = RequestMethod.POST)
public Object getByTime(@RequestBody LoginLogTermVo loginLogTermVo,HttpServletRequest request){ public Object getByTime(@RequestBody LoginLogTermVo loginLogTermVo){
String token = request.getHeader("Account_token"); if (StringUtils.isEmpty(loginLogTermVo.getStartTime()+"")){
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0); fb.setCode(0);
fb.setMessage("您没有登录,请先登录"); fb.setMessage("查询开始时间不能为空");
return gson.toJson(fb); return gson.toJson(fb);
}else{
if (StringUtils.isEmpty(loginLogTermVo.getStartTime()+"")){
fb.setCode(0);
fb.setMessage("查询开始时间不能为空");
return gson.toJson(fb);
}
if (StringUtils.isEmpty(loginLogTermVo.getStopTime()+"")){
fb.setCode(0);
fb.setMessage("查询结束时间不能为空");
return gson.toJson(fb);
}
return loginLogService.getByTime(loginLogTermVo);
} }
if (StringUtils.isEmpty(loginLogTermVo.getStopTime()+"")){
fb.setCode(0);
fb.setMessage("查询结束时间不能为空");
return gson.toJson(fb);
}
return loginLogService.getByTime(loginLogTermVo);
} }
......
...@@ -43,16 +43,8 @@ public class PermissionController { ...@@ -43,16 +43,8 @@ public class PermissionController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"), @ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
}) })
@RequestMapping(value="/getAll",method = RequestMethod.GET) @RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){ public Object getAll(){
String token = request.getHeader("Account_token"); return permissionService.getAll();
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
return permissionService.getAll();
}
} }
......
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cy?useUnicode=true&characterEncoding=utf-8&useSSL=false spring.datasource.url=jdbc:mysql://192.168.1.53:3306/cy?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=root spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.driver-class-name=com.mysql.jdbc.Driver
server.port=8092 server.port=8099
management.security.enabled=false management.security.enabled=false
mybatis.type-aliases-package=com.example.demo.entity mybatis.type-aliases-package=com.example.demo.entity
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment