package pwc.taxtech.atms.security; import java.util.Date; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSON; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.JwtParser; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; public class JwtUtilTest { private static final Logger logger = LoggerFactory.getLogger(JwtUtilTest.class); private static final String TEST_SECRET_KEY = "test_secret_key"; private JwtUtil jwtUtil = new JwtUtil(); { jwtUtil.setJwtBase64Secret(TEST_SECRET_KEY); } @Test public void generateTokenThenValidate() { String token = jwtUtil.generateToken("admin", "Admin", "UUID_OF_ADMIN_USER"); logger.debug("print token:{}", token); JwtUser jwtUser = jwtUtil.parseToken(token); logger.debug("print jwtUser:{}", JSON.toJSONString(jwtUser, true)); Assert.assertNotNull(jwtUser); Assert.assertEquals("Admin", jwtUser.getDatabaseUsername()); Assert.assertEquals("admin", jwtUser.getUsername()); Assert.assertEquals("UUID_OF_ADMIN_USER", jwtUser.getUserid()); } @Test(expected = ExpiredJwtException.class) public void getExpiredToken() { String token = Jwts.builder().setExpiration(new Date(System.currentTimeMillis() - 1000)) .signWith(SignatureAlgorithm.HS512, TEST_SECRET_KEY).compact(); JwtParser parser = Jwts.parser().setSigningKey(TEST_SECRET_KEY); parser.parseClaimsJws(token); } }