1 package com.atlassian.asap.service.core.service;
2
3 import com.atlassian.asap.core.client.http.AuthorizationHeaderGeneratorImpl;
4 import com.atlassian.asap.core.keys.KeyProvider;
5 import com.atlassian.asap.core.keys.privatekey.NullKeyProvider;
6 import com.atlassian.asap.core.keys.privatekey.PrivateKeyProviderFactory;
7 import com.atlassian.asap.nimbus.serializer.NimbusJwtSerializer;
8 import com.atlassian.asap.service.core.spi.AsapConfiguration;
9
10 import java.net.URI;
11 import java.security.PrivateKey;
12
13 import static java.util.Objects.requireNonNull;
14
15
16
17
18 @SuppressWarnings("unused")
19 public class DefaultAuthorizationHeaderGenerator extends AuthorizationHeaderGeneratorImpl {
20
21
22
23
24
25 public DefaultAuthorizationHeaderGenerator(AsapConfiguration config) {
26 super(new NimbusJwtSerializer(), createPrivateKeyProvider(config));
27 }
28
29 private static KeyProvider<PrivateKey> createPrivateKeyProvider(AsapConfiguration config) {
30 requireNonNull(config, "config");
31 final String url = config.privateKeyUrl();
32 return url.isEmpty() ? new NullKeyProvider() : PrivateKeyProviderFactory.createPrivateKeyProvider(URI.create(url));
33 }
34 }