add access user replace user login controller
parent
fb723f145f
commit
a1c28a087a
@ -1,41 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.controller;
|
|
||||||
|
|
||||||
import com.anji.plus.gaea.bean.ResponseBean;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.service.UserService;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 简单登录
|
|
||||||
* Created by raodeming on 2021/6/23.
|
|
||||||
*/
|
|
||||||
@RestController
|
|
||||||
@Api(tags = "用户管理")
|
|
||||||
public class LoginController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 简单实现登录
|
|
||||||
* @param dto
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@PostMapping({"/login"})
|
|
||||||
public ResponseBean login(@RequestBody @Validated GaeaUserDTO dto) {
|
|
||||||
return ResponseBean.builder().data(userService.login(dto)).build();
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping({"/health"})
|
|
||||||
public ResponseBean health() {
|
|
||||||
return ResponseBean.builder().build();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.dao;
|
|
||||||
|
|
||||||
import com.anji.plus.gaea.curd.mapper.GaeaBaseMapper;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dao.entity.GaeaUser;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by raodeming on 2021/6/23.
|
|
||||||
*/
|
|
||||||
@Mapper
|
|
||||||
public interface GaeaUserMapper extends GaeaBaseMapper<GaeaUser> {
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.dao.entity;
|
|
||||||
|
|
||||||
import com.anji.plus.gaea.annotation.Unique;
|
|
||||||
import com.anji.plus.gaea.curd.entity.GaeaBaseEntity;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by raodeming on 2021/6/23.
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class GaeaUser extends GaeaBaseEntity implements Serializable {
|
|
||||||
/**
|
|
||||||
* 用户名
|
|
||||||
*/
|
|
||||||
private String username;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 密码
|
|
||||||
*/
|
|
||||||
private String password;
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.dto;
|
|
||||||
|
|
||||||
import com.anji.plus.gaea.annotation.Unique;
|
|
||||||
import com.anji.plus.gaea.curd.dto.GaeaBaseDTO;
|
|
||||||
import io.swagger.annotations.ApiModel;
|
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import javax.validation.constraints.NotBlank;
|
|
||||||
|
|
||||||
|
|
||||||
@ApiModel(value = "用户表")
|
|
||||||
@Data
|
|
||||||
public class GaeaUserDTO extends GaeaBaseDTO {
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户登录名")
|
|
||||||
@NotBlank
|
|
||||||
private String username;
|
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户密码")
|
|
||||||
@NotBlank
|
|
||||||
private String password;
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.service;
|
|
||||||
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by raodeming on 2021/6/23.
|
|
||||||
*/
|
|
||||||
public interface UserService {
|
|
||||||
Object login(GaeaUserDTO dto);
|
|
||||||
}
|
|
@ -1,90 +0,0 @@
|
|||||||
package com.anjiplus.template.gaea.business.modules.user.service.impl;
|
|
||||||
|
|
||||||
import com.anji.plus.gaea.cache.CacheHelper;
|
|
||||||
import com.anji.plus.gaea.exception.BusinessExceptionBuilder;
|
|
||||||
import com.anji.plus.gaea.utils.GaeaUtils;
|
|
||||||
import com.anji.plus.gaea.utils.JwtBean;
|
|
||||||
import com.anjiplus.template.gaea.business.code.ResponseCode;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dao.GaeaUserMapper;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dao.entity.GaeaUser;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.dto.GaeaUserDTO;
|
|
||||||
import com.anjiplus.template.gaea.business.modules.user.service.UserService;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.security.MessageDigest;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by raodeming on 2021/6/23.
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
@Slf4j
|
|
||||||
public class UserServiceImpl implements UserService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private JwtBean jwtBean;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private GaeaUserMapper gaeaUserMapper;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private CacheHelper cacheHelper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Object login(GaeaUserDTO dto) {
|
|
||||||
|
|
||||||
String username = dto.getUsername();
|
|
||||||
String password = dto.getPassword();
|
|
||||||
//1.判断用户是否存在
|
|
||||||
LambdaQueryWrapper<GaeaUser> wrapper = Wrappers.lambdaQuery();
|
|
||||||
wrapper.eq(GaeaUser::getUsername, username);
|
|
||||||
GaeaUser gaeaUser = gaeaUserMapper.selectOne(wrapper);
|
|
||||||
if (null == gaeaUser || !gaeaUser.getPassword().equals(encrypt(password))) {
|
|
||||||
throw BusinessExceptionBuilder.build(ResponseCode.LOGIN_ERROR);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Map<String, String> map = Maps.newHashMap();
|
|
||||||
|
|
||||||
//将登录信息缓存,默认一小时
|
|
||||||
if (cacheHelper.exist(username)) {
|
|
||||||
map.put("token", cacheHelper.stringGet(username));
|
|
||||||
map.put("username", username);
|
|
||||||
} else {
|
|
||||||
String uuid = GaeaUtils.UUID();
|
|
||||||
String token = jwtBean.createToken(username, uuid);
|
|
||||||
cacheHelper.stringSetExpire(username, token, 3600);
|
|
||||||
map.put("token", token);
|
|
||||||
map.put("username", username);
|
|
||||||
}
|
|
||||||
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取指定字符串的md5值
|
|
||||||
* @param dataStr 明文
|
|
||||||
* @return String
|
|
||||||
*/
|
|
||||||
public static String encrypt(String dataStr) {
|
|
||||||
try {
|
|
||||||
MessageDigest m = MessageDigest.getInstance("MD5");
|
|
||||||
m.update(dataStr.getBytes("UTF8"));
|
|
||||||
byte[] s = m.digest();
|
|
||||||
StringBuilder result = new StringBuilder();
|
|
||||||
for (int i = 0; i < s.length; i++) {
|
|
||||||
result.append(Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6));
|
|
||||||
}
|
|
||||||
return result.toString();
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error("error",e);
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,29 @@
|
|||||||
|
package com.anjiplus.template.gaea.business.util;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class MD5Util {
|
||||||
|
/**
|
||||||
|
* 获取指定字符串的md5值
|
||||||
|
* @param dataStr 明文
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public static String encrypt(String dataStr) {
|
||||||
|
try {
|
||||||
|
MessageDigest m = MessageDigest.getInstance("MD5");
|
||||||
|
m.update(dataStr.getBytes("UTF8"));
|
||||||
|
byte[] s = m.digest();
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
for (int i = 0; i < s.length; i++) {
|
||||||
|
result.append(Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6));
|
||||||
|
}
|
||||||
|
return result.toString();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("error",e);
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue