/*
 * Copyright (c) 2011-2019 Contributors to the Eclipse Foundation
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
 * which is available at https://www.apache.org/licenses/LICENSE-2.0.
 *
 * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
 */

package io.vertx.core.net;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.json.JsonObject;

Key or trust store options configuring private key and/or certificates based on KeyStore.
  • when used as a key store, it should point to a store containing a private key and its certificate.
  • when used as a trust store, it should point to a store containing a list of trusted certificates.

The store can either be loaded by Vert.x from the filesystem:

HttpServerOptions options = HttpServerOptions.httpServerOptions();
options.setKeyCertOptions(new KeyStoreOptions().setType("JKS").setPath("/mykeystore.jks").setPassword("foo"));
Or directly provided as a buffer:
Buffer store = vertx.fileSystem().readFileBlocking("/mykeystore.jks");
options.setKeyCertOptions(new KeyStoreOptions().setType("JKS").setValue(store).setPassword("foo"));

You can also use specific subclasses JksOptions or PfxOptions that will set the setType for you:

HttpServerOptions options = HttpServerOptions.httpServerOptions();
options.setKeyCertOptions(new JksOptions().setPath("/mykeystore.jks").setPassword("foo"));
Author:Julien Viet, Tim Fox
/** * Key or trust store options configuring private key and/or certificates based on {@code KeyStore}. * * <ul> * <li>when used as a key store, it should point to a store containing a private key and its certificate.</li> * <li>when used as a trust store, it should point to a store containing a list of trusted certificates.</li> * </ul> * * <p> The store can either be loaded by Vert.x from the filesystem: * * <pre> * HttpServerOptions options = HttpServerOptions.httpServerOptions(); * options.setKeyCertOptions(new KeyStoreOptions().setType("JKS").setPath("/mykeystore.jks").setPassword("foo")); * </pre> * * Or directly provided as a buffer: * * <pre> * Buffer store = vertx.fileSystem().readFileBlocking("/mykeystore.jks"); * options.setKeyCertOptions(new KeyStoreOptions().setType("JKS").setValue(store).setPassword("foo")); * </pre> * * <p> You can also use specific subclasses {@link JksOptions} or {@link PfxOptions} that will set * the {@link #setType} for you: * * <pre> * HttpServerOptions options = HttpServerOptions.httpServerOptions(); * options.setKeyCertOptions(new JksOptions().setPath("/mykeystore.jks").setPassword("foo")); * </pre> * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> * @author <a href="http://tfox.org">Tim Fox</a> */
@DataObject(generateConverter = true) public class KeyStoreOptions extends KeyStoreOptionsBase {
Default constructor
/** * Default constructor */
public KeyStoreOptions() { super(); }
Copy constructor
Params:
  • other – the options to copy
/** * Copy constructor * * @param other the options to copy */
public KeyStoreOptions(KeyStoreOptions other) { super(other); }
Create options from JSON
Params:
  • json – the JSON
/** * Create options from JSON * * @param json the JSON */
public KeyStoreOptions(JsonObject json) { this(); KeyStoreOptionsConverter.fromJson(json, this); }
Returns:the store provider
/** * @return the store provider */
public String getProvider() { return super.getProvider(); }
Set the store provider.
Params:
  • provider – the type
Returns:a reference to this, so the API can be used fluently
/** * Set the store provider. * * @param provider the type * @return a reference to this, so the API can be used fluently */
public KeyStoreOptions setProvider(String provider) { return (KeyStoreOptions) super.setProvider(provider); }
Returns:the store type
/** * @return the store type */
public String getType() { return super.getType(); }
Set the store type.
Params:
  • type – the type
Returns:a reference to this, so the API can be used fluently
/** * Set the store type. * * @param type the type * @return a reference to this, so the API can be used fluently */
public KeyStoreOptions setType(String type) { return (KeyStoreOptions) super.setType(type); } @Override public KeyStoreOptions setPassword(String password) { return (KeyStoreOptions) super.setPassword(password); } @Override public KeyStoreOptions setPath(String path) { return (KeyStoreOptions) super.setPath(path); } @Override public KeyStoreOptions setValue(Buffer value) { return (KeyStoreOptions) super.setValue(value); } @Override public KeyStoreOptions copy() { return new KeyStoreOptions(this); }
Convert to JSON
Returns:the JSON
/** * Convert to JSON * * @return the JSON */
public JsonObject toJson() { JsonObject json = new JsonObject(); KeyStoreOptionsConverter.toJson(this, json); return json; } }