constants centralize

This commit is contained in:
Radek Davidek 2026-06-30 18:14:14 +02:00
parent fe53545eee
commit 29ef24a1d3
4 changed files with 51 additions and 30 deletions

View File

@ -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";
}

View File

@ -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());
}
}
}

View File

@ -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

View File

@ -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) {