Skip to content

Commit

Permalink
Merge pull request payara#5527 from kalinchan/FISH-5878
Browse files Browse the repository at this point in the history
FISH-5878 Add Certificate Alias Property Names Into Payara API as Constants
  • Loading branch information
kalinchan authored and JamesHillyard committed Jan 21, 2022
1 parent 97ac7e5 commit 976a5e8
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 62 deletions.
@@ -0,0 +1,63 @@
/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) [2021] Payara Foundation and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* https://github.com/payara/Payara/blob/master/LICENSE.txt
* See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at glassfish/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* The Payara Foundation designates this particular file as subject to the "Classpath"
* exception as provided by the Payara Foundation in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package fish.payara.security.client;

/**
* Holds the constants for JAX-RS Client and MP Client Certificate Alias
* @author Kalin Chan
* @since 5.2022.1
*/
public final class PayaraConstants {

/**
* Specifies the JAX-RS property name
*/
public static final String JAXRS_CLIENT_CERTIFICATE_ALIAS = "fish.payara.jaxrs.client.certificate.alias";

/**
* Specifies the Rest Client property name.
*/
public static final String REST_CLIENT_CERTIFICATE_ALIAS = "fish.payara.rest.client.certificate.alias";

/**
* Specifies the MP Client property name
*/
public static final String MP_CONFIG_CLIENT_CERTIFICATE_ALIAS = "payara.certificate.alias";
}

This file was deleted.

Expand Up @@ -62,8 +62,8 @@
import java.util.logging.Level;
import java.util.logging.Logger;

import static fish.payara.microprofile.jaxrs.client.ssl.PayaraConstants.PAYARA_MP_CONFIG_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.microprofile.jaxrs.client.ssl.PayaraConstants.PAYARA_REST_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.security.client.PayaraConstants.MP_CONFIG_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.security.client.PayaraConstants.REST_CLIENT_CERTIFICATE_ALIAS;

/**
* This class implements RestClientListener to evaluate the alias property and set a custom sslContext
Expand All @@ -77,7 +77,7 @@ public class RestClientSslContextAliasListener implements RestClientListener {
public void onNewClient(Class<?> serviceInterface, RestClientBuilder restClientBuilder) {
logger.log(Level.FINE, "Evaluating state of the RestClientBuilder after calling build method");
Object objectProperty = restClientBuilder.getConfiguration()
.getProperty(PAYARA_REST_CLIENT_CERTIFICATE_ALIAS);
.getProperty(REST_CLIENT_CERTIFICATE_ALIAS);

if (objectProperty instanceof String) {
String alias = (String) objectProperty;
Expand All @@ -93,7 +93,7 @@ public void onNewClient(Class<?> serviceInterface, RestClientBuilder restClientB
} else {
Config config = getConfig();
try {
String alias = config.getValue(PAYARA_MP_CONFIG_CLIENT_CERTIFICATE_ALIAS,
String alias = config.getValue(MP_CONFIG_CLIENT_CERTIFICATE_ALIAS,
String.class);
if (alias != null) {
logger.log(Level.INFO, String.format("The alias: %s is available from the MP Config", alias));
Expand All @@ -107,7 +107,7 @@ public void onNewClient(Class<?> serviceInterface, RestClientBuilder restClientB
}
} catch (NoSuchElementException e) {
logger.log(Level.FINE, String.format("The MP config property %s was not set",
PAYARA_MP_CONFIG_CLIENT_CERTIFICATE_ALIAS));
MP_CONFIG_CLIENT_CERTIFICATE_ALIAS));
}
}
}
Expand Down
Expand Up @@ -60,8 +60,8 @@
import java.security.*;
import java.security.cert.CertificateException;

import static fish.payara.microprofile.jaxrs.client.ssl.PayaraConstants.PAYARA_MP_CONFIG_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.microprofile.jaxrs.client.ssl.PayaraConstants.PAYARA_REST_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.security.client.PayaraConstants.MP_CONFIG_CLIENT_CERTIFICATE_ALIAS;
import static fish.payara.security.client.PayaraConstants.REST_CLIENT_CERTIFICATE_ALIAS;
import static org.mockito.Mockito.*;

@RunWith(MockitoJUnitRunner.class)
Expand All @@ -87,7 +87,7 @@ public void restClientAliasPropertySslContextTest() throws Exception {
KeyStore[] keyStores = new KeyStore[]{getKeyStore()};

when(restClientBuilder.getConfiguration()).thenReturn(configuration);
when(configuration.getProperty(PAYARA_REST_CLIENT_CERTIFICATE_ALIAS)).thenReturn("myKey");
when(configuration.getProperty(REST_CLIENT_CERTIFICATE_ALIAS)).thenReturn("myKey");
doReturn(managers).when(restClientSslContextAliasListener).getKeyManagers();
doReturn(keyStores).when(restClientSslContextAliasListener).getKeyStores();

Expand All @@ -105,11 +105,11 @@ public void restClientAliasPropertyFromMPConfigSslContextTest() throws Exception
KeyStore[] keyStores = new KeyStore[]{getKeyStore()};

when(restClientBuilder.getConfiguration()).thenReturn(configuration);
when(configuration.getProperty(PAYARA_REST_CLIENT_CERTIFICATE_ALIAS)).thenReturn(null);
when(configuration.getProperty(REST_CLIENT_CERTIFICATE_ALIAS)).thenReturn(null);
doReturn(managers).when(restClientSslContextAliasListener).getKeyManagers();
doReturn(keyStores).when(restClientSslContextAliasListener).getKeyStores();
doReturn(config).when(restClientSslContextAliasListener).getConfig();
when(config.getValue(PAYARA_MP_CONFIG_CLIENT_CERTIFICATE_ALIAS, String.class)).thenReturn("myKey");
when(config.getValue(MP_CONFIG_CLIENT_CERTIFICATE_ALIAS, String.class)).thenReturn("myKey");

restClientSslContextAliasListener.onNewClient(RestClientBuilder.class, restClientBuilder);

Expand Down

0 comments on commit 976a5e8

Please sign in to comment.