Search in sources :

Example 1 with JWT

use of io.vertx.ext.jwt.JWT in project vertx-zero by silentbalanceyh.

the class UxJwt method createDirect.

private static JWT createDirect(final JWTAuthOptions config, final Function<String, Buffer> funcBuffer) {
    final JWT reference;
    final KeyStoreOptions keyStore = config.getKeyStore();
    try {
        if (keyStore != null) {
            final KeyStore ks = KeyStore.getInstance(keyStore.getType());
            final Class var5 = JwtAuthProvider.class;
            synchronized (JwtAuthProvider.class) {
                final Buffer keystore = funcBuffer.apply(keyStore.getPath());
                final InputStream in = new ByteArrayInputStream(keystore.getBytes());
                Throwable var8 = null;
                try {
                    ks.load(in, keyStore.getPassword().toCharArray());
                } catch (final Throwable var20) {
                    var8 = var20;
                    throw var20;
                } finally {
                    if (in != null) {
                        if (var8 != null) {
                            try {
                                in.close();
                            } catch (final Throwable var19) {
                                var8.addSuppressed(var19);
                            }
                        } else {
                            in.close();
                        }
                    }
                }
            }
            reference = new JWT(ks, keyStore.getPassword().toCharArray());
        } else {
            reference = new JWT();
            final List<PubSecKeyOptions> keys = config.getPubSecKeys();
            if (keys != null) {
                final Iterator var25 = config.getPubSecKeys().iterator();
                while (var25.hasNext()) {
                    final PubSecKeyOptions pubSecKey = (PubSecKeyOptions) var25.next();
                    if (pubSecKey.isSymmetric()) {
                        reference.addJWK(new JWK(pubSecKey.getAlgorithm(), pubSecKey.getPublicKey()));
                    } else {
                        reference.addJWK(new JWK(pubSecKey.getAlgorithm(), pubSecKey.isCertificate(), pubSecKey.getPublicKey(), pubSecKey.getSecretKey()));
                    }
                }
            }
            final List<SecretOptions> secrets = config.getSecrets();
            if (secrets != null) {
                final Iterator var28 = secrets.iterator();
                while (var28.hasNext()) {
                    final SecretOptions secret = (SecretOptions) var28.next();
                    reference.addSecret(secret.getType(), secret.getSecret());
                }
            }
        }
    } catch (IOException | FileSystemException | CertificateException | NoSuchAlgorithmException | KeyStoreException var23) {
        throw new _500JwtRuntimeException(UxJwt.class, var23);
    }
    return reference;
}
Also used : Buffer(io.vertx.core.buffer.Buffer) io.vertx.up.exception._500JwtRuntimeException(io.vertx.up.exception._500JwtRuntimeException) PubSecKeyOptions(io.vertx.ext.auth.PubSecKeyOptions) JWT(io.vertx.ext.jwt.JWT) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) CertificateException(java.security.cert.CertificateException) KeyStoreOptions(io.vertx.ext.auth.KeyStoreOptions) IOException(java.io.IOException) NoSuchAlgorithmException(java.security.NoSuchAlgorithmException) KeyStoreException(java.security.KeyStoreException) KeyStore(java.security.KeyStore) SecretOptions(io.vertx.ext.auth.SecretOptions) FileSystemException(io.vertx.core.file.FileSystemException) ByteArrayInputStream(java.io.ByteArrayInputStream) JwtAuthProvider(io.vertx.up.secure.provider.JwtAuthProvider) Iterator(java.util.Iterator) JWK(io.vertx.ext.jwt.JWK)

Example 2 with JWT

use of io.vertx.ext.jwt.JWT in project vertx-zero by silentbalanceyh.

the class UxJwt method generate.

static String generate(final JsonObject claims, final JWTOptions options, final Function<String, Buffer> funcBuffer) {
    final JsonObject opts = readOptions();
    final JWTAuthOptions meta = Fn.get(new JWTAuthOptions(), () -> new JWTAuthOptions(opts), opts);
    return Fn.get(() -> {
        final JsonObject _claims = claims.copy();
        if (options.getPermissions() != null && !_claims.containsKey(meta.getPermissionsClaimKey())) {
            _claims.put(meta.getPermissionsClaimKey(), new JsonArray(options.getPermissions()));
        }
        final JWT reference = create(meta, funcBuffer);
        return reference.sign(_claims, options);
    }, meta, claims);
}
Also used : JsonArray(io.vertx.core.json.JsonArray) JWTAuthOptions(io.vertx.ext.auth.jwt.JWTAuthOptions) JWT(io.vertx.ext.jwt.JWT) JsonObject(io.vertx.core.json.JsonObject)

Aggregations

JWT (io.vertx.ext.jwt.JWT)2 Buffer (io.vertx.core.buffer.Buffer)1 FileSystemException (io.vertx.core.file.FileSystemException)1 JsonArray (io.vertx.core.json.JsonArray)1 JsonObject (io.vertx.core.json.JsonObject)1 KeyStoreOptions (io.vertx.ext.auth.KeyStoreOptions)1 PubSecKeyOptions (io.vertx.ext.auth.PubSecKeyOptions)1 SecretOptions (io.vertx.ext.auth.SecretOptions)1 JWTAuthOptions (io.vertx.ext.auth.jwt.JWTAuthOptions)1 JWK (io.vertx.ext.jwt.JWK)1 io.vertx.up.exception._500JwtRuntimeException (io.vertx.up.exception._500JwtRuntimeException)1 JwtAuthProvider (io.vertx.up.secure.provider.JwtAuthProvider)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 KeyStore (java.security.KeyStore)1 KeyStoreException (java.security.KeyStoreException)1 NoSuchAlgorithmException (java.security.NoSuchAlgorithmException)1 CertificateException (java.security.cert.CertificateException)1 Iterator (java.util.Iterator)1