• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java HmacKey类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.jose4j.keys.HmacKey的典型用法代码示例。如果您正苦于以下问题:Java HmacKey类的具体用法?Java HmacKey怎么用?Java HmacKey使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HmacKey类属于org.jose4j.keys包,在下文中一共展示了HmacKey类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: generateToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public String generateToken(String subject) {
    final JwtClaims claims = new JwtClaims();
    claims.setSubject(subject);
    claims.setExpirationTimeMinutesInTheFuture(TOKEN_EXPIRATION_IN_MINUTES);

    final JsonWebSignature jws = new JsonWebSignature();
    jws.setPayload(claims.toJson());
    jws.setAlgorithmHeaderValue(HMAC_SHA256);
    jws.setKey(new HmacKey(tokenSecret));
    jws.setDoKeyValidation(false); //relaxes hmac key length restrictions

    try {
        return jws.getCompactSerialization();
    } catch (JoseException e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:jtanza,项目名称:rufus,代码行数:18,代码来源:TokenGenerator.java


示例2: testExampleFromJws

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@Test
public void testExampleFromJws() throws Exception
{
    String base64UrlKey = "AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow";
    String jwkJson ="{\"kty\":\"oct\",\n"+" \"k\":\""+base64UrlKey+"\"\n"+"}";
    JsonWebKey parsedKey = JsonWebKey.Factory.newJwk(jwkJson);
    assertEquals(OctetSequenceJsonWebKey.class, parsedKey.getClass());

    // these octets are from an earlier draft version (pre -12 I think) before JWKs were
    // used to encode the example keys. makes for a nice test though
    int[]  keyInts = {3, 35, 53, 75, 43, 15, 165, 188, 131, 126, 6, 101, 119, 123, 166,
                       143, 90, 179, 40, 230, 240, 84, 201, 40, 169, 15, 132, 178, 210, 80,
                       46, 191, 211, 251, 90, 146, 210, 6, 71, 239, 150, 138, 180, 195, 119,
                       98, 61, 34, 61, 46, 33, 114, 5, 46, 79, 8, 192, 205, 154, 245, 103,
                       208, 128, 163};
    byte[] keyBytes = ByteUtil.convertUnsignedToSignedTwosComp(keyInts);
    assertTrue(Arrays.equals(keyBytes, parsedKey.getKey().getEncoded()));

    JsonWebKey jwk = JsonWebKey.Factory.newJwk(new HmacKey(keyBytes));

    assertEquals(OctetSequenceJsonWebKey.KEY_TYPE, jwk.getKeyType());
    assertTrue(jwk.toJson().contains(base64UrlKey));
    assertTrue(jwk.toJson(INCLUDE_PRIVATE).contains(base64UrlKey));
    assertTrue(jwk.toJson(INCLUDE_SYMMETRIC).contains(base64UrlKey));
    assertFalse(jwk.toJson(PUBLIC_ONLY).contains(base64UrlKey));
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:27,代码来源:OctetSequenceJsonWebKeyTest.java


示例3: testBadKeys

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public void testBadKeys() throws JoseException
{
    RsaKeyUtil keyUtil = new RsaKeyUtil();

    KeyPair pair = keyUtil.generateKeyPair(1024);
    PublicKey pub = pair.getPublic();
    PrivateKey priv = pair.getPrivate();

    String cs256 = "eyJhbGciOiJSUzI1NiJ9.UEFZTE9BRCEhIQ.ln8y7TlxyR0jLemqdVybaWYmcS2nIseDEqKNJ1J-mM6TXRWjfFKsJr1kzBgh1nKHbVT6q_cgSoPLsb-9WGvpUMkt7N0NxqT2Vffcz_2HMwKvWDJZSjbuj6_XHSJye7gqySHiI2gOggSaYyIqnua-_kOmVGmgncrzwm2YRPgwLXAl9zB0GNul7lNGDvs193WbgOJ-rKGj515NBfqb7cV2VjQg7vsrnzIWT8FKcrQ5TYNXMrybzK5Q_1BNIxOVlrTsdh_pcUNiJvKKgC3_5PBHkhaJrJlxfwmi77YW8ezwXpFKdzbh8cKKzO0ZhamOOJns99HPPot4jr26JCERzBVF3g";
    String cs384 = "eyJhbGciOiJSUzM4NCJ9.UEFZTE9BRCEhIQ.E27QWhxodHU2vB-C3eKr4SQR8YF1jptmDrw7LRtQF1105bUk_WQqI8dCZcJDBsHdJ11O7JEmnRPJLiZd50eFnzcvZsAN5gh7q2eNnxCPuXjH2MoyRlIt6-8aSs-Es0l66Sz4slyOGjqRBRBqHcr7bu6gjo7mBh3XzS8ORnu5zn9Gj5XWr3emX5vwTq66UCfkyf6a2aa4knmYbGW0JiELVWU4rU2UhY5NjhxDW4omlOGiLpNhaX3LAgvA5nvNLi8HFlhVG8-GO4malIjj6rFdpwpZXm3G-sMbpWCcNyu3DUxRDKgjIWjX2SpGLqgXYZEMcAjmF2CA3tsxy43aUalMYQ";
    String cs512 = "eyJhbGciOiJSUzUxMiJ9.UEFZTE9BRCEhIQ.d7n7w-Ndg1-zRrAAQ3kgP_3vg70M5YcPS4eVrGTgD3UILRnMz5rBQh4k42yTVC53K-pmA6ZpphVtlC0lI7j2ViOM9ObC-dR_vOCN0_X7wo3D8qY5KJUDacMpDb_YkWtc5aUpaLilCe7770vNuOU6GK4hXkbTALJuug1V87QVn-xKDHAGMx_b2UgkzybbnribIAeMoqsgg5P9hCSu63xd8OxagbMzPC46ovr5IvTAhIJuONYeGQaOSdOMFFvuZzsZVmdwTQfC9zv-oC3vIF3BcSd1y_8b7CNlFw2NdIf0G3whEnrZgIYofKjZ3QkrIMRGzEF4H3u3KxVwdgpc1OhVSQ";
    for (String cs : new String[] {cs256, cs384, cs512})
    {
        JwsTestSupport.testBadKeyOnVerify(cs, pub);
        JwsTestSupport.testBadKeyOnVerify(cs, priv);
        JwsTestSupport.testBadKeyOnVerify(cs, ExampleRsaKeyFromJws.PRIVATE_KEY);
        JwsTestSupport.testBadKeyOnVerify(cs, null);
        JwsTestSupport.testBadKeyOnVerify(cs, new HmacKey(new byte[2048]));
        JwsTestSupport.testBadKeyOnVerify(cs, ExampleEcKeysFromJws.PUBLIC_256);
        JwsTestSupport.testBadKeyOnVerify(cs, ExampleEcKeysFromJws.PUBLIC_521);
        JwsTestSupport.testBadKeyOnVerify(cs, ExampleEcKeysFromJws.PRIVATE_256);
        JwsTestSupport.testBadKeyOnVerify(cs, ExampleEcKeysFromJws.PRIVATE_521);
    }
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:25,代码来源:RsaUsingShaTest.java


示例4: testVailidateKeySwitch

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public void testVailidateKeySwitch() throws JoseException
{
    JsonWebSignature jws = new JsonWebSignature();
    jws.setPayload("whatever");
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setKey(new HmacKey(new byte[] {1,2,5,-9,99,-99,0,40,21}));
    jws.setDoKeyValidation(false);
    String cs = jws.getCompactSerialization();
    assertNotNull(cs);

    try
    {
        jws.setDoKeyValidation(true);
        jws.getCompactSerialization();
        Assert.fail("Should have failed with some kind of invalid key message but got " + cs);
    }
    catch (InvalidKeyException e)
    {
        log.debug("Expected something like this: {}", e.toString());
    }
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:22,代码来源:HmacShaTest.java


示例5: tryPubKeyAsHmacTrickWithRsaBC2

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@Test
public void tryPubKeyAsHmacTrickWithRsaBC2() throws Exception
{
    JceProviderTestSupport support = new JceProviderTestSupport();
    support.setUseBouncyCastleRegardlessOfAlgs(true);
    support.runWithBouncyCastleProviderIfNeeded(new JceProviderTestSupport.RunnableTest()
    {
        @Override
        public void runTest() throws Exception
        {
            JsonWebSignature jws = new JsonWebSignature();
            jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
            jws.setPayload("http://watchout4snakes.com/wo4snakes/Random/RandomPhrase");
            jws.setKey(new HmacKey(ExampleRsaKeyFromJws.PUBLIC_KEY.getEncoded()));
            verify(ExampleRsaKeyFromJws.PUBLIC_KEY, jws.getCompactSerialization(), false);
        }
    });
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:19,代码来源:PublicKeyAsHmacKeyTest.java


示例6: tryPubKeyAsHmacTrickWithEcBC1

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@Test
public void tryPubKeyAsHmacTrickWithEcBC1() throws Exception
{
    JceProviderTestSupport support = new JceProviderTestSupport();
    support.setUseBouncyCastleRegardlessOfAlgs(true);
    support.runWithBouncyCastleProviderIfNeeded(new JceProviderTestSupport.RunnableTest()
    {
        @Override
        public void runTest() throws Exception
        {
            JsonWebSignature jws = new JsonWebSignature();
            jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
            jws.setPayload("scrupulous undercut");
            jws.setKey(new HmacKey(ExampleEcKeysFromJws.PUBLIC_256.getEncoded()));
            verify(ExampleEcKeysFromJws.PUBLIC_256, jws.getCompactSerialization(), false);

        }
    });
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:20,代码来源:PublicKeyAsHmacKeyTest.java


示例7: verifyToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public static User verifyToken(String data) {
	JwtConsumer jwtConsumer = new JwtConsumerBuilder()
			.setRequireExpirationTime() // the JWT must have an expiration time
			.setMaxFutureValidityInMinutes(60*24) // but the  expiration time can't be too crazy
			.setAllowedClockSkewInSeconds(30) // allow some leeway in validating time based claims to account for clock skew
			.setRequireSubject() // the JWT must have a subject claim
			.setExpectedIssuer("server") // whom the JWT needs to have been issued by
			.setExpectedAudience("client") // to whom the JWT is intended for
			.setVerificationKey(new HmacKey(secret.getBytes())) // verify the signature with the public key
			.build(); // create the JwtConsumer instance

	try
	{
		//  Validate the JWT and process it to the Claims
		JwtClaims jwtClaims = jwtConsumer.processToClaims(data);
		ObjectMapper mapper = new ObjectMapper();
		String json = (String) jwtClaims.getClaimValue("userData");
		byte[] bytes = json.getBytes("UTF-8");
		return mapper.readValue(bytes, User.class);
	}
	catch (Exception e) {
		return null;
	}

}
 
开发者ID:proyectos-ce,项目名称:moncha-server,代码行数:26,代码来源:TokenProvider.java


示例8: readToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public Optional<TokenDTO> readToken(String token) {

	try {
	    Key key = new HmacKey(secret.getBytes("UTF-8"));

	    JwtConsumer jwtConsumer = new JwtConsumerBuilder().setVerificationKey(key).build();

	    JwtClaims jwtClaims = jwtConsumer.processToClaims(token);
	    Map<String, Object> claimsMap = jwtClaims.getClaimsMap();

	    TokenDTO data = new TokenDTO();
	    data.setEmail((String) claimsMap.get(EMAIL_KEY));
	    data.setIssuer((String) claimsMap.get(ReservedClaimNames.ISSUER));
	    data.setSubject((String) claimsMap.get(ReservedClaimNames.SUBJECT));

	    return Optional.of(data);

	} catch (Exception e) {
	    return Optional.empty();
	}
    }
 
开发者ID:tomacla,项目名称:auth-token,代码行数:22,代码来源:ReadOnlyTokenManager.java


示例9: JWTVerifier

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public JWTVerifier(final String secret, final String issuer, final String audience)
{
	final JwtConsumerBuilder builder = new JwtConsumerBuilder();

	if (StringUtils.isNotBlank(audience))
		builder.setExpectedAudience(audience);

	if (StringUtils.isNotBlank(issuer))
		builder.setExpectedIssuer(issuer);

	builder.setVerificationKey(new HmacKey(secret.getBytes(StandardCharsets.UTF_8)));
	builder.setAllowedClockSkewInSeconds(60);
	builder.setRelaxVerificationKeyValidation(); // Allow HMAC keys < 256 bits

	consumer = builder.build();
}
 
开发者ID:petergeneric,项目名称:stdlib,代码行数:17,代码来源:JWTVerifier.java


示例10: toToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
private static String toToken(byte[] key, JwtClaims claims) {
    final JsonWebSignature jws = new JsonWebSignature();
    jws.setPayload(claims.toJson());
    jws.setAlgorithmHeaderValue(HMAC_SHA256);
    jws.setKey(new HmacKey(key));
    jws.setDoKeyValidation(false);

    try {
        return jws.getCompactSerialization();
    }
    catch (JoseException e) { throw Throwables.propagate(e); }
}
 
开发者ID:gchq,项目名称:stroom-stats,代码行数:13,代码来源:AuthorizationHelper.java


示例11: getJWTKey

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public Key getJWTKey() {
    try {
        String secret = properties.getProperty("jwt.key");
        if (null != secret && !secret.isEmpty()) {
            return new HmacKey(secret.getBytes("UTF-8"));
        }
    }
    catch (UnsupportedEncodingException e) {
        LOGGER.log(Level.SEVERE, "Cannot create JWT key", e);
    }
    return defaultKey;
}
 
开发者ID:polarsys,项目名称:eplmp,代码行数:13,代码来源:AuthConfig.java


示例12: testOnNewKey

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@Test
public void testOnNewKey() throws Exception
{
    JsonWebKey jwk = JsonWebKey.Factory.newJwk("{\"kty\":\"oct\",\"k\":\"9el2Km2s5LHVQqUCWIdvwMsclQqQc6CwObMnCpCC8jY\"}");

    JsonWebSignature jws = new JsonWebSignature();
    jws.setCompactSerialization("eyJhbGciOiJIUzI1NiJ9.c2lnaA.2yUt5UtfsRK1pnN0KTTv7gzHTxwDqDz2OkFSqlbQ40A");
    jws.setKey(new HmacKey(new byte[32]));
    Assert.assertThat(false, CoreMatchers.equalTo(jws.verifySignature()));

    // sigh, setting a new key should now clear the little internal signature result cache...
    jws.setKey(jwk.getKey());
    Assert.assertThat(true, CoreMatchers.equalTo(jws.verifySignature()));

    jws.setKey(new HmacKey(ByteUtil.randomBytes(32)));
    Assert.assertThat(false, CoreMatchers.equalTo(jws.verifySignature()));

    jws.setKey(null);
    try
    {
        jws.verifySignature();
    }
    catch (JoseException e)
    {
        // expected
    }
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:28,代码来源:ChangingKeyTest.java


示例13: tryPubKeyAsHmacTrick

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@Test
public void tryPubKeyAsHmacTrick() throws JoseException
{
    JsonWebSignature jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.RSA_USING_SHA256);
    jws.setPayload("tardier toothache");
    jws.setKey(ExampleRsaKeyFromJws.PRIVATE_KEY);
    verify(ExampleRsaKeyFromJws.PUBLIC_KEY, jws.getCompactSerialization(), true);

    jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setPayload("http://watchout4snakes.com/wo4snakes/Random/RandomPhrase");
    jws.setKey(new HmacKey(ExampleRsaKeyFromJws.PUBLIC_KEY.getEncoded()));
    verify(ExampleRsaKeyFromJws.PUBLIC_KEY, jws.getCompactSerialization(), false);

    jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setPayload("salty slop");
    jws.setKey(new SecretKeySpec(ExampleRsaKeyFromJws.PUBLIC_KEY.getEncoded(), "algorithm"));
    verify(ExampleRsaKeyFromJws.PUBLIC_KEY, jws.getCompactSerialization(), false);

    jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.ECDSA_USING_P256_CURVE_AND_SHA256);
    jws.setPayload("flammable overture");
    jws.setKey(ExampleEcKeysFromJws.PRIVATE_256);
    verify(ExampleEcKeysFromJws.PUBLIC_256, jws.getCompactSerialization(), true);

    jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setPayload("scrupulous undercut");
    jws.setKey(new HmacKey(ExampleEcKeysFromJws.PUBLIC_256.getEncoded()));
    verify(ExampleEcKeysFromJws.PUBLIC_256, jws.getCompactSerialization(), false);

    jws = new JsonWebSignature();
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setPayload("menial predestination");
    jws.setKey(new SecretKeySpec(ExampleEcKeysFromJws.PUBLIC_256.getEncoded(), ""));
    verify(ExampleEcKeysFromJws.PUBLIC_256, jws.getCompactSerialization(), false);
}
 
开发者ID:RbkGh,项目名称:Jose4j,代码行数:40,代码来源:PublicKeyAsHmacKeyTest.java


示例14: buildRequestToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private String buildRequestToken(JSONObject requestBody) {
	
	JSONObject requestHeader = buildRequestHeader();
	
	JSONObject payload = new JSONObject();
	payload.put("reqHeader", requestHeader);
	payload.put("reqBody", requestBody);
	
	JsonWebSignature jws = new JsonWebSignature();

	jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
	jws.setHeader("org_alias", this.orgAlias);
	jws.setHeader("token", this.token);
	
	jws.setPayload(payload.toJSONString());
	
    // Set the verification key
    HmacKey key = new HmacKey(Base64.decode(this.useBase64Key));
    jws.setKey(key);
	
	String jwsCompactSerialization = null;
	try {
		jwsCompactSerialization = jws.getCompactSerialization();
	} catch (JoseException e) {
		e.printStackTrace();
	}
	
	this.requestToken = jwsCompactSerialization;
			
	return jwsCompactSerialization;
}
 
开发者ID:pingidentity,项目名称:pingid-api-playground,代码行数:33,代码来源:Operation.java


示例15: parseResponse

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
private JSONObject parseResponse() {

		JSONParser parser = new JSONParser();
		JSONObject responsePayloadJSON = null;

		try {

			JsonWebSignature responseJWS = new JsonWebSignature();
			responseJWS.setCompactSerialization(this.responseToken);
			HmacKey key = new HmacKey(Base64.decode(this.useBase64Key));
			responseJWS.setKey(key);
			responsePayloadJSON = (JSONObject)parser.parse(responseJWS.getPayload());

			// workaround for PingID API 4.5 beta
			if (responsePayloadJSON.containsKey("responseBody")) {
				responsePayloadJSON = (JSONObject)responsePayloadJSON.get("responseBody");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

		if (responsePayloadJSON != null) {
			this.errorId = (long)responsePayloadJSON.get("errorId");
			this.errorMsg = (String)responsePayloadJSON.get("errorMsg");
			this.uniqueMsgId = (String)responsePayloadJSON.get("uniqueMsgId");
			this.clientData = (String)responsePayloadJSON.get("clientData");
		} else {
			this.errorId = 501;
			this.errorMsg = "Could not parse JWS";
			this.uniqueMsgId = "";
			this.clientData = "";
			this.wasSuccessful = false;
		}

		return responsePayloadJSON;
	}
 
开发者ID:pingidentity,项目名称:pingid-api-playground,代码行数:38,代码来源:Operation.java


示例16: createSecretKey

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
/**
 * Creates a HMAC key using the given hash algorithm.
 *
 * @param algorithm
 *            Name of the hash algorithm to be used
 * @return {@link SecretKey} for testing
 */
public static SecretKey createSecretKey(String algorithm) throws IOException {
    try {
        MessageDigest md = MessageDigest.getInstance(algorithm);
        md.update("Turpentine".getBytes()); // A random password
        byte[] macKey = md.digest();
        return new HmacKey(macKey);
    } catch (NoSuchAlgorithmException ex) {
        throw new IOException(ex);
    }
}
 
开发者ID:shred,项目名称:acme4j,代码行数:18,代码来源:TestUtils.java


示例17: getToken

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public String getToken(TokenDTO data) {

	try {

	    ZonedDateTime expiration = ZonedDateTime.now(ZoneOffset.UTC).plus(daysOfValidity, ChronoUnit.DAYS);

	    Key key = new HmacKey(secret.getBytes("UTF-8"));

	    JwtClaims claims = new JwtClaims();
	    claims.setExpirationTime(NumericDate.fromMilliseconds(expiration.toInstant().toEpochMilli()));
	    claims.setGeneratedJwtId();
	    claims.setIssuedAtToNow();
	    claims.setNotBeforeMinutesInThePast(2);
	    claims.setSubject(data.getSubject());
	    claims.setIssuer(data.getIssuer());
	    claims.setClaim(EMAIL_KEY, data.getEmail());

	    JsonWebSignature jws = new JsonWebSignature();
	    jws.setPayload(claims.toJson());
	    jws.setKey(key);
	    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);

	    return jws.getCompactSerialization();

	} catch (JoseException | UnsupportedEncodingException e) {
	    throw new RuntimeException("An error occured while building a token", e);
	}

    }
 
开发者ID:tomacla,项目名称:auth-token,代码行数:30,代码来源:TokenManager.java


示例18: serializeAndSign

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public static String serializeAndSign(Map<String, Object> claims, String key) {
    JsonWebSignature jws = new JsonWebSignature();
    jws.setPayload(new Gson().toJson(claims));
    jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.HMAC_SHA256);
    jws.setHeader("typ", "JWT");
    jws.setKey(new HmacKey(Arrays.copyOf(key.getBytes(), 32)));

    try {
        return jws.getCompactSerialization();
    } catch (JoseException e) {
        throw new TokenException(e);
    }
}
 
开发者ID:Livefyre,项目名称:livefyre-java-utils,代码行数:14,代码来源:LivefyreUtil.java


示例19: decodeJwt

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
public static JsonObject decodeJwt(String jwt, String key) {
    JwtConsumer jwtConsumer;
    try {
        jwtConsumer = new JwtConsumerBuilder()
                .setVerificationKey(new HmacKey(Arrays.copyOf(key.getBytes(), 32)))
                .build();
        return new Gson().fromJson(jwtConsumer.processToClaims(jwt).toJson(), JsonObject.class);
    } catch (InvalidJwtException e) {
        throw new TokenException(e);
    }
}
 
开发者ID:Livefyre,项目名称:livefyre-java-utils,代码行数:12,代码来源:LivefyreUtil.java


示例20: TokenGeneratorHs256

import org.jose4j.keys.HmacKey; //导入依赖的package包/类
/**
 * Initialize HS256 JWT generator
 * @param appSecret Application secret. The contents will be cleared after constructor is done.
 * @param appId Application ID
 * @param userId User ID
 */
public TokenGeneratorHs256(char[] appSecret, final int appId, final String userId) {
	this.userId = userId;
	this.appId = (new Integer(appId)).toString();
	
	byte[] keyIdBuilder = new byte[appSecret.length];
	boolean split = false;
	byte[] keyBytes = null;
	int keyIdx = 0;
	
	// Split key id and app secret
	for (int i=0; i<appSecret.length; i++) {
		if (!split && appSecret[i] != ':') {
			keyIdBuilder[i] = (byte)appSecret[i];
		} else if (appSecret[i] == ':') {
			split = true;
			keyBytes = new byte[appSecret.length-i-1];
		} else {
			keyBytes[keyIdx++] = (byte)appSecret[i];
		}
	}
	if (split) {
		try {
			keyId = Hex.encodeHexString(Base64.decodeBase64(new String(keyIdBuilder, "UTF-8")));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		clearByteArray(keyIdBuilder);
		
	} else {
		// There wasn't key ID in the app secret, so keep keyid as null
		keyBytes = keyIdBuilder;
	}
	key = new HmacKey(keyBytes);
	clearByteArray(keyBytes);
	clearCharArray(appSecret);
}
 
开发者ID:callstats-io,项目名称:callstats.java,代码行数:43,代码来源:TokenGeneratorHs256.java



注:本文中的org.jose4j.keys.HmacKey类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java CollectResult类代码示例发布时间:2022-05-21
下一篇:
Java ServerSetupTest类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap