blob: bf50673fab853e4e9e540842e94c95f7c64b0652 (
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
36
37
38
39
40
|
// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.athenz.identity;
import com.yahoo.vespa.athenz.api.AthenzService;
import javax.net.ssl.SSLContext;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
/**
* A helper class managing {@link ServiceIdentityProvider.Listener} instances for implementations of {@link ServiceIdentityProvider}.
*
* @author bjorncs
*/
public class ServiceIdentityProviderListenerHelper {
private final Set<ServiceIdentityProvider.Listener> listeners = new CopyOnWriteArraySet<>();
private final AthenzService identity;
public ServiceIdentityProviderListenerHelper(AthenzService identity) {
this.identity = identity;
}
public void addIdentityListener(ServiceIdentityProvider.Listener listener) {
listeners.add(listener);
}
public void removeIdentityListener(ServiceIdentityProvider.Listener listener) {
listeners.remove(listener);
}
public void onCredentialsUpdate(SSLContext sslContext) {
listeners.forEach(l -> l.onCredentialsUpdate(sslContext, identity));
}
public void clearListeners() {
listeners.clear();
}
}
|