src/main/java/com/xcong/excoin/common/LoginUserUtils.java
@@ -1,6 +1,7 @@ package com.xcong.excoin.common; import com.xcong.excoin.modules.member.entity.MemberEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.context.SecurityContextHolder; /** @@ -9,9 +10,16 @@ * @author wzy * @date 2020-05-14 **/ @Slf4j public class LoginUserUtils { private static final String ANON = "anonymousUser"; public static MemberEntity getAppLoginUser() { return (MemberEntity) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (SecurityContextHolder.getContext().getAuthentication().getPrincipal().equals(ANON)) { return null; } else { return (MemberEntity) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); } } } src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
@@ -1,5 +1,6 @@ package com.xcong.excoin.common.system.controller; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.IdUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; @@ -60,12 +61,8 @@ @ApiOperation(value = "登陆接口", notes = "登陆接口") @PostMapping("/login") public Result login(@RequestBody @Validated LoginDto loginDto) { // 使用md5加密前端传来的密码 Sign sign = SecureUtil.sign(SignAlgorithm.MD5withRSA); byte[] pwdByte = sign.sign(loginDto.getPassword().getBytes()); // 将账号密码交给spring security验证,并调用userServiceDetails UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(loginDto.getUsername(), loginDto.getPassword()); UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(loginDto.getUsername(), SecureUtil.md5(loginDto.getPassword())); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authToken); // 获取当前验证过后的用户 src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java
@@ -6,6 +6,7 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * 注册用户接收类 @@ -26,7 +27,7 @@ private String password; @ApiModelProperty(value = "账号类型", notes = "1-手机 2-邮箱", example = "1") @NotBlank(message = "账号类型不能为空") @NotNull(message = "账号类型不能为空") private Integer type; @ApiModelProperty(value = "验证码", example = "123456") src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java
@@ -39,6 +39,7 @@ .authorizeRequests() .antMatchers(HttpMethod.OPTIONS, "/**").permitAll() .antMatchers("/login").permitAll() .antMatchers("/register").permitAll() .antMatchers("/swagger**/**").permitAll() .antMatchers("/webjars/**").permitAll() .antMatchers("/v2/**").permitAll() src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletContractEntity.java
@@ -23,10 +23,6 @@ private BigDecimal borrowedFund; private BigDecimal earlyBalance; private int blockNumber; private String walletCode; private String walletAddress; src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -1,5 +1,6 @@ package com.xcong.excoin.modules.member.service.impl; import cn.hutool.core.codec.Base64; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.Sign; @@ -14,6 +15,7 @@ import com.xcong.excoin.modules.member.entity.*; import com.xcong.excoin.modules.member.service.MemberService; import com.xcong.excoin.utils.ShareCodeUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +25,7 @@ * @author wzy * @date 2020-05-18 **/ @Slf4j @Service public class MemberServiceImpl extends ServiceImpl<MemberDao, MemberEntity> implements MemberService { @@ -46,14 +49,12 @@ public Result register(RegisterDto registerDto) { // 查询是否存在该账号用户 MemberEntity member = memberDao.selectMemberInfoByAccount(registerDto.getAccount()); if (member == null) { if (member != null) { return Result.fail("账号已存在"); } member = new MemberEntity(); Sign sign = SecureUtil.sign(SignAlgorithm.MD5withRSA); byte[] signByte = sign.sign(registerDto.getPassword().getBytes()); member.setPassword(new String(signByte)); member.setPassword(SecureUtil.md5(registerDto.getPassword())); // 判断账号类型 if (MemberEntity.ACCOUNT_TYPE_PHONE == registerDto.getType()) { src/main/resources/mapper/member/MemberDao.xml
@@ -7,6 +7,6 @@ </select> <select id="selectMemberInfoByRefererId" resultType="com.xcong.excoin.modules.member.entity.MemberEntity"> select * from member where referer_id=#{refererId} select * from member where invite_id=#{refererId} </select> </mapper> src/test/java/com/xcong/excoin/RSATest.java
@@ -7,6 +7,8 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.asymmetric.KeyType; import cn.hutool.crypto.asymmetric.RSA; import cn.hutool.crypto.asymmetric.Sign; import cn.hutool.crypto.asymmetric.SignAlgorithm; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -94,4 +96,9 @@ byte[] decrypt = rsa.decrypt(aByte, KeyType.PrivateKey); } @Test public void md5Test() { String md5str = SecureUtil.md5("123456"); log.info("{}", md5str); } }