@Override public String createNewToken(UUID jobId) { try { return JWT.create() .withIssuer(JWTTokenManager.ISSUER) .withClaim(JWTTokenManager.ID_CLAIM_KEY, jobId.toString()) .withExpiresAt(new Date(System.currentTimeMillis() + EXPIRATION_TIME_MILLIS)) .sign(algorithm); } catch (JWTCreationException e) { throw new RuntimeException("Error creating token for: " + jobId); } } }
@Override public String newId() { final Instant now = Instant.now(); final int un2 = ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE) & 0x7fffffff; return JWT.create() .withIssuer(issuer) .withIssuedAt(Date.from(now)) .withExpiresAt(Date.from(now.plus(validSeconds, ChronoUnit.SECONDS))) // To make multiple tokens issued in the same second unique, we add uniquifiers. .withClaim(CLAIM_NAME_UNIQUIFIER1, un1) .withClaim(CLAIM_NAME_UNIQUIFIER2, un2) .sign(algorithm); }
@Test public void shouldAddExpiresAt() throws Exception { String signed = JWTCreator.init() .withExpiresAt(new Date(1477592000)) .sign(Algorithm.HMAC256("secret")); assertThat(signed, is(notNullValue())); assertThat(TokenUtils.splitToken(signed)[1], is("eyJleHAiOjE0Nzc1OTJ9")); }
public String genToken(Map<String, String> claims) { try { Algorithm algorithmHS = buildHMAC256(); JWTCreator.Builder jwtBuilder = JWT.create(); jwtBuilder.withSubject("waf-token") .withIssuer("yangguo.info"); //Set token expire time if (Optional.fromNullable(jwtExpireAfter).isPresent()) { DateTime nowTime = DateTime.now(); DateTime newTime = nowTime.plusMinutes(jwtExpireAfter); jwtBuilder.withExpiresAt(newTime.toDate()); } claims.entrySet().stream().forEach(claim -> { jwtBuilder.withClaim(claim.getKey(), String.valueOf(claim.getValue())); }); return jwtBuilder.sign(algorithmHS); } catch (Exception e) { logger.error(ExceptionUtils.getFullStackTrace(e)); throw new RuntimeException(e); } }
/** * 生成签名,5min后过期 * @param username 用户名 * @return 加密的token */ public static String sign(String username) { try { Date date = new Date(System.currentTimeMillis()+EXPIRE_TIME); Algorithm algorithm = Algorithm.HMAC256(SECRET); // 附带username信息 return JWT.create() .withClaim("username", username) .withClaim("roles","SELECT,DROP,DELETE") .withExpiresAt(date) .sign(algorithm); } catch (UnsupportedEncodingException e) { return null; } }
public static String createToken(String username, String userId) { Map<String, Object> header = new HashMap<>(2); header.put("alg", "HS256"); header.put("typ", "JWT"); Calendar calendar = Calendar.getInstance(); Date now = calendar.getTime(); calendar.add(Calendar.DAY_OF_MONTH, 3); Date expireDate = calendar.getTime(); return JWT.create().withHeader(header) .withClaim("iss", "hera") .withClaim("aud", "2dfire") .withClaim("username", username) .withClaim("userId", userId) .withIssuedAt(now) .withExpiresAt(expireDate) .sign(algorithm); }
public static String createToken(KeyPair keyPair, String issuer, Date issuedAt, Date expiresAt, String level) throws NoSuchAlgorithmException, NoSuchProviderException, DynamicLogLevelException { Algorithm rsa256 = Algorithm.RSA256((RSAPublicKey) keyPair.getPublic(), (RSAPrivateKey) keyPair.getPrivate()); if (ALLOWED_DYNAMIC_LOGLEVELS.contains(level)) { return JWT.create().withIssuer(issuer).// withIssuedAt(issuedAt). // withExpiresAt(expiresAt).// withClaim("level", level).sign(rsa256); } else { throw new DynamicLogLevelException("Dynamic Log-Level [" + level + "] provided in header is not valid. Allowed Values are " + ALLOWED_DYNAMIC_LOGLEVELS.toString()); } }
@Override public DecodedJWT getToken() throws IOException { String serviceLoginToken = JWT .create() .withClaim("uid", uid) // SUPPRESS CHECKSTYLE MultipleStringLiterals .withExpiresAt(Date.from(Instant.now().plusSeconds(120))) .sign(signatureAlgorithm); JSONObject data = new JSONObject(); data.put("uid", uid); data.put("token", serviceLoginToken); // SUPPRESS CHECKSTYLE MultipleStringLiterals Request request = Request.Post(DcosConstants.IAM_AUTH_URL) .bodyString(data.toString(), ContentType.APPLICATION_JSON); String responseData = httpExecutor.execute(request).returnContent().asString(); return JWT.decode(new JSONObject(responseData).getString("token")); } }
/** * 生成签名 * @param claim 可以反解析的键值对信息 * @param secretKey 安全码/可以是用户密码也可以是内部二次Token * @param expireMinutes 授权码有效期,单位毫秒 * @return 签名 * @throws Exception 异常 */ public static String jwtToken(ImmutableMap<String, String> claim, String secretKey, int expireMinutes) throws Exception { JWTCreator.Builder builder = JWT.create().withExpiresAt(DateTime.now().plusMinutes(expireMinutes).toDate()); Optional.ofNullable(claim).orElse(ImmutableMap.of()).forEach((k, v) -> { builder.withClaim(k, v); }); return builder.sign(Algorithm.HMAC256(secretKey)); }
/** * 生成签名,5min后过期 * * @param username 用户名 * @param secret 用户的密码 * @return 加密的token */ public static String sign(String username, String secret) { Date date = new Date(System.currentTimeMillis() + EXPIRE_TIME); Algorithm algorithm = Algorithm.HMAC256(secret); // 附带username信息 return JWT.create() .withClaim("username", username) .withExpiresAt(date) .sign(algorithm); }
/** * 登录成功 * * @param userDetails 用户信息 * @return token */ public String loginSuccess(UserDetails userDetails) { Algorithm algorithm = Algorithm.HMAC256(salt); Date date = new Date(System.currentTimeMillis() + 3600 * 1000); return JWT.create() .withSubject(userDetails.getUsername()) .withExpiresAt(date) .withIssuedAt(new Date()) .sign(algorithm); }
public String getToken(Principal p, UnaryOperator<JWTCreator.Builder> filler) { JWTCreator.Builder builder = JWT.create() .withIssuer(issuer) .withSubject(p.getName()) .withIssuedAt(new Date()); if (validity != null) { Instant end = ZonedDateTime.now(ZoneOffset.UTC).plus(validity).toInstant(); builder.withExpiresAt(Date.from(end)); } if (filler != null) { builder = filler.apply(builder); } return builder.sign(alg); }
public String createJWT(Map<String, String> map) { String sign = null; try { Date date = DateUtils.addDateDays(new Date(), 1); JWTCreator.Builder builder = JWT.create(); map.forEach((k, v) -> { builder.withClaim(k, v); }); sign = builder.withIssuer(ISSUER).withExpiresAt(date).sign(Algorithm.HMAC256(SECRET)); } catch (UnsupportedEncodingException e) { logger.error("create jwt error:{}", e); } return sign; }
private String createToken() throws NoSuchAlgorithmException { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); KeyPair keyPair = keyPairGenerator.generateKeyPair(); Algorithm algorithm = Algorithm.RSA256(( RSAPublicKey) keyPair.getPublic(), (RSAPrivateKey) keyPair.getPrivate()); return JWT.create() .withExpiresAt(Date.from(Instant.now().plusSeconds(120))) .withClaim("uid", "test") .sign(algorithm); }
@Override public JWTBuilderImpl withTTL(int ttlSeconds) { if (ttlSeconds <= 0) { ttlSeconds = getDefaultTTL(); } builder.withExpiresAt(Date.from(Instant.now().plusSeconds(ttlSeconds))); return this; }
@Override public String newId() { final Instant now = Instant.now(); final int un2 = ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE) & 0x7fffffff; return JWT.create() .withIssuer(issuer) .withIssuedAt(Date.from(now)) .withExpiresAt(Date.from(now.plus(validSeconds, ChronoUnit.SECONDS))) // To make multiple tokens issued in the same second unique, we add uniquifiers. .withClaim(CLAIM_NAME_UNIQUIFIER1, un1) .withClaim(CLAIM_NAME_UNIQUIFIER2, un2) .sign(algorithm); }
@GetMapping("/token/generate/{uid}") String getToken(@PathVariable String uid) { String token = JWT.create() .withSubject(uid) .withExpiresAt(getExdate(3)) .sign(algorithm); return token; }
String generateJWT(final SmockinUser user) { return JWT.create() .withIssuer(jwtIssuer) .withClaim(jwtRoleKey, user.getRole().name()) .withClaim(jwtFullNameKey, user.getFullName()) .withClaim(jwtUserNameKey, user.getUsername()) .withSubject(jwtSubjectKey) .withIssuedAt(GeneralUtils.getCurrentDate()) .withExpiresAt(GeneralUtils.toDate(GeneralUtils.getCurrentDateTime().plusDays(99))) .sign(jwtAlgorithm); }
public static Optional<String> getToken(MCRUserInformation userInformation, String remoteIp) { ZonedDateTime currentTime = ZonedDateTime.now(ZoneOffset.UTC); return Optional.ofNullable(userInformation) .map(MCRJWTUtil::getJWTBuilder) .map(b -> { return b.withAudience(AUDIENCE) .withClaim(MCRJWTUtil.JWT_CLAIM_IP, remoteIp) .withExpiresAt(Date.from(currentTime.plusMinutes(EXPIRATION_TIME_MINUTES).toInstant())) .withNotBefore(Date.from(currentTime.minusMinutes(EXPIRATION_TIME_MINUTES).toInstant())) .sign(MCRJWTUtil.getJWTAlgorithm()); }); }
/** * 生成签名,5min后过期 * @param username 用户名 * @param secret 用户的密码 * @return 加密的token */ public static String sign(String username, String secret) { try { Date date = new Date(System.currentTimeMillis()+EXPIRE_TIME); Algorithm algorithm = Algorithm.HMAC256(secret); // 附带username信息 return JWT.create() .withClaim("username", username) .withExpiresAt(date) .sign(algorithm); } catch (UnsupportedEncodingException e) { return null; } } }