diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
index fce74d2..e9d1282 100644
--- a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
+++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/user/UserController.java
@@ -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) {
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java
index 01b6928..88afa9d 100644
--- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/TokenRepository.java
@@ -10,4 +10,11 @@ public interface TokenRepository {
* @return
*/
int insert(Token token);
+
+ /**
+ * 查询令牌
+ * @param token
+ * @return
+ */
+ public Token selectToken(String token);
}
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java
index 6446c4c..a17daed 100644
--- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/TokenService.java
@@ -20,4 +20,9 @@ public interface TokenService {
* @return
*/
public Boolean createUserToken (User user, String tokenStr);
+
+ /**
+ * 查看token是否有效
+ */
+ public Boolean isTokenValid(String tokenStr);
}
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java
index 9bfbc3a..a852c88 100644
--- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/TokenServiceImpl.java
@@ -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;
+ }
}
diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java
index fe5847f..59d017b 100644
--- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java
+++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/UserServiceImpl.java
@@ -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);
}
diff --git a/electromagnetic-framework/pom.xml b/electromagnetic-framework/pom.xml
index 899213d..9e7d955 100644
--- a/electromagnetic-framework/pom.xml
+++ b/electromagnetic-framework/pom.xml
@@ -71,6 +71,10 @@
org.apache.tomcat.embed
tomcat-embed-core
+
+ org.springframework
+ spring-webmvc
+
\ No newline at end of file
diff --git a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java
index c8bcbf8..3bb0e57 100644
--- a/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java
+++ b/electromagnetic-framework/src/main/java/electromagnetic/data/framework/share/sign/AESUtils.java
@@ -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) {
diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java
index 84201a0..b0de169 100644
--- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java
+++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/user/UserFacade.java
@@ -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);
/**
* 编辑用户信息
diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java
index fb67a60..9a9690d 100644
--- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java
+++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/TokenMapper.java
@@ -12,4 +12,11 @@ public interface TokenMapper {
* @return
*/
int insert(Token token);
+
+ /**
+ * 查询
+ * @param token
+ * @return Token
+ */
+ Token selectToken(String token);
}
diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java
index af4e7b7..f4c178e 100644
--- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java
+++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/TokenRepositoryImpl.java
@@ -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);}
}
diff --git a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml
index 0ab10d0..6a3061f 100644
--- a/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml
+++ b/infrastructure/repository/src/main/resources/sqlmapper/TokenMapper.xml
@@ -10,6 +10,10 @@
+
+ select id, user_id, token, is_long_term, created_at, expire_at from tokens
+
+
insert into tokens(
user_id,
@@ -26,4 +30,10 @@
#{expireAt}
)
+
+
+
\ No newline at end of file
diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java
index 2a7dd00..bcb0066 100644
--- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java
+++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/user/UserFacadeImpl.java
@@ -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 login(UserLoginRequest loginRequest) {
+ public ElectromagneticResult 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 createUser(UserRequest userRequest){
+ public ElectromagneticResult 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));
}
/**