package com.cs.common; import com.cs.JWTApplication; import com.cs.domain.Payload; import com.cs.domain.UserInfo; import com.cs.utils.JwtUtils; import com.cs.utils.RandomStr; import com.cs.utils.RsaRedisUtils; import com.cs.utils.RsaUtils; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.security.PrivateKey; import java.security.PublicKey; import java.util.Random; @RunWith(SpringRunner.class) @SpringBootTest(classes = JWTApplication.class) public class AuthTest { private String privateKey_S = "privateKey"; private String publicKey_S = "publicKey"; @Test public void testRSAByRedis() throws Exception { Random random = new Random(); int i = random.nextInt(60); String randomString = RandomStr.getRandomString(i); randomString = "cs"; System.err.println(randomString); // 生成密钥对 RsaRedisUtils.generateKey(publicKey_S, privateKey_S, randomString, 2048); // 获取私钥 PrivateKey privateKey = RsaRedisUtils.getPrivateKey(privateKey_S); System.out.println("privateKey = " + privateKey.toString()); PublicKey publicKey = RsaRedisUtils.getPublicKey(publicKey_S); System.out.println("publicKey = " + publicKey.toString()); } @Test public void testJWTByRedis() throws Exception { // 获取私钥 PrivateKey privateKey = RsaRedisUtils.getPrivateKey(privateKey_S); // 生成token String token = JwtUtils.generateTokenExpireInMinutes(new UserInfo(1L, "Jack", "guest"), privateKey, 5); System.out.println("token = " + token); System.err.println("privateKey:" + privateKey.toString()); // 获取公钥 PublicKey publicKey = RsaRedisUtils.getPublicKey(publicKey_S); // 解析token Payload info = JwtUtils.getInfoFromToken(token, publicKey, UserInfo.class); System.out.println("info.getExpiration() = " + info.getExpiration()); System.out.println("info.getUserInfo() = " + info.getUserInfo()); System.out.println("info.getId() = " + info.getId()); } }