KKSU
2024-07-18 6cc8184be906d395e1c9dec2e3bf4d32ed14458a
src/main/java/cc/mrbird/febs/common/utils/LoginUserUtil.java
@@ -1,19 +1,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());
    }
}