Showing
2 changed files
with
24 additions
and
5 deletions
| ... | @@ -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 | ... | ... |
-
Please register or login to post a comment