aboutsummaryrefslogtreecommitdiffstats
path: root/container-disc/src/main/java/com/yahoo/container/jdisc/CertificateStoreProvider.java
blob: 98713a8a7407da5eec115b2a17bb7ac4b79b7801 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.container.jdisc;

import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.jdisc.http.CertificateStore;

/**
 * An certificate store provider which provides a factory which throws exception on
 * invocation - as no certificate store is currently provided by default.
 * The purpose of this is to provide a certificate store for injection in the case where
 * no certificate store component is provided.
 *
 * @author bratseth
 */
@SuppressWarnings("unused")
public class CertificateStoreProvider implements Provider<CertificateStore> {

    private static final ThrowingCertificateStore instance = new ThrowingCertificateStore();

    @Override
    public CertificateStore get() { return instance; }

    @Override
    public void deconstruct() { }

    private static final class ThrowingCertificateStore implements CertificateStore {

        @Override
        public String getCertificate(String key, long ttl, long retry) {
            throw new UnsupportedOperationException("A certificate store is not available");
        }

    }

}