wzy
2020-05-20 8118b1f532510dd1c1dfb00f62ad851c9dc9d440
modify regist and login interface
8 files modified
43 ■■■■■ changed files
src/main/java/com/xcong/excoin/common/LoginUserUtils.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/system/controller/LoginController.java 7 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/system/dto/RegisterDto.java 3 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/configurations/security/WebSecurityConfig.java 1 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/entity/MemberWalletContractEntity.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/member/MemberDao.xml 2 ●●● patch | view | raw | blame | history
src/test/java/com/xcong/excoin/RSATest.java 7 ●●●●● patch | view | raw | blame | history
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);
    }
}