Skip to content

Commit f8acc32

Browse files
committed
Fixed tests after upgrade open-saml
1 parent da85bc8 commit f8acc32

10 files changed

+26
-374
lines changed

src/main/java/saml/DefaultSAMLService.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package saml;
22

3+
import jakarta.servlet.http.HttpServletResponse;
34
import lombok.SneakyThrows;
4-
import net.shibboleth.shared.xml.impl.BasicParserPool;
55
import net.shibboleth.shared.resolver.CriteriaSet;
6-
import net.shibboleth.shared.xml.impl.BasicParserPool;
76
import net.shibboleth.shared.xml.SerializeSupport;
7+
import net.shibboleth.shared.xml.impl.BasicParserPool;
88
import org.apache.commons.io.IOUtils;
99
import org.apache.commons.lang3.StringUtils;
1010
import org.apache.commons.text.StringEscapeUtils;
@@ -53,7 +53,6 @@
5353
import saml.parser.EncodingUtils;
5454
import saml.parser.OpenSamlVelocityEngine;
5555

56-
import jakarta.servlet.http.HttpServletResponse;
5756
import javax.xml.namespace.QName;
5857
import java.io.ByteArrayInputStream;
5958
import java.io.IOException;

src/main/java/saml/crypto/X509Utilities.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package saml.crypto;
22

33

4+
import jakarta.xml.bind.DatatypeConverter;
45
import lombok.SneakyThrows;
56
import org.bouncycastle.openssl.PEMKeyPair;
67
import org.bouncycastle.openssl.PEMParser;
78
import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter;
89

9-
import javax.xml.bind.DatatypeConverter;
1010
import java.io.ByteArrayInputStream;
1111
import java.io.CharArrayReader;
1212
import java.security.KeyPair;

src/main/java/saml/parser/OpenSamlVelocityEngine.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package saml.parser;
22

3-
import org.apache.velocity.app.VelocityEngine;
4-
//import net.shibboleth.utilities.java.support.velocity.VelocityEngine;
3+
54
import org.apache.velocity.VelocityContext;
5+
import org.apache.velocity.app.VelocityEngine;
66
import org.slf4j.helpers.NOPLogger;
77

88
import java.io.Writer;
@@ -12,16 +12,19 @@
1212

1313
public class OpenSamlVelocityEngine {
1414

15-
private static final String templateId = "/templates/saml2-post-binding.vm";
16-
private final org.apache.velocity.app.VelocityEngine velocityEngine;
15+
private static final String templateId = "/templates/saml2-post-binding.vm";
16+
private final VelocityEngine velocityEngine;
1717

1818
public OpenSamlVelocityEngine() {
19-
this.velocityEngine = VelocityEngine.newVelocityEngine();
19+
this.velocityEngine = new VelocityEngine();
20+
velocityEngine.setProperty("resource.loader.string.class", "org.apache.velocity.runtime.resource.loader.StringResourceLoader");
21+
velocityEngine.setProperty("resource.loader.classpath.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
22+
velocityEngine.setProperty("resource.loaders", "classpath, string");
2023
velocityEngine.setProperty("runtime.log.instance", NOPLogger.NOP_LOGGER);
2124
velocityEngine.setProperty("velocimacro.library.autoreload", false);
2225
velocityEngine.setProperty("resource.loader.file.cache", true);
2326
velocityEngine.setProperty("resource.loader.file.modificationCheckInterval", -1);
24-
velocityEngine.init();
27+
this.velocityEngine.init();
2528
}
2629

2730
public void process(Map<String, Object> model, Writer out) {

src/test/java/saml/DefaultSAMLServiceTest.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package saml;
22

33
import lombok.SneakyThrows;
4-
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
5-
import net.shibboleth.utilities.java.support.resolver.ResolverException;
6-
import net.shibboleth.utilities.java.support.xml.SerializeSupport;
4+
import net.shibboleth.shared.resolver.CriteriaSet;
5+
import net.shibboleth.shared.resolver.ResolverException;
6+
import net.shibboleth.shared.xml.SerializeSupport;
77
import org.apache.commons.io.IOUtils;
88
import org.jsoup.Jsoup;
99
import org.jsoup.nodes.Document;
@@ -33,10 +33,7 @@
3333
import java.security.KeyStore;
3434
import java.text.SimpleDateFormat;
3535
import java.time.Instant;
36-
import java.util.Date;
37-
import java.util.List;
38-
import java.util.Map;
39-
import java.util.UUID;
36+
import java.util.*;
4037
import java.util.stream.Collectors;
4138
import java.util.stream.Stream;
4239

@@ -267,7 +264,7 @@ void sendResponseNoAuthnContext() {
267264

268265
StatusCode statusCode = response.getStatus().getStatusCode();
269266
StatusCode innerStatusCode = statusCode.getStatusCode();
270-
assertEquals("urn:oasis:names:tc:SAML:2.0:status:Responder", statusCode.getValue() );
267+
assertEquals("urn:oasis:names:tc:SAML:2.0:status:Responder", statusCode.getValue());
271268
assertEquals(SAMLStatus.NO_AUTHN_CONTEXT.getStatus(), innerStatusCode.getValue());
272269

273270
assertEquals("Not Ok", response.getStatus().getStatusMessage().getValue());
@@ -334,11 +331,15 @@ void createAuthnRequest() {
334331
*/
335332
@Test
336333
void testSignatureWrappingAttacks() {
337-
File[] files = new File(DefaultSAMLService.class.getClassLoader().getResource("req-wrapping").getPath()).listFiles();
338-
Stream.of(files).forEach(file -> {
339-
String authnRequestXML = readFile("req-wrapping/" + file.getName());
340-
assertThrows(SignatureException.class, () -> defaultSAMLService.parseAuthnRequest(authnRequestXML, false, false));
341-
});
334+
Stream.of(Objects.requireNonNull(new File(Objects.requireNonNull(DefaultSAMLService.class.getClassLoader()
335+
.getResource("req-wrapping")).getPath())
336+
.listFiles()))
337+
.sorted(Comparator.comparing(File::getName))
338+
.forEach(file -> {
339+
String authnRequestXML = readFile("req-wrapping/" + file.getName());
340+
assertThrows(SignatureException.class, () ->
341+
defaultSAMLService.parseAuthnRequest(authnRequestXML, false, false));
342+
});
342343
}
343344

344345
/**

src/test/resources/req-wrapping/withSignatureReqACEqualID.xml

Lines changed: 0 additions & 76 deletions
This file was deleted.

src/test/resources/req-wrapping/withSignatureReqACMissingID.xml

Lines changed: 0 additions & 76 deletions
This file was deleted.

0 commit comments

Comments
 (0)