diff options
5 files changed, 75 insertions, 21 deletions
| diff --git a/build.gradle b/build.gradle index b13b7f31..9eb8a547 100644 --- a/build.gradle +++ b/build.gradle @@ -58,8 +58,9 @@ subprojects {    }  	dependencies {  -		compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.24'     -		annotationProcessor group: 'org.projectlombok', name: 'lombok', version: '1.18.24' +		implementation "org.projectlombok:lombok:1.18.28"     +		annotationProcessor "org.projectlombok:lombok:1.18.28" +		testAnnotationProcessor "org.projectlombok:lombok:1.18.28"  		testImplementation 'junit:junit:4.13.2'   	} diff --git a/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/CheckSignatureParametersTest.java b/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/CheckSignatureParametersTest.java new file mode 100644 index 00000000..5ec0541b --- /dev/null +++ b/pdf-as-common/src/test/java/at/gv/egiz/pdfas/common/test/utils/CheckSignatureParametersTest.java @@ -0,0 +1,48 @@ +package at.gv.egiz.pdfas.common.test.utils; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.BlockJUnit4ClassRunner; + +import at.gv.egiz.pdfas.common.settings.DefaultSignatureProfileSettings; +import at.gv.egiz.pdfas.common.utils.CheckSignatureBlockParameters; + +@RunWith(BlockJUnit4ClassRunner.class) +public class CheckSignatureParametersTest { + +	@Test +	public void singleTest() { +		assertTrue("valid characters are not possilbe",  +				CheckSignatureBlockParameters.isValid("Güssing",  +						DefaultSignatureProfileSettings.SIG_BLOCK_PARAMETER_DEFAULT_VALUE_REGEX)); +		 +	} +	 +	@Test +	public void specialCharactersCompiletimeConfig() {		 +		Map<String, String> toTest = new HashMap<>(); +		toTest.put("test", "Güssing"); +		 +		assertTrue("valid characters are not possilbe",  +				CheckSignatureBlockParameters.checkSignatureBlockParameterMapIsValid(toTest , null, null)); +		 +	} + +	@Test +	public void specialCharactersExampleConfig() {		 +		Map<String, String> toTest = new HashMap<>(); +		toTest.put("test", "Güssing"); +		 +		assertFalse("valid characters are not possilbe",  +				CheckSignatureBlockParameters.checkSignatureBlockParameterMapIsValid(toTest ,  +						"^([A-za-z]){1,20}$", "^([\\p{Print}]){1,100}$")); +		 +	} +	 +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java index 79854641..3183f0a6 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/configuration/ConfigurationImpl.java @@ -102,10 +102,6 @@ public class ConfigurationImpl implements ISettings, Configuration {        }      } -    if (valueMap.isEmpty()) { -      return null; -    } -      return valueMap;    } diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java index 7ba6747a..e94d21e8 100644 --- a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java +++ b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/stamping/CertificateAndRequestParameterResolverTest.java @@ -4,8 +4,10 @@ import static org.junit.Assert.assertEquals;  import java.io.IOException;  import java.security.cert.CertificateException; +import java.util.HashMap;  import java.util.Map;  import java.util.Vector; +import java.util.stream.Collectors;  import org.junit.Before;  import org.junit.Test; @@ -13,6 +15,7 @@ import org.junit.runner.RunWith;  import org.junit.runners.JUnit4;  import at.gv.egiz.pdfas.common.exceptions.PDFASError; +import at.gv.egiz.pdfas.common.settings.IProfileConstants;  import at.gv.egiz.pdfas.common.settings.ISettings;  import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings;  import at.gv.egiz.pdfas.lib.api.sign.SignParameter; @@ -76,18 +79,23 @@ public class CertificateAndRequestParameterResolverTest {  	}  	private ISettings buildDummySettings() { -		return new ISettings() { -			 +	  Map<String, String> configMap = new HashMap<>(); +	  configMap.put(IProfileConstants.SIG_OBJ + "test", "test"); +	   +	  return new ISettings() { +					  		  		  		    			@Override  			public boolean hasValue(String key) { -				// TODO Auto-generated method stub -				return false; +				return configMap.containsKey(key);  			}  			@Override  			public boolean hasPrefix(String prefix) { -				// TODO Auto-generated method stub -				return false; +			  return configMap.keySet().stream() +			      .filter(el -> el.startsWith(prefix)) +			      .findFirst() +			      .isPresent(); +  			}  			@Override @@ -98,14 +106,16 @@ public class CertificateAndRequestParameterResolverTest {  			@Override  			public Map<String, String> getValuesPrefix(String prefix) { -				// TODO Auto-generated method stub -				return null; +			  return configMap.entrySet().stream() +			      .filter(el -> el.getKey().startsWith(prefix)) +			      .collect(Collectors.toMap(key -> key.getKey(), value -> value.getValue())); +  			}  			@Override  			public String getValue(String key) { -				// TODO Auto-generated method stub -				return null; +				return configMap.get(key); +				  			}  			@Override @@ -116,14 +126,13 @@ public class CertificateAndRequestParameterResolverTest {        @Override        public boolean isValue(String key) { -        // TODO Auto-generated method stub -        return false; +        return isValue(key, false);        }        @Override        public boolean isValue(String key, boolean defaultValue) { -        return defaultValue; +        return hasValue(key) ? Boolean.valueOf(getValue(key)) : defaultValue;        } -		}; +		};		  	}  } diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle index 2601d42a..3123668d 100644 --- a/pdf-as-web/build.gradle +++ b/pdf-as-web/build.gradle @@ -73,7 +73,7 @@ dependencies {  	api 'org.json:json:20230227'  	api group: 'javax.jws', name: 'javax.jws-api', version: '1.1'  	compileOnly 'javax.servlet:javax.servlet-api:3.0.1' -    testRuntime 'org.springframework:spring-test:5.3.26' +    testImplementation 'org.springframework:spring-test:5.3.28'  } | 
