protected static <T extends JwtHelper> T forSharedSecret(final String sharedSecret, final long tokenExpiration, final Supplier<T> instanceSupplier) { Objects.requireNonNull(sharedSecret); Objects.requireNonNull(instanceSupplier); final T result = instanceSupplier.get(); result.setSharedSecret(getBytes(sharedSecret)); result.tokenLifetime = Duration.ofSeconds(tokenExpiration); return result; }
protected static <T extends JwtHelper> T forSharedSecret(final String sharedSecret, final long tokenExpiration, final Supplier<T> instanceSupplier) { Objects.requireNonNull(sharedSecret); Objects.requireNonNull(instanceSupplier); final T result = instanceSupplier.get(); result.setSharedSecret(getBytes(sharedSecret)); result.tokenLifetime = Duration.ofSeconds(tokenExpiration); return result; }
protected static <T extends JwtHelper> T forSigning(final SignatureSupportingConfigProperties config, final Supplier<T> instanceSupplier) { Objects.requireNonNull(config); Objects.requireNonNull(instanceSupplier); if (!config.isAppropriateForCreating()) { throw new IllegalArgumentException("configuration does not specify any signing tokens"); } else { final T result = instanceSupplier.get(); result.tokenLifetime = Duration.ofSeconds(config.getTokenExpiration()); if (config.getSharedSecret() != null) { final byte[] secret = getBytes(config.getSharedSecret()); result.setSharedSecret(secret); LOG.info("using shared secret [{} bytes] for signing tokens", secret.length); } else if (config.getKeyPath() != null) { result.setPrivateKey(config.getKeyPath()); LOG.info("using private key [{}] for signing tokens", config.getKeyPath()); } return result; } }
protected static <T extends JwtHelper> T forSigning(final SignatureSupportingConfigProperties config, final Supplier<T> instanceSupplier) { Objects.requireNonNull(config); Objects.requireNonNull(instanceSupplier); if (!config.isAppropriateForCreating()) { throw new IllegalArgumentException("configuration does not specify any signing tokens"); } else { final T result = instanceSupplier.get(); result.tokenLifetime = Duration.ofSeconds(config.getTokenExpiration()); LOG.info("using token lifetime of {} seconds", result.tokenLifetime.getSeconds()); if (config.getSharedSecret() != null) { final byte[] secret = getBytes(config.getSharedSecret()); result.setSharedSecret(secret); LOG.info("using shared secret [{} bytes] for signing tokens", secret.length); } else if (config.getKeyPath() != null) { result.setPrivateKey(config.getKeyPath()); LOG.info("using private key [{}] for signing tokens", config.getKeyPath()); } return result; } }
protected static <T extends JwtHelper> T forValidating(final SignatureSupportingConfigProperties config, final Supplier<T> instanceSupplier) { Objects.requireNonNull(config); Objects.requireNonNull(instanceSupplier); if (!config.isAppropriateForValidating()) { throw new IllegalArgumentException( "configuration does not specify any key material for validating tokens"); } else { final T result = instanceSupplier.get(); if (config.getSharedSecret() != null) { final byte[] secret = getBytes(config.getSharedSecret()); result.setSharedSecret(secret); LOG.info("using shared secret [{} bytes] for validating tokens", secret.length); } else if (config.getCertPath() != null) { result.setPublicKey(config.getCertPath()); LOG.info("using public key from certificate [{}] for validating tokens", config.getCertPath()); } return result; } } }
protected static <T extends JwtHelper> T forValidating(final SignatureSupportingConfigProperties config, final Supplier<T> instanceSupplier) { Objects.requireNonNull(config); Objects.requireNonNull(instanceSupplier); if (!config.isAppropriateForValidating()) { throw new IllegalArgumentException( "configuration does not specify any key material for validating tokens"); } else { final T result = instanceSupplier.get(); if (config.getSharedSecret() != null) { final byte[] secret = getBytes(config.getSharedSecret()); result.setSharedSecret(secret); LOG.info("using shared secret [{} bytes] for validating tokens", secret.length); } else if (config.getCertPath() != null) { result.setPublicKey(config.getCertPath()); LOG.info("using public key from certificate [{}] for validating tokens", config.getCertPath()); } return result; } } }