package cz.abclinuxu.datoveschranky.common.impl;
import java.io.Serializable;
import java.security.KeyStore;
/**
*
* Konfigurace připojení k ISDS.
*
* @author Vaclav Rosecky <xrosecky 'at' gmail 'dot' com>
*/
public class Config implements Serializable {
private static final long serialVersionUID = 3L;
/**
* URL testovacího provozu
*/
@Deprecated
public static final String TEST_URL = "ws1.czebox.cz"; // was ws1.czebox.cz
/**
* URL produkčního prostředí
*/
@Deprecated
public static final String PRODUCTION_URL = "ws1.mojedatovaschranka.cz"; // was ws1.mojedatovaschranka.cz
private final DataBoxEnvironment dataBoxEnvironment;
// private final String url;
private final KeyStore keyStore;
/**
* Vytvoří konfiguraci s daným URL a s KeyStore načteným z resources.
* Konstruktor je určen pro testovací účely, pro realné nasazení použijte
* vlastní keyStore.
*
* @see Config#constructor((String, KeyStore) konstruktor Config.
*
* @param servURL URL služby (TEST_URL či PRODUCTION_URL)
*
*/
@Deprecated
public Config(String servURL) {
if (servURL.equals(TEST_URL)) {
this.dataBoxEnvironment = DataBoxEnvironment.TEST;
} else if (servURL.equals(PRODUCTION_URL)) {
this.dataBoxEnvironment = DataBoxEnvironment.PRODUCTION;
} else {
throw new IllegalArgumentException("servURL");
}
this.keyStore = Utils.createTrustStore();
}
public Config(DataBoxEnvironment dbe) {
this.dataBoxEnvironment = dbe;
this.keyStore = Utils.createTrustStore();
}
/**
* Vytvoří konfiguraci s daným URL a příslušným klíči
*
* @param servURL URL služby (TEST_URL či PRODUCTION_URL)
* @param keys instance třídy KeyStore, která obsahuje certifikáty
* nutné pro přihlášení do ISDS, certifikáty, kterými je podepsána obálka
* zprávy a certifikáty časových razítek.
*
*/
@Deprecated
public Config(String servURL, KeyStore keys) {
if (servURL.equals(TEST_URL)) {
this.dataBoxEnvironment = DataBoxEnvironment.TEST;
} else if (servURL.equals(PRODUCTION_URL)) {
this.dataBoxEnvironment = DataBoxEnvironment.PRODUCTION;
} else {
throw new IllegalArgumentException("servURL");
}
this.keyStore = keys;
}
public String getServiceURL() {
// return "https://" + url + "/cert/DS/"; // was "/DS/"
return "https://" + dataBoxEnvironment.basicURL() + "/DS/";
}
public String getServiceURLClientCert() {
return "https://" + dataBoxEnvironment.clientCertURL() + "/cert/DS/";
}
@Deprecated
public String getLoginScope() {
return "login." + dataBoxEnvironment.basicURL();
}
public KeyStore getKeyStore() {
return keyStore;
}
}