Skip to content

Commit

Permalink
Merge branch 'DD4J-170' into 'master'
Browse files Browse the repository at this point in the history
Dd4 j 170

See merge request !54
  • Loading branch information
smirnova committed Jan 24, 2018
2 parents 03a3bbb + b0ea9f1 commit 93690cd
Show file tree
Hide file tree
Showing 8 changed files with 822 additions and 4 deletions.
Expand Up @@ -16,6 +16,7 @@

import org.digidoc4j.impl.asic.tsl.ClonedTslCertificateSource;
import org.digidoc4j.impl.asic.tsl.LazyCertificatePool;
import org.digidoc4j.impl.asic.tsl.LazyTslCertificateSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -44,7 +45,12 @@ private void readObject(ObjectInputStream stream) throws IOException, ClassNotFo

@Override
public CertificateSource getTrustedCertSource() {
logger.debug("");
if (trustedCertSource instanceof ClonedTslCertificateSource){
if (((ClonedTslCertificateSource)trustedCertSource).getTrustedListsCertificateSource() != null){
logger.debug("get TrustedListCertificateSource from ClonedTslCertificateSource");
return ((ClonedTslCertificateSource)trustedCertSource).getTrustedListsCertificateSource();
}
}
return commonCertificateVerifier.getTrustedCertSource();
}

Expand Down Expand Up @@ -74,10 +80,14 @@ public void setOcspSource(final OCSPSource ocspSource) {

@Override
public void setTrustedCertSource(final CertificateSource trustedCertSource) {
logger.debug("");
ClonedTslCertificateSource clonedTslCertificateSource = new ClonedTslCertificateSource(trustedCertSource);
this.trustedCertSource = clonedTslCertificateSource;
commonCertificateVerifier.setTrustedCertSource(clonedTslCertificateSource);
if (trustedCertSource instanceof LazyTslCertificateSource){
logger.debug("get TrustedCertSource from LazyTslCertificateSource");
commonCertificateVerifier.setTrustedCertSource(((LazyTslCertificateSource)trustedCertSource).getTslLoader().getTslCertificateSource());
} else{
commonCertificateVerifier.setTrustedCertSource(clonedTslCertificateSource);
}
}

@Override
Expand Down
Expand Up @@ -18,6 +18,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import eu.europa.esig.dss.tsl.TrustedListsCertificateSource;
import eu.europa.esig.dss.x509.CertificatePool;
import eu.europa.esig.dss.x509.CertificateSource;
import eu.europa.esig.dss.x509.CertificateToken;
Expand All @@ -32,6 +33,7 @@ public class ClonedTslCertificateSource implements CertificateSource {
private static final Logger logger = LoggerFactory.getLogger(ClonedTslCertificateSource.class);
private CertificateSource certificateSource;
private CertificateSource clonedCertificateSource;
private TrustedListsCertificateSource trustedListsCertificateSource;

public ClonedTslCertificateSource(CertificateSource certificateSource) {
logger.debug("Instantiating cloned tsl cert source");
Expand All @@ -49,12 +51,22 @@ private CertificateSource getCertificateSource() {
private void initializeClonedTsl() {
if (certificateSource instanceof LazyTslCertificateSource) {
((LazyTslCertificateSource) certificateSource).refreshIfCacheExpired();
trustedListsCertificateSource = ((LazyTslCertificateSource) certificateSource).getTslLoader().getTslCertificateSource();
}
logger.debug("Cloning TSL");
clonedCertificateSource = (CertificateSource) SerializationUtils.clone(certificateSource);
logger.debug("Finished cloning TSL");
}

/**
* Get TrustedListsCertificateSource object defined in TslLoader.
*
* @return TrustedListsCertificateSource
*/
public TrustedListsCertificateSource getTrustedListsCertificateSource(){
return trustedListsCertificateSource;
}

@Override
public CertificatePool getCertificatePool() {
return getCertificateSource().getCertificatePool();
Expand Down
Expand Up @@ -148,6 +148,15 @@ private void populateTsl() {
}
}

/**
* Get TslLoader
*
* @return TslLoader
*/
public TslLoader getTslLoader(){
return tslLoader;
}

private boolean isCacheExpired() {
if (lastCacheReloadingTime == null) {
return true;
Expand Down

0 comments on commit 93690cd

Please sign in to comment.