Commit 8e19bce4 authored by zhuangzhuang's avatar zhuangzhuang

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

parent 3b887955
This source diff could not be displayed because it is too large. You can view the blob instead.
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
......@@ -112,11 +112,6 @@ public class AlarmController {
public Object addAlarm(@RequestBody AddAlarmVo addAlarmVo,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
if (StringUtils.isEmpty(addAlarmVo.getAlarmType())){
fb.setCode(0);
fb.setMessage("预警类型不能为空");
......@@ -176,7 +171,6 @@ public class AlarmController {
}
return gson.toJson(fb);
}
}
//修改预警信息
@ApiOperation(value = "修改预警信息",notes = "修改预警信息,传递参数:" +
......@@ -195,14 +189,7 @@ public class AlarmController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@RequestMapping(value="/updateAlarm",method = RequestMethod.POST)
public Object updateAlarm(@RequestBody UpdateAlarmVo updateAlarmVo,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
public Object updateAlarm(@RequestBody UpdateAlarmVo updateAlarmVo){
if (StringUtils.isEmpty(updateAlarmVo.getOldAlarmType())){
fb.setCode(0);
fb.setMessage("需要修改的预警类型不能为空");
......@@ -275,7 +262,7 @@ public class AlarmController {
fb.setMessage("修改预警信息失败");
}
return gson.toJson(fb);
}
}
//删除预警信息
......@@ -286,14 +273,7 @@ public class AlarmController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@RequestMapping(value="/delAlarm",method = RequestMethod.POST)
public Object delAlarm(@RequestBody DelAlarmVo delAlarmVo,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
public Object delAlarm(@RequestBody DelAlarmVo delAlarmVo){
int a=alarmService.delAlarm(delAlarmVo);
if (a>0){
fb.setCode(1);
......@@ -302,7 +282,6 @@ public class AlarmController {
fb.setCode(0);
fb.setMessage("删除预警信息失败");
}
}
return gson.toJson(fb);
}
......
......@@ -103,9 +103,6 @@ public class LoginController {
@ResponseBody
public String logout(HttpServletRequest request){
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);
fb.setCode(1);
fb.setMessage("注销成功");
......
......@@ -72,14 +72,7 @@ public class LoginLogController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@RequestMapping(value="/getByTime",method = RequestMethod.POST)
public Object getByTime(@RequestBody LoginLogTermVo loginLogTermVo,HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
public Object getByTime(@RequestBody LoginLogTermVo loginLogTermVo){
if (StringUtils.isEmpty(loginLogTermVo.getStartTime()+"")){
fb.setCode(0);
fb.setMessage("查询开始时间不能为空");
......@@ -91,7 +84,7 @@ public class LoginLogController {
return gson.toJson(fb);
}
return loginLogService.getByTime(loginLogTermVo);
}
}
......
......@@ -43,17 +43,9 @@ public class PermissionController {
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
public Object getAll(){
return permissionService.getAll();
}
}
......
......@@ -154,7 +154,7 @@ public class RouteController {
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}else{
}
if (StringUtils.isEmpty(addRouteVo.getStartLatitude())){
fb.setCode(0);
fb.setMessage("启运纬度不能为空");
......@@ -291,7 +291,6 @@ public class RouteController {
}
return gson.toJson(fb);
}
}
@ApiOperation(value = "修改路由信息",notes = "修改路由信息,都要传,路由编号是需要修改的路由编号,不能改,说明:" +
" routeNumber:路由编号," +
......
......@@ -14,14 +14,10 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
......@@ -54,14 +50,7 @@ public class UserController {
})
@RequestMapping(value="/getAll",method = RequestMethod.GET)
public Object getAll(HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
UserRedisVo user = gson.fromJson(tokenRedisService.get("TOKEN_" +request.getHeader("Account_token")),UserRedisVo.class);
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
......@@ -82,11 +71,6 @@ public class UserController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
......@@ -113,20 +97,16 @@ public class UserController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
fb.setMessage("对不起,您没有此权限");
return gson.toJson(fb);
}else{
if (userVo.getUserName().equals("")||userVo.getUserName()==null){
if (StringUtils.isEmpty(userVo.getUserName())){
fb.setCode(0);
fb.setMessage("用户名不能为空");
return gson.toJson(fb);
}
if (!userVo.getUserName().matches("^[a-zA-Z][a-zA-Z0-9_]{5,19}$")) {
fb.setCode(0);
......@@ -148,12 +128,12 @@ public class UserController {
fb.setMessage("密码必须是6-20位的数字、字母和_");
return gson.toJson(fb);
}
if (userVo.getNickName()==null||userVo.getNickName().equals("")){
if (StringUtils.isEmpty(userVo.getNickName())){
fb.setCode(0);
fb.setMessage("昵称不能为空");
return gson.toJson(fb);
}
if(userVo.getPhone() ==null || userVo.getPhone().equals("")){
if(StringUtils.isEmpty(userVo.getPhone())){
fb.setCode(0);
fb.setMessage("电话不能为空");
return gson.toJson(fb);
......@@ -168,7 +148,7 @@ public class UserController {
fb.setMessage("该手机号已被注册");
return gson.toJson(fb);
}
if(userVo.getEmail() ==null || userVo.getEmail().equals("")){
if(StringUtils.isEmpty(userVo.getEmail())){
fb.setCode(0);
fb.setMessage("邮箱不能为空");
return gson.toJson(fb);
......@@ -183,7 +163,7 @@ public class UserController {
fb.setMessage("该邮箱已被注册");
return gson.toJson(fb);
}
if (userVo.getRoleName().equals("")||userVo.getRoleName()==null){
if (StringUtils.isEmpty(userVo.getRoleName())){
fb.setCode(0);
fb.setMessage("角色名不能为空");
return gson.toJson(fb);
......@@ -215,17 +195,12 @@ public class UserController {
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
fb.setMessage("对不起,您没有此权限");
return gson.toJson(fb);
}else{
}
ResultUserVo userInfo=userService.getByUserNumber(user.getUserNumber());
// if (userVo.getUserName().equals("")||userVo.getUserName()==null){
// fb.setCode(0);
......@@ -251,12 +226,12 @@ public class UserController {
// fb.setMessage("密码必须是6-20位的数字、字母和_");
// return gson.toJson(fb);
// }
if (userVo.getNickName()==null||userVo.getNickName().equals("")){
if (StringUtils.isEmpty(userVo.getNickName())){
fb.setCode(0);
fb.setMessage("昵称不能为空");
return gson.toJson(fb);
}
if(userVo.getPhone() ==null || userVo.getPhone().equals("")){
if(StringUtils.isEmpty(userVo.getPhone())){
fb.setCode(0);
fb.setMessage("电话不能为空");
return gson.toJson(fb);
......@@ -271,7 +246,7 @@ public class UserController {
fb.setMessage("该手机号已被注册");
return gson.toJson(fb);
}
if(userVo.getEmail() ==null || userVo.getEmail().equals("")){
if(StringUtils.isEmpty(userVo.getEmail())){
fb.setCode(0);
fb.setMessage("邮箱不能为空");
return gson.toJson(fb);
......@@ -286,12 +261,12 @@ public class UserController {
fb.setMessage("该邮箱已被注册");
return gson.toJson(fb);
}
if (userVo.getRoleName().equals("")||userVo.getRoleName()==null){
if (StringUtils.isEmpty(userVo.getRoleName())){
fb.setCode(0);
fb.setMessage("角色名不能为空");
return gson.toJson(fb);
}
if (userVo.getUserNumber()==null||userVo.getUserNumber().equals("")){
if (StringUtils.isEmpty(userVo.getUserNumber())){
fb.setCode(0);
fb.setMessage("需要修改的用户编号不能为空");
return gson.toJson(fb);
......@@ -304,7 +279,6 @@ public class UserController {
fb.setCode(0);
fb.setMessage("修改用户失败");
}
}
return gson.toJson(fb);
}
......@@ -315,22 +289,17 @@ public class UserController {
})
@RequestMapping(value="/delUser",method = RequestMethod.POST)
public Object delUser(@RequestBody String userNumber,HttpServletRequest request){
JSONObject jsonObject= JSON.parseObject(userNumber);
userNumber=jsonObject.getString("userNumber");
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
fb.setMessage("对不起,您没有此权限");
return gson.toJson(fb);
}else{
}
JSONObject jsonObject= JSON.parseObject(userNumber);
userNumber=jsonObject.getString("userNumber");
int a = userService.delUser(userNumber);
if (a>0){
fb.setCode(0);
......@@ -341,7 +310,6 @@ public class UserController {
}
return gson.toJson(fb);
}
}
//重置密码
@ApiOperation(value = "重置密码",notes = "重置密码")
......@@ -350,22 +318,17 @@ public class UserController {
})
@RequestMapping(value="/resetPassword",method = RequestMethod.POST)
public Object resetPassword(@RequestBody String userNumber, HttpServletRequest request){
JSONObject jsonObject= JSON.parseObject(userNumber);
userNumber=jsonObject.getString("userNumber");
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
UserRedisVo user = gson.fromJson(datum,UserRedisVo.class);
if(datum == null){
fb.setCode(0);
fb.setMessage("您没有登录,请先登录");
return gson.toJson(fb);
}
List<String> permission=roleHasPermissionService.getByRoleName(user.getRoleName());
if (!permission.contains("用户列表")){
fb.setCode(0);
fb.setMessage("对不起,您没有此权限");
return gson.toJson(fb);
}else{
}
JSONObject jsonObject= JSON.parseObject(userNumber);
userNumber=jsonObject.getString("userNumber");
String pwd=DigestUtils.sha256Hex("Witium123");
int a = userService.resetPassword(userNumber,pwd);
if (a>0){
......@@ -377,6 +340,17 @@ public class UserController {
}
return gson.toJson(fb);
}
//获取当前的用户名
@ApiOperation(value = "获取当前的用户名",notes = "获取当前的用户名")
@ApiImplicitParams({
@ApiImplicitParam(paramType="header", name = "Account_token", value = "token", required = true, dataType = "String"),
})
@GetMapping(value="/getUserName")
public Object getUserName(HttpServletRequest request){
String token = request.getHeader("Account_token");
String datum = tokenRedisService.get("TOKEN_" +token);
return new UserNameVo(gson.fromJson(datum,UserRedisVo.class).getUserName());
}
}
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.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
server.port=8092
server.port=8099
management.security.enabled=false
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