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

Java JWSObject类代码示例

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

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



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

示例1: getSignedContent

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public String getSignedContent(String content) {
    Payload contentPayload = new Payload(content);

    try {
        RSASSASigner rsa = new RSASSASigner((RSAPrivateKey) clientJwk);
        JWSAlgorithm alg = JWSAlgorithm.RS256;
        JWSHeader header = new JWSHeader.Builder(alg)
            .keyID(clientJwk.getKeyID())
            .build();
        JWSObject jws = new JWSObject(header, contentPayload);
        jws.sign(rsa);
        return jws.serialize();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
开发者ID:PacktPublishing,项目名称:OAuth-2.0-Cookbook,代码行数:17,代码来源:JwkKeyPairManager.java


示例2: getJWTUser

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public static JWTUser getJWTUser(String token) throws JWTException {
	if (StringUtils.isEmpty(token)) {
		throw new JWTException("没有找到token信息!");
	}
	try {
		JWSObject jwsObject = JWSObject.parse(token);
		if (JWT.verify(jwsObject)) {
			// 判断有效期,不在有效期内则直接抛出错误
			JWTUser user = new JWTUser(jwsObject.getPayload().toJSONObject());
			if (user.getExp() >= Calendar.getInstance().getTimeInMillis()) {
				return user;
			} else {
				throw new JWTException("token已经超过有效期!");
			}
		} else {
			throw new JWTException("token校验失败!");
		}
	} catch (Exception e) {
		throw new JWTException(e);
	}
}
 
开发者ID:mazhaoyong,项目名称:api-server-seed,代码行数:22,代码来源:JWT.java


示例3: validateSignature

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
/**
 * Verify the signature of the JWT token in this method. This method depends
 * on the public key that was established during init based upon the
 * provisioned public key. Override this method in subclasses in order to
 * customize the signature verification behavior.
 *
 * @param jwtToken the token that contains the signature to be validated
 * @return valid true if signature verifies successfully; false otherwise
 */
protected boolean validateSignature(SignedJWT jwtToken) {
  boolean valid = false;
  if (JWSObject.State.SIGNED == jwtToken.getState()) {
    LOG.debug("JWT token is in a SIGNED state");
    if (jwtToken.getSignature() != null) {
      LOG.debug("JWT token signature is not null");
      try {
        JWSVerifier verifier = new RSASSAVerifier(publicKey);
        if (jwtToken.verify(verifier)) {
          valid = true;
          LOG.debug("JWT token has been successfully verified");
        } else {
          LOG.warn("JWT signature verification failed.");
        }
      } catch (JOSEException je) {
        LOG.warn("Error while validating signature", je);
      }
    }
  }
  return valid;
}
 
开发者ID:aliyun-beta,项目名称:aliyun-oss-hadoop-fs,代码行数:31,代码来源:JWTRedirectAuthenticationHandler.java


示例4: sign

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public String sign(String algorithm, String kid, String keyStr, String dataToSign) {
    try {

        Key key = getKey(algorithm, keyStr);

        JWSHeader.Builder jwsBuilder = new JWSHeader.Builder("HS256".equals(algorithm) ? JWSAlgorithm.HS256 : JWSAlgorithm.RS256);
        jwsBuilder.keyID(kid);

        JWSHeader signingHeader = jwsBuilder.build();
        JWSSigner signer = "HS256".equals(algorithm) ? new MACSigner(key.getEncoded()) : new RSASSASigner((RSAPrivateKey) key);
        JWSObject jwsObject = new JWSObject(signingHeader, new Payload(dataToSign));
        jwsObject.sign(signer);
        checkObject(jwsObject);

        String parts[] = jwsObject.serialize().split("\\.");

        return "{\"protected\":\"" + parts[0] + "\", \"payload\":\"" + parts[1] + "\", \"signature\":\"" + parts[2] + "\"}";

    } catch (Exception e) {
        throw new CryptoException("Exception signing data: " + e.getMessage(), e);
    }
}
 
开发者ID:americanexpress,项目名称:amex-api-java-client-core,代码行数:23,代码来源:EncryptionUtility.java


示例5: checkObjectFailure

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Test
public void checkObjectFailure() throws Exception {
    Method method = encryptionUtility.getClass().getDeclaredMethod("checkObject", JWSObject.class);

    method.setAccessible(true);
    JWSObject object = mock(JWSObject.class);

    Throwable exception = null;
    try {
        method.invoke(encryptionUtility, object);
    } catch(InvocationTargetException e) {
        exception = e.getCause();
    }

    assertNotNull(exception);
    assertTrue(exception instanceof CryptoException);
}
 
开发者ID:americanexpress,项目名称:amex-api-java-client-core,代码行数:18,代码来源:EncryptionUtilityTest.java


示例6: verifySignature

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public static boolean verifySignature( String token, String sharedKey )
{
    boolean verifiedSignature = false;

    try
    {
        JWSObject jwsObject = JWSObject.parse( token );
        JWSVerifier verifier = new MACVerifier( sharedKey.getBytes() );
        verifiedSignature = jwsObject.verify( verifier );
    }
    catch ( Exception e )
    {
        LOG.warn( e.getMessage() );
    }

    return verifiedSignature;
}
 
开发者ID:subutai-io,项目名称:base,代码行数:18,代码来源:TokenUtil.java


示例7: createTokenRSA

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public static String createTokenRSA( PrivateKey privateKey, String claimJson )
{
    try
    {
        JWSSigner signer = new RSASSASigner( ( RSAPrivateKey ) privateKey );

        Payload pl = new Payload( claimJson );
        JWSObject jwsObject = new JWSObject( new JWSHeader( JWSAlgorithm.RS256 ), pl );

        jwsObject.sign( signer );

        return jwsObject.serialize();
    }
    catch ( Exception e )
    {
        LOG.error( "Error creating RSA token", e.getMessage() );

        return "";
    }
}
 
开发者ID:subutai-io,项目名称:base,代码行数:21,代码来源:TokenUtil.java


示例8: verifyTokenRSA

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public static boolean verifyTokenRSA( PublicKey pKey, String token )
{
    try
    {
        Payload pl = new Payload( token );
        JWSObject jwsObject = new JWSObject( new JWSHeader( JWSAlgorithm.RS256 ), pl );
        JWSVerifier verifier = new RSASSAVerifier( ( RSAPublicKey ) pKey );

        return jwsObject.verify( verifier );
    }
    catch ( JOSEException e )
    {
        LOG.warn( "Error verifying RSA token", e.getMessage() );

        return false;
    }
}
 
开发者ID:subutai-io,项目名称:base,代码行数:18,代码来源:TokenUtil.java


示例9: validateSignature

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
protected boolean validateSignature(SignedJWT jwtToken) {
  boolean valid = false;
  if (JWSObject.State.SIGNED == jwtToken.getState()) {

    if (jwtToken.getSignature() != null) {

      try {
        RSAPublicKey publicKey = parseRSAPublicKey(publicKeyPath);
        JWSVerifier verifier = new RSASSAVerifier(publicKey);
        if (verifier != null && jwtToken.verify(verifier)) {
          valid = true;
        }
      } catch (Exception e) {
        LOGGER.info("Exception in validateSignature", e);
      }
    }
  }
  return valid;
}
 
开发者ID:apache,项目名称:zeppelin,代码行数:20,代码来源:KnoxJwtRealm.java


示例10: extractChainData

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
private static Any<Key, JsonObject> extractChainData(Map<String, List<String>> maindata) throws ParseException {
	List<String> chain = maindata.get("chain");
	try {
		PublicKey key = parseKey(MOJANG_KEY);
		boolean foundMojangKey = false;
		boolean signatureValid = false;
		for (String element : chain) {
			JWSObject jwsobject = JWSObject.parse(element);
			if (!foundMojangKey && jwsobject.getHeader().getX509CertURL().toString().equals(MOJANG_KEY)) {
				foundMojangKey = true;
				signatureValid = true;
			}
			if (foundMojangKey && !verify(jwsobject, key)) {
				signatureValid = false;
			}
			JsonObject jsonobject = Utils.GSON.fromJson(jwsobject.getPayload().toString(), JsonObject.class);
			key = parseKey(JsonUtils.getString(jsonobject, "identityPublicKey"));
			if (jsonobject.has("extraData")) {
				return new Any<Key, JsonObject>(signatureValid ? key : null, JsonUtils.getJsonObject(jsonobject, "extraData"));
			}
		}
	} catch (InvalidKeySpecException | JOSEException e) {
		throw new DecoderException("Unable to decode login chain", e);
	}
	throw new DecoderException("Unable to find extraData");
}
 
开发者ID:ProtocolSupport,项目名称:ProtocolSupportBungee,代码行数:27,代码来源:LoginHandshakePacket.java


示例11: authenticate

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public JwtClaims authenticate(Jwt jwt) throws JwtVerifyException {
    JWSObject jwsObject = jwt.getJwsObject();
    JSONObject payload = jwsObject.getPayload().toJSONObject();

    // Do the verification steps in order of performance cost / likelihood of failing. Signature verification is
    // costly so we do that last.
    assertTimeValid(payload);

    X509Certificate signingCertificate = getSigningCertificate(jwsObject);

    assertAllowedSignerDn(signingCertificate);
    assertJwtIssuerMatchesSigner(signingCertificate, payload.get(JwtClaims.ISSUER).toString());
    assertSignatureValid(jwsObject, signingCertificate);

    //
    // IMPORTANT!
    //
    // You need to assert that signing certificate is valid by walking trust chain. This will depend on
    // your CA hierarchy and revocation policy. This has been left for the implementer to decide but is a
    // critical part of the verification process.

    LOGGER.debug("Verified JWT (jti={})", payload.get(JwtClaims.JWT_ID));
    JwtClaims.JwtClaimsBuilder builder = JwtClaims.JwtClaimsBuilder.newInstanceFromClaimsMap(payload);
    return builder.build();
}
 
开发者ID:wdawson,项目名称:dropwizard-auth-example,代码行数:26,代码来源:JwtVerifier.java


示例12: createToken

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
default String createToken(Object userId) {
    try {
        JWTClaimsSet.Builder builder = new JWTClaimsSet.Builder();

        builder.issuer(getIssuer());
        builder.subject(userId.toString());
        builder.issueTime(new Date());
        builder.notBeforeTime(new Date());
        builder.expirationTime(new Date(new Date().getTime() + getExpirationDate()));
        builder.jwtID(UUID.randomUUID().toString());

        JWTClaimsSet claimsSet = builder.build();
        JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);

        Payload payload = new Payload(claimsSet.toJSONObject());

        JWSObject jwsObject = new JWSObject(header, payload);

        JWSSigner signer = new MACSigner(getSharedKey());
        jwsObject.sign(signer);
        return jwsObject.serialize();
    } catch (JOSEException ex) {
        return null;
    }
}
 
开发者ID:panchitoboy,项目名称:shiro-jwt,代码行数:26,代码来源:UserRepository.java


示例13: createToken

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public JWTAuthenticationToken createToken(String token) {
    try {
        JWSObject jwsObject = JWSObject.parse(token);
        String decrypted = jwsObject.getPayload().toString();
        
        try (JsonReader jr = Json.createReader(new StringReader(decrypted))) {
            JsonObject object = jr.readObject();

            String userId = object.getString("sub", null);
            return new JWTAuthenticationToken(userId, token);
        }

    } catch (ParseException ex) {
        throw new AuthenticationException(ex);
    }

}
 
开发者ID:panchitoboy,项目名称:shiro-jwt,代码行数:18,代码来源:JWTOrFormAuthenticationFilter.java


示例14: validToken

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Test
public void validToken() throws JOSEException, ParseException {
    JWTClaimsSet jwtClaims = getJWTClaimsSet("issuer", "subject", new Date(), new Date(), new Date(new Date().getTime() + 100000));

    JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);

    Payload payload = new Payload(jwtClaims.toJSONObject());

    JWSObject jwsObject = new JWSObject(header, payload);

    JWSSigner signer = new MACSigner(sharedKey);
    jwsObject.sign(signer);
    String token = jwsObject.serialize();

    SignedJWT signed = SignedJWT.parse(token);
    JWSVerifier verifier = new MACVerifierExtended(sharedKey, signed.getJWTClaimsSet());
    signed.verify(verifier);

    Assert.assertTrue("Must be valid", signed.verify(verifier));
}
 
