zhuyifan

fix

...@@ -3,6 +3,8 @@ package com.infoloop.tianting.service; ...@@ -3,6 +3,8 @@ package com.infoloop.tianting.service;
3 import cn.dev33.satoken.stp.SaTokenInfo; 3 import cn.dev33.satoken.stp.SaTokenInfo;
4 import com.infoloop.tianting.model.dto.PermissionDTO.LoginDto; 4 import com.infoloop.tianting.model.dto.PermissionDTO.LoginDto;
5 5
6 +import java.security.NoSuchAlgorithmException;
7 +
6 public interface LoginService { 8 public interface LoginService {
7 - SaTokenInfo login(LoginDto loginDto); 9 + SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException;
8 } 10 }
......
...@@ -3,7 +3,6 @@ package com.infoloop.tianting.service.impl; ...@@ -3,7 +3,6 @@ package com.infoloop.tianting.service.impl;
3 import cn.dev33.satoken.stp.SaLoginModel; 3 import cn.dev33.satoken.stp.SaLoginModel;
4 import cn.dev33.satoken.stp.SaTokenInfo; 4 import cn.dev33.satoken.stp.SaTokenInfo;
5 import cn.dev33.satoken.stp.StpUtil; 5 import cn.dev33.satoken.stp.StpUtil;
6 -import cn.hutool.crypto.SecureUtil;
7 import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum; 6 import com.infoloop.tianting.clientcustomerservice.ClientCustomerHospitalRecordHospitalStatusEnum;
8 import com.infoloop.tianting.constant.CommonConstants; 7 import com.infoloop.tianting.constant.CommonConstants;
9 import com.infoloop.tianting.exception.ClientEndExceptions; 8 import com.infoloop.tianting.exception.ClientEndExceptions;
...@@ -19,6 +18,9 @@ import lombok.extern.slf4j.Slf4j; ...@@ -19,6 +18,9 @@ import lombok.extern.slf4j.Slf4j;
19 import org.springframework.beans.factory.annotation.Autowired; 18 import org.springframework.beans.factory.annotation.Autowired;
20 import org.springframework.stereotype.Service; 19 import org.springframework.stereotype.Service;
21 20
21 +import java.security.MessageDigest;
22 +import java.security.NoSuchAlgorithmException;
23 +
22 @Slf4j 24 @Slf4j
23 @Service 25 @Service
24 @RequiredArgsConstructor(onConstructor = @__(@Autowired)) 26 @RequiredArgsConstructor(onConstructor = @__(@Autowired))
...@@ -30,7 +32,7 @@ public class LoginServiceImpl implements LoginService { ...@@ -30,7 +32,7 @@ public class LoginServiceImpl implements LoginService {
30 private final WOperatorServiceRpcClient wOperatorServiceRpcClient; 32 private final WOperatorServiceRpcClient wOperatorServiceRpcClient;
31 33
32 @Override 34 @Override
33 - public SaTokenInfo login(LoginDto loginDto) { 35 + public SaTokenInfo login(LoginDto loginDto) throws NoSuchAlgorithmException {
34 if (loginDto.isShouldLoginWithOpenCode()) { 36 if (loginDto.isShouldLoginWithOpenCode()) {
35 final var wxUserOpenIdDto = wxMiniProgramHttpClient.getUserOpenIdByCode(loginDto.getOpenCode()); 37 final var wxUserOpenIdDto = wxMiniProgramHttpClient.getUserOpenIdByCode(loginDto.getOpenCode());
36 StpUtil.login(wxUserOpenIdDto.getOpenid(), SaLoginModel.create() 38 StpUtil.login(wxUserOpenIdDto.getOpenid(), SaLoginModel.create()
...@@ -69,7 +71,7 @@ public class LoginServiceImpl implements LoginService { ...@@ -69,7 +71,7 @@ public class LoginServiceImpl implements LoginService {
69 if (operator.getId() == 0) { 71 if (operator.getId() == 0) {
70 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name()); 72 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
71 } 73 }
72 - if (!operator.getPassword().equals(SecureUtil.sha1(loginDto.getPassword()))) { 74 + if (!operator.getPassword().equals(sha1Hash(loginDto.getPassword()))) {
73 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name()); 75 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name());
74 } 76 }
75 StpUtil.login(operator.getId(), SaLoginModel.create() 77 StpUtil.login(operator.getId(), SaLoginModel.create()
...@@ -82,7 +84,7 @@ public class LoginServiceImpl implements LoginService { ...@@ -82,7 +84,7 @@ public class LoginServiceImpl implements LoginService {
82 if (operator.getId() == 0) { 84 if (operator.getId() == 0) {
83 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name()); 85 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.UNAUTHORIZED.name());
84 } 86 }
85 - if (!operator.getPassword().equals(SecureUtil.sha1(loginDto.getPassword()))) { 87 + if (!operator.getPassword().equals(sha1Hash(loginDto.getPassword()))) {
86 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name()); 88 throw ClientEndExceptions.AuthenticationFailure.build(ErrorCodeEnum.VALIDATE_FAILED.name());
87 } 89 }
88 StpUtil.login(operator.getId(), SaLoginModel.create() 90 StpUtil.login(operator.getId(), SaLoginModel.create()
...@@ -92,5 +94,20 @@ public class LoginServiceImpl implements LoginService { ...@@ -92,5 +94,20 @@ public class LoginServiceImpl implements LoginService {
92 return StpUtil.getTokenInfo(); 94 return StpUtil.getTokenInfo();
93 } 95 }
94 } 96 }
97 +
98 + public static String sha1Hash(String input) throws NoSuchAlgorithmException {
99 + MessageDigest md = MessageDigest.getInstance("SHA-1");
100 + md.update(input.getBytes());
101 + byte[] digest = md.digest();
102 + return bytesToHex(digest);
103 + }
104 +
105 + private static String bytesToHex(byte[] bytes) {
106 + StringBuilder sb = new StringBuilder();
107 + for (byte b : bytes) {
108 + sb.append(String.format("%02x", b));
109 + }
110 + return sb.toString();
111 + }
95 } 112 }
96 113
......