fix
Helius
2022-08-08 69e44659412c7868592331d3b1570b87147b4025
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package cc.mrbird.febs.common.utils;
 
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import lombok.extern.slf4j.Slf4j;
import org.bouncycastle.jcajce.provider.digest.Keccak;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import org.web3j.crypto.Hash;
import org.web3j.utils.Numeric;
 
import javax.servlet.http.HttpServletRequest;
import java.nio.charset.StandardCharsets;
 
/**
 * @author 
 * @date 2022-03-18
 **/
@Slf4j
public class LoginUserUtil {
 
    public static DappMemberEntity getAppUser() {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
        return (DappMemberEntity) request.getSession().getAttribute("member");
    }
 
    // address:0x971c09aa9735eb98459b17ec8b48932d24cbb931
    // nonce:0x1d5f7444107bc02e980deda39d0fce21b06c9da4233a19cb11124cb5bfefc9ec
    // sign:0x8f92cee24906122e26c3cc6cbd72f851cfe2c9574aa03bf3371e5d506fbec68b2ad22bbbc19b00ed21d26ab5a6871507831e2c902d8ed8c33301addc2b57a7731b
    public static String getLoginKey(String address, String nonce, String sign) {
        StringBuilder sb = new StringBuilder();
        StringBuilder append = sb.append(address).append(":").append(nonce).append(":").append(sign);
 
        return sha3(append.toString());
    }
 
    public static String sha3(String str) {
        Keccak.DigestKeccak kecc = new Keccak.Digest256();
        kecc.update(str.getBytes(StandardCharsets.UTF_8));
        return Numeric.toHexString(kecc.digest());
    }
}