新增修改代码逻辑
This commit is contained in:
parent
089da5da2a
commit
58c75ce332
@ -14,6 +14,7 @@ public interface UserAppService {
|
|||||||
// 用户注册
|
// 用户注册
|
||||||
boolean registerUser(String username, String password, List<Long> roleIds);
|
boolean registerUser(String username, String password, List<Long> roleIds);
|
||||||
boolean verifyPassword(String username, String plainText);
|
boolean verifyPassword(String username, String plainText);
|
||||||
|
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||||
boolean deleteUser(Long id);
|
boolean deleteUser(Long id);
|
||||||
boolean updateUser(Long id, UserDTO userDTO);
|
boolean updateUser(Long id, UserDTO userDTO);
|
||||||
|
|
||||||
|
|||||||
@ -45,6 +45,11 @@ public class UserAppServiceImpl implements UserAppService {
|
|||||||
return userDomainService.verifyPassword(username, plainText);
|
return userDomainService.verifyPassword(username, plainText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||||
|
return userDomainService.changePassword(userId, oldPassword, newPassword);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean deleteUser(Long userId) {
|
public boolean deleteUser(Long userId) {
|
||||||
return userDomainService.deleteUser(userId);
|
return userDomainService.deleteUser(userId);
|
||||||
|
|||||||
@ -7,8 +7,11 @@ import java.util.Optional;
|
|||||||
|
|
||||||
public interface UserAuthDomainSupport {
|
public interface UserAuthDomainSupport {
|
||||||
boolean verifyPassword(String username, String plainText);
|
boolean verifyPassword(String username, String plainText);
|
||||||
|
|
||||||
|
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||||
UserTokenDO createToken(Long userId, long expireMs);
|
UserTokenDO createToken(Long userId, long expireMs);
|
||||||
boolean isValidToken(String token);
|
boolean isValidToken(String token);
|
||||||
void removeToken(String token);
|
void removeToken(String token);
|
||||||
Optional<UserTokenDO> findToken(String token);
|
Optional<UserTokenDO> findToken(String token);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,6 +18,7 @@ public interface UserDomainService {
|
|||||||
// 认证/Token
|
// 认证/Token
|
||||||
Optional<UserTokenDO> findToken(String token);
|
Optional<UserTokenDO> findToken(String token);
|
||||||
boolean verifyPassword(String username, String plainText);
|
boolean verifyPassword(String username, String plainText);
|
||||||
|
boolean changePassword(Long userId, String oldPassword, String newPassword);
|
||||||
UserTokenDO createToken(Long userId, long expireMs);
|
UserTokenDO createToken(Long userId, long expireMs);
|
||||||
boolean isValidToken(String token);
|
boolean isValidToken(String token);
|
||||||
void removeToken(String token);
|
void removeToken(String token);
|
||||||
@ -48,4 +49,5 @@ public interface UserDomainService {
|
|||||||
List<UserFileDO> findUserFiles(Long userId);
|
List<UserFileDO> findUserFiles(Long userId);
|
||||||
boolean addUserFileAuth(Long userId, Long fileId);
|
boolean addUserFileAuth(Long userId, Long fileId);
|
||||||
boolean removeUserFileAuth(Long userId, Long fileId);
|
boolean removeUserFileAuth(Long userId, Long fileId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.knowledge.base.domain.user.service.impl;
|
package com.knowledge.base.domain.user.service.impl;
|
||||||
|
|
||||||
|
import com.knowledge.base.domain.common.exception.DomainException;
|
||||||
import com.knowledge.base.domain.user.model.UserTokenDO;
|
import com.knowledge.base.domain.user.model.UserTokenDO;
|
||||||
import com.knowledge.base.domain.user.repository.converter.UserTokenDomainConverter;
|
import com.knowledge.base.domain.user.repository.converter.UserTokenDomainConverter;
|
||||||
import com.knowledge.base.domain.user.repository.iface.UserRepository;
|
import com.knowledge.base.domain.user.repository.iface.UserRepository;
|
||||||
@ -30,6 +31,21 @@ public class UserAuthDomainSupportImpl implements UserAuthDomainSupport {
|
|||||||
return inputHash.equals(user.getPassword());
|
return inputHash.equals(user.getPassword());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||||
|
Optional<User> userOpt = userRepository.findById(userId);
|
||||||
|
if(userOpt.isEmpty()) return false;
|
||||||
|
User user = userOpt.get();
|
||||||
|
String oldInputHash = SM3Util.digest(oldPassword);
|
||||||
|
String newInputHash = SM3Util.digest(newPassword);
|
||||||
|
if(!oldInputHash.equals(user.getPassword())) {
|
||||||
|
throw new DomainException("旧密码错误!");
|
||||||
|
}
|
||||||
|
user.setPassword(newInputHash);
|
||||||
|
userRepository.save(user);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserTokenDO createToken(Long userId, long expireMs) {
|
public UserTokenDO createToken(Long userId, long expireMs) {
|
||||||
String token = UUID.randomUUID().toString().replace("-", "");
|
String token = UUID.randomUUID().toString().replace("-", "");
|
||||||
|
|||||||
@ -64,6 +64,12 @@ public class UserDomainServiceImpl implements UserDomainService {
|
|||||||
public boolean verifyPassword(String username, String plainText) {
|
public boolean verifyPassword(String username, String plainText) {
|
||||||
return userAuthDomainSupport.verifyPassword(username, plainText);
|
return userAuthDomainSupport.verifyPassword(username, plainText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean changePassword(Long userId, String oldPassword, String newPassword) {
|
||||||
|
return userAuthDomainSupport.changePassword(userId, oldPassword, newPassword);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public UserTokenDO createToken(Long userId, long expireMs) {
|
public UserTokenDO createToken(Long userId, long expireMs) {
|
||||||
return userAuthDomainSupport.createToken(userId, expireMs);
|
return userAuthDomainSupport.createToken(userId, expireMs);
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package com.knowledge.base.infrastructure.north.controller;
|
package com.knowledge.base.infrastructure.north.controller;
|
||||||
|
|
||||||
|
import cn.hutool.core.map.MapUtil;
|
||||||
import com.knowledge.base.application.service.UserAppService;
|
import com.knowledge.base.application.service.UserAppService;
|
||||||
import com.knowledge.base.infrastructure.config.ConstantConfig;
|
import com.knowledge.base.infrastructure.config.ConstantConfig;
|
||||||
import com.knowledge.base.infrastructure.config.DynamicConfig;
|
import com.knowledge.base.infrastructure.config.DynamicConfig;
|
||||||
@ -63,6 +64,17 @@ public class UserWriteController {
|
|||||||
return ResponseEntity.ok(userAppService.updateUser(userId, userDTO));
|
return ResponseEntity.ok(userAppService.updateUser(userId, userDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/change-pwd")
|
||||||
|
public ResponseEntity<?> changeUserPassword(@RequestBody Map<String, String> body) {
|
||||||
|
if(MapUtil.isEmpty(body)) {
|
||||||
|
return ResponseEntity.badRequest().body(Map.of("msg", "参数错误,body为空"));
|
||||||
|
}
|
||||||
|
body.getOrDefault("userId", "");
|
||||||
|
body.getOrDefault("oldPassword", "");
|
||||||
|
body.getOrDefault("newPassword", "");
|
||||||
|
return ResponseEntity.ok(userAppService.changePassword(Long.parseLong(body.get("userId")), body.get("oldPassword"), body.get("newPassword")));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public ResponseEntity<?> login(@RequestBody Map<String, String> body, HttpServletResponse response) {
|
public ResponseEntity<?> login(@RequestBody Map<String, String> body, HttpServletResponse response) {
|
||||||
String username = body.getOrDefault("username", "").trim();
|
String username = body.getOrDefault("username", "").trim();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user