开发者ID:panchitoboy,项目名称:shiro-jwt,代码行数:21,代码来源:MACVerifierExtendedTest.java


示例15: invalidTokenNotBeforeTime

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Test
public void invalidTokenNotBeforeTime() throws JOSEException, ParseException {
    JWTClaimsSet jwtClaims = getJWTClaimsSet("issuer", "subject", new Date(), new Date(new Date().getTime() + 100000), new Date(new Date().getTime() + 200000));

    JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);

    Payload payload = new Payload(jwtClaims.toJSONObject());

    JWSObject jwsObject = new JWSObject(header, payload);

    JWSSigner signer = new MACSigner(sharedKey);
    jwsObject.sign(signer);
    String token = jwsObject.serialize();

    SignedJWT signed = SignedJWT.parse(token);
    JWSVerifier verifier = new MACVerifierExtended(sharedKey, signed.getJWTClaimsSet());
    signed.verify(verifier);

    Assert.assertFalse("Must be invalid", signed.verify(verifier));
}
 
开发者ID:panchitoboy,项目名称:shiro-jwt,代码行数:21,代码来源:MACVerifierExtendedTest.java


示例16: invalidTokenExpirationTime

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Test
public void invalidTokenExpirationTime() throws JOSEException, ParseException {
    JWTClaimsSet jwtClaims = getJWTClaimsSet("issuer", "subject", new Date(), new Date(), new Date());

    JWSHeader header = new JWSHeader(JWSAlgorithm.HS256);

    Payload payload = new Payload(jwtClaims.toJSONObject());

    JWSObject jwsObject = new JWSObject(header, payload);

    JWSSigner signer = new MACSigner(sharedKey);
    jwsObject.sign(signer);
    String token = jwsObject.serialize();

    SignedJWT signed = SignedJWT.parse(token);
    JWSVerifier verifier = new MACVerifierExtended(sharedKey, signed.getJWTClaimsSet());
    signed.verify(verifier);

    Assert.assertFalse("Must be invalid", signed.verify(verifier));
}
 
开发者ID:panchitoboy,项目名称:shiro-jwt,代码行数:21,代码来源:MACVerifierExtendedTest.java


示例17: process

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Override
public JsonObject process(String jwt) throws JWTException {
    String[] parts = jwt.split("\\.");
    if(parts.length == 3) {
        Base64URL first = new Base64URL(parts[0]);
        Base64URL second = new Base64URL(parts[1]);
        Base64URL third = new Base64URL(parts[2]);
        try {
            String rawJwt = new JWSObject(first, second, third).getPayload().toString();
            return Json.createReader(new StringReader(rawJwt)).readObject();
        }
        catch (ParseException e) {
            throw new JWTException("Unable to parse JWT", e);
        }
    }
    else {
        return null;
    }
}
 
开发者ID:hammock-project,项目名称:hammock,代码行数:20,代码来源:SimpleJWTProcessor.java


示例18: authenticate

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
@Override
public Authentication authenticate(Authentication authentication)
    throws AuthenticationException {
    Authentication authenticationResult = authenticationManager
        .authenticate(authentication);

    if (authenticationResult.isAuthenticated()) {
        // validates nonce because JWT is already valid
        if (authentication instanceof PoPAuthenticationToken) {
            PoPAuthenticationToken popAuthentication = (PoPAuthenticationToken) authentication;

            // starts validating nonce here
            String nonce = popAuthentication.getNonce();
            if (nonce == null) {
                throw new UnapprovedClientAuthenticationException(
                    "This request does not have a valid signed nonce");
            }

            String token = (String) popAuthentication.getPrincipal();

            System.out.println("access token:" + token);

            try {
                JWT jwt = JWTParser.parse(token);
                String publicKey = jwt.getJWTClaimsSet().getClaim("public_key").toString();
                JWK jwk = JWK.parse(publicKey);

                JWSObject jwsNonce = JWSObject.parse(nonce);
                JWSVerifier verifier = new RSASSAVerifier((RSAKey) jwk);
                if (!jwsNonce.verify(verifier)) {
                    throw new InvalidTokenException("Client hasn't possession of given token");
                }
            } catch (Exception e) {
                throw new RuntimeException(e);
            }

        }
    }

    return authenticationResult;
}
 
开发者ID:PacktPublishing,项目名称:OAuth-2.0-Cookbook,代码行数:42,代码来源:PoPAuthenticationManager.java


示例19: validate

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
public JwtPayload validate(ConnectionInfo connectionInfo) throws NotAuthorizedException {
    log.trace("Validation: {}", connectionInfo.toString());
    String[] chain = connectionInfo.getTokenChain().getChain();
    String token = connectionInfo.getClientDataToken();

    if (!validateCertificateChain(chain)) {
        throw new NotAuthorizedException("Invalid certificate chain");
    }

    Optional<JWSObject> jwsTokenOptional = getJwsToken(token);
    if (!jwsTokenOptional.isPresent()) {
        throw new NotAuthorizedException("Invalid token");
    }

    JWSObject jwtToken = jwsTokenOptional.get();
    ECPublicKey key = getECX509PublicKey(jwtToken.getHeader().getX509CertURL().toString());
    if (!validatePublicKey(jwtToken, key)) {
        throw new NotAuthorizedException("Invalid public key");
    }

    // TODO: Verify server address from payload data
    String payloadData = jwtToken.getPayload().toString();

    JwtPayload payload = GSON.fromJson(payloadData, JwtPayload.class);
    payload.setPublicKey(key);

    return payload;
}
 
开发者ID:JungleTree,项目名称:JungleTree,代码行数:29,代码来源:LoginValidator.java


示例20: verifyCertificateIsValid

import com.nimbusds.jose.JWSObject; //导入依赖的package包/类
private boolean verifyCertificateIsValid(String token) {
    try {
        JWSObject jwsToken = JWSObject.parse(token);
        jwsToken.verify(VERIFIER_FACTORY.createJWSVerifier(jwsToken.getHeader(), mojangPublicKey));
    } catch (ParseException | JOSEException ex) {
        return false;
    }
    return true;
}
 
开发者ID:JungleTree,项目名称:JungleTree,代码行数:10,代码来源:LoginValidator.java



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


鲜花

握手

雷人

路过

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

请发表评论

全部评论

专题导读
上一篇:
Java ModelLoader类代码示例发布时间:2022-05-21
下一篇:
Java MultithreadedTestUtil类代码示例发布时间: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