用户登录返回result修改,拦截器实现
This commit is contained in:
parent
f352d7226a
commit
d2d9faedd5
|
|
@ -5,6 +5,7 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserModiRe
|
|||
import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest;
|
||||
import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest;
|
||||
import com.electromagnetic.industry.software.data.manage.request.user.UserRequest;
|
||||
import electromagnetic.data.framework.share.model.ElectromagneticResult;
|
||||
import electromagnetic.data.framework.share.result.BaseResult;
|
||||
import electromagnetic.data.framework.share.result.LoginResult;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
|
|
@ -21,19 +22,21 @@ public class UserController {
|
|||
|
||||
@ApiOperation(value = "登录", notes = "")
|
||||
@PostMapping("/login")
|
||||
public LoginResult<?> login(@RequestBody UserLoginRequest loginRequest) {
|
||||
public ElectromagneticResult<?> login(@RequestBody UserLoginRequest loginRequest) {
|
||||
return userFacade.login(loginRequest);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "新增用户信息", notes = "")
|
||||
@PostMapping
|
||||
public BaseResult<?> createUser(@RequestBody UserRequest userRequest) {
|
||||
public ElectromagneticResult<?> createUser(@RequestBody UserRequest userRequest) {
|
||||
return userFacade.createUser(userRequest);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value="编辑用户信息",notes = "")
|
||||
@PutMapping
|
||||
public BaseResult<?> editUser(@RequestBody UserModiRequest userModiRequest){ return userFacade.modifyUser(userModiRequest);}
|
||||
|
||||
@ApiOperation(value = "发布用户信息", notes = "")
|
||||
@RequestMapping(value = "/publish", method = RequestMethod.POST)
|
||||
public BaseResult<?> publishUser(@RequestBody UserPublishRequest userPublishRequest) {
|
||||
|
|
|
|||
|
|
@ -10,4 +10,11 @@ public interface TokenRepository {
|
|||
* @return
|
||||
*/
|
||||
int insert(Token token);
|
||||
|
||||
/**
|
||||
* 查询令牌
|
||||
* @param token
|
||||
* @return
|
||||
*/
|
||||
public Token selectToken(String token);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,4 +20,9 @@ public interface TokenService {
|
|||
* @return
|
||||
*/
|
||||
public Boolean createUserToken (User user, String tokenStr);
|
||||
|
||||
/**
|
||||
* 查看token是否有效
|
||||
*/
|
||||
public Boolean isTokenValid(String tokenStr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.SystemClock;
|
||||
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.Token;
|
||||
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
|
||||
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
|
||||
|
|
@ -56,4 +57,17 @@ public class TokenServiceImpl implements TokenService {
|
|||
token.setExpireAt(new DateTime(now()+UserConstant.DEFAULT_EXPIRE_TIME));
|
||||
return tokenRepository.insert(token)>0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看token是否有效
|
||||
*/
|
||||
@Override
|
||||
public Boolean isTokenValid(String tokenStr){
|
||||
Token token = tokenRepository.selectToken(tokenStr);
|
||||
DateTime now = new DateTime(SystemClock.now());
|
||||
if (token != null && now.before(token.getExpireAt())) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public class UserServiceImpl implements UserService {
|
|||
@Override
|
||||
public Boolean matchPassword(User user, String password){
|
||||
String salt = user.getSalt();
|
||||
String encodePwd = SignUtils.MD5(UserConstant.DEFAULT_PASSWORD+salt);
|
||||
String encodePwd = SignUtils.MD5(password+salt);
|
||||
return user.getUserPwd().equals(encodePwd);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,6 +71,10 @@
|
|||
<groupId>org.apache.tomcat.embed</groupId>
|
||||
<artifactId>tomcat-embed-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -132,7 +132,7 @@ public class AESUtils {
|
|||
Security.addProvider(new BouncyCastleProvider());
|
||||
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding");
|
||||
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
|
||||
return cipher.doFinal(Base64.decodeBase64(enc)).toString();
|
||||
return new String(cipher.doFinal(Base64.decodeBase64(enc)));
|
||||
} catch (NoSuchPaddingException e) {
|
||||
throw new RuntimeException(e);
|
||||
} catch (IllegalBlockSizeException e) {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserModiRe
|
|||
import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest;
|
||||
import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest;
|
||||
import com.electromagnetic.industry.software.data.manage.request.user.UserRequest;
|
||||
import electromagnetic.data.framework.share.model.ElectromagneticResult;
|
||||
import electromagnetic.data.framework.share.result.BaseResult;
|
||||
import electromagnetic.data.framework.share.result.LoginResult;
|
||||
|
||||
|
|
@ -14,14 +15,14 @@ public interface UserFacade {
|
|||
* @param loginRequest
|
||||
* @return
|
||||
*/
|
||||
LoginResult<?> login(UserLoginRequest loginRequest);
|
||||
ElectromagneticResult<?> login(UserLoginRequest loginRequest);
|
||||
|
||||
/**
|
||||
* 新增用户信息
|
||||
* @param userRequest
|
||||
* @return
|
||||
*/
|
||||
BaseResult<?> createUser(UserRequest userRequest);
|
||||
ElectromagneticResult<?> createUser(UserRequest userRequest);
|
||||
|
||||
/**
|
||||
* 编辑用户信息
|
||||
|
|
|
|||
|
|
@ -12,4 +12,11 @@ public interface TokenMapper {
|
|||
* @return
|
||||
*/
|
||||
int insert(Token token);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param token
|
||||
* @return Token
|
||||
*/
|
||||
Token selectToken(String token);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,4 +22,12 @@ public class TokenRepositoryImpl implements TokenRepository {
|
|||
public int insert(Token token){
|
||||
return tokenMapper.insert(token);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询令牌
|
||||
* @param token
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Token selectToken(String token) {return tokenMapper.selectToken(token);}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,10 @@
|
|||
<result column="expire_at" jdbcType="TIMESTAMP" property="expireAt" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectTokenVo">
|
||||
select id, user_id, token, is_long_term, created_at, expire_at from tokens
|
||||
</sql>
|
||||
|
||||
<insert id="insert" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.Token">
|
||||
insert into tokens(
|
||||
<if test="userId != null and userId !='' ">user_id,</if>
|
||||
|
|
@ -26,4 +30,10 @@
|
|||
<if test="expireAt !=null">#{expireAt}</if>
|
||||
)
|
||||
</insert>
|
||||
|
||||
<select id="selectToken" parameterType="String" resultMap="TokenResultMap">
|
||||
<include refid="selectTokenVo" />
|
||||
where token=#{token}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
@ -12,6 +12,8 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserLoginR
|
|||
import com.electromagnetic.industry.software.data.manage.request.user.UserRequest;
|
||||
import com.electromagnetic.industry.software.data.manage.service.mappers.UserMappers;
|
||||
import electromagnetic.data.framework.share.id.IdWorker;
|
||||
import electromagnetic.data.framework.share.model.ElectromagneticResult;
|
||||
import electromagnetic.data.framework.share.model.ElectromagneticResultUtil;
|
||||
import electromagnetic.data.framework.share.result.BaseResult;
|
||||
import electromagnetic.data.framework.share.result.LoginResult;
|
||||
import electromagnetic.data.framework.share.sign.AESUtils;
|
||||
|
|
@ -37,16 +39,16 @@ public class UserFacadeImpl implements UserFacade {
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LoginResult<Boolean> login(UserLoginRequest loginRequest) {
|
||||
public ElectromagneticResult<String> login(UserLoginRequest loginRequest) {
|
||||
UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest);
|
||||
String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstant.SECRET_KEY);
|
||||
User user = userService.getUserByWorkNumber(info.getWorkNumber());
|
||||
if (user==null || userService.matchPassword(user, decodePwd)) {
|
||||
if ( user!=null && userService.matchPassword(user, decodePwd)) {
|
||||
String tokenStr = tokenService.createToken(info);
|
||||
tokenService.createUserToken(user, tokenStr);
|
||||
return LoginResultUtil.success(tokenStr);
|
||||
return ElectromagneticResultUtil.success(tokenStr);
|
||||
}
|
||||
return LoginResultUtil.fail("500","用户不存在/密码错误");
|
||||
return ElectromagneticResultUtil.fail("500","用户不存在/密码错误");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -55,13 +57,13 @@ public class UserFacadeImpl implements UserFacade {
|
|||
* @return
|
||||
*/
|
||||
@Override
|
||||
public BaseResult<Boolean> createUser(UserRequest userRequest){
|
||||
public ElectromagneticResult<Boolean> createUser(UserRequest userRequest){
|
||||
User user = UserMappers.INSTANCE.getUserRequestToModel(userRequest);
|
||||
user.setSalt(RandomStringUtils.randomAlphanumeric(16));
|
||||
user.setUserId(IdWorker.getSnowFlakeIdString());
|
||||
user.setUserPwd(SignUtils.MD5(UserConstant.DEFAULT_PASSWORD+user.getSalt()));
|
||||
user.setIsPublished(UserConstant.DEFAULT_PUBLISH_STATUS);
|
||||
return BaseResultUtil.success(userService.createUser(user));
|
||||
return ElectromagneticResultUtil.success(userService.createUser(user));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue