diff --git a/src/main/java/cz/trask/adfs/AdfsAuthMsConstants.java b/src/main/java/cz/trask/adfs/AdfsAuthMsConstants.java new file mode 100644 index 0000000..da9591f --- /dev/null +++ b/src/main/java/cz/trask/adfs/AdfsAuthMsConstants.java @@ -0,0 +1,39 @@ +package cz.trask.adfs; + +public final class AdfsAuthMsConstants { + + public static final String AUTH_PREFIX_BEARER = "Bearer "; + public static final String HEADER_AUTHORIZATION = "Authorization"; + + // Error codes + public static final String ERR_SERVER_ERROR = "server_error"; + public static final String ERR_TOO_MANY_REQUESTS = "too_many_requests"; + public static final String ERR_INVALID_CONFIG = "invalid_configuration"; + public static final String ERR_PROCESS_FAILED = "process_failed"; + + // AdfsTokenService constants + public static final String PARAM_RESOURCE = "resource"; + public static final String PARAM_CLIENT_ID = "client_id"; + public static final String PARAM_CLIENT_ASSERTION_TYPE = "client_assertion_type"; + public static final String PARAM_CLIENT_ASSERTION = "client_assertion"; + public static final String PARAM_GRANT_TYPE = "grant_type"; + + public static final String GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials"; + public static final String CLIENT_ASSERTION_TYPE = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer"; + + public static final String HEADER_CONTENT_TYPE = "Content-Type"; + public static final String CONTENT_TYPE_FORM = "application/x-www-form-urlencoded"; + public static final String METHOD_POST = "POST"; + + // Config validation names + public static final String CFG_TOKEN_URL = "tokenUrl"; + public static final String CFG_AUDIENCE = "audience"; + public static final String CFG_RESOURCE = "resource"; + public static final String CFG_CLIENT_IDS = "clientIds"; + public static final String CFG_CERTIFICATE = "certificate"; + public static final String CFG_PRIVATE_KEY = "privateKey"; + + // SSL System properties + public static final String PROP_TRUST_STORE = "javax.net.ssl.trustStore"; + public static final String PROP_TRUST_STORE_PASSWORD = "javax.net.ssl.trustStorePassword"; +} diff --git a/src/main/java/cz/trask/adfs/AdfsAuthMsServer.java b/src/main/java/cz/trask/adfs/AdfsAuthMsServer.java index da850c6..a91ca13 100644 --- a/src/main/java/cz/trask/adfs/AdfsAuthMsServer.java +++ b/src/main/java/cz/trask/adfs/AdfsAuthMsServer.java @@ -23,6 +23,7 @@ import cz.trask.adfs.config.AppConfig.ContextConfig; import cz.trask.adfs.config.ConfigurationManager; import cz.trask.adfs.context.BaseContextHandler; import cz.trask.adfs.service.AdfsTokenService; +import static cz.trask.adfs.AdfsAuthMsConstants.*; public class AdfsAuthMsServer { @@ -69,10 +70,10 @@ public class AdfsAuthMsServer { private void applySslTrustProperties(AppConfig config) { if (config.getTrustStore() != null && !config.getTrustStore().isBlank()) { - logger.info("Setting javax.net.ssl.trustStore to {}", config.getTrustStore()); - System.setProperty("javax.net.ssl.trustStore", config.getTrustStore()); + logger.info("Setting {} to {}", PROP_TRUST_STORE, config.getTrustStore()); + System.setProperty(PROP_TRUST_STORE, config.getTrustStore()); if (config.getTrustStorePassword() != null) { - System.setProperty("javax.net.ssl.trustStorePassword", config.getTrustStorePassword()); + System.setProperty(PROP_TRUST_STORE_PASSWORD, config.getTrustStorePassword()); } } } diff --git a/src/main/java/cz/trask/adfs/context/ProcessHandler.java b/src/main/java/cz/trask/adfs/context/ProcessHandler.java index 99708e6..72ced5f 100644 --- a/src/main/java/cz/trask/adfs/context/ProcessHandler.java +++ b/src/main/java/cz/trask/adfs/context/ProcessHandler.java @@ -13,16 +13,10 @@ import com.sun.net.httpserver.Headers; import com.sun.net.httpserver.HttpExchange; import cz.trask.adfs.dto.TokenPayloadIdp; +import static cz.trask.adfs.AdfsAuthMsConstants.*; public class ProcessHandler extends BaseContextHandler { - private static final String AUTH_PREFIX_BEARER = "Bearer "; - - private static final String ERR_SERVER_ERROR = "server_error"; - private static final String ERR_TOO_MANY_REQUESTS = "too_many_requests"; - private static final String ERR_INVALID_CONFIG = "invalid_configuration"; - private static final String ERR_PROCESS_FAILED = "process_failed"; - private final AtomicInteger clientIdIndex = new AtomicInteger(0); @Override diff --git a/src/main/java/cz/trask/adfs/service/AdfsTokenService.java b/src/main/java/cz/trask/adfs/service/AdfsTokenService.java index d1e083a..53e744d 100644 --- a/src/main/java/cz/trask/adfs/service/AdfsTokenService.java +++ b/src/main/java/cz/trask/adfs/service/AdfsTokenService.java @@ -33,25 +33,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import cz.trask.adfs.config.AdfsConfig; import cz.trask.adfs.dto.TokenPayloadIdp; +import static cz.trask.adfs.AdfsAuthMsConstants.*; public class AdfsTokenService { private static final Logger logger = LogManager.getLogger(AdfsTokenService.class); - private static final String PARAM_RESOURCE = "resource"; - private static final String PARAM_CLIENT_ID = "client_id"; - private static final String PARAM_CLIENT_ASSERTION_TYPE = "client_assertion_type"; - private static final String PARAM_CLIENT_ASSERTION = "client_assertion"; - private static final String PARAM_GRANT_TYPE = "grant_type"; - - private static final String GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials"; - private static final String CLIENT_ASSERTION_TYPE = - "urn:ietf:params:oauth:client-assertion-type:jwt-bearer"; - - private static final String HEADER_CONTENT_TYPE = "Content-Type"; - private static final String CONTENT_TYPE_FORM = "application/x-www-form-urlencoded"; - private static final String METHOD_POST = "POST"; - private final AdfsConfig config; private final ObjectMapper objectMapper; @@ -258,14 +245,14 @@ public class AdfsTokenService { } private void validateConfig() { - requireValue(config.getTokenUrl(), "tokenUrl"); - requireValue(config.getAudience(), "audience"); - requireValue(config.getResource(), "resource"); + requireValue(config.getTokenUrl(), CFG_TOKEN_URL); + requireValue(config.getAudience(), CFG_AUDIENCE); + requireValue(config.getResource(), CFG_RESOURCE); if (config.getClientIds() == null || config.getClientIds().isEmpty()) { - throw new IllegalArgumentException("Missing or empty config value: clientIds"); + throw new IllegalArgumentException("Missing or empty config value: " + CFG_CLIENT_IDS); } - requireValue(config.getCertificate(), "certificate"); - requireValue(config.getPrivateKey(), "privateKey"); + requireValue(config.getCertificate(), CFG_CERTIFICATE); + requireValue(config.getPrivateKey(), CFG_PRIVATE_KEY); } private void requireValue(String value, String name) {