zhuyifan

fix

......@@ -3,6 +3,8 @@ package com.infoloop.tianting.service;
import cn.dev33.satoken.stp.SaTokenInfo;
import com.infoloop.tianting.model.dto.PermissionDTO.LoginDto;
import java.security.NoSuchAlgorithmException;
public interface LoginService {
SaTokenInfo login(LoginDto loginDto);
SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException;
}
......
......@@ -3,7 +3,6 @@ package com.infoloop.tianting.service.impl;
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.crypto.SecureUtil;
import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum;
import com.infoloop.tianting.constant.CommonConstants;
import com.infoloop.tianting.exception.ClientEndExceptions;
......@@ -19,6 +18,9 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@Slf4j
@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
......@@ -30,7 +32,7 @@ public class LoginServiceImpl implements LoginService {
private final WOperatorServiceRpcClient wOperatorServiceRpcClient;
@Override
public SaTokenInfo login(LoginDto loginDto) {
public SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException {
if (loginDto.isShouldLoginWithOpenCode()) {
final var wxUserOpenIdDto = wxMiniProgramHttpClient.getUserOpenIdByCode(loginDto.getOpenCode());
StpUtil.login(wxUserOpenIdDto.getOpenid(), SaLoginModel.create()
......@@ -69,7 +71,7 @@ public class LoginServiceImpl implements LoginService {
if (operator.getId() == 0) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
}
if (!operator.getPassword().equals(SecureUtil.sha1(loginDto.getPassword()))) {
if (!operator.getPassword().equals(sha1Hash(loginDto.getPassword()))) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name());
}
StpUtil.login(operator.getId(), SaLoginModel.create()
......@@ -82,7 +84,7 @@ public class LoginServiceImpl implements LoginService {
if (operator.getId() == 0) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
}
if (!operator.getPassword().equals(SecureUtil.sha1(loginDto.getPassword()))) {
if (!operator.getPassword().equals(sha1Hash(loginDto.getPassword()))) {
throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name());
}
StpUtil.login(operator.getId(), SaLoginModel.create()
......@@ -92,5 +94,20 @@ public class LoginServiceImpl implements LoginService {
return StpUtil.getTokenInfo();
}
}
public static String sha1Hash(String input) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
md.update(input.getBytes());
byte[] digest = md.digest();
return bytesToHex(digest);
}
private static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}
......