Skip to content

Commit

Permalink
More test porting
Browse files Browse the repository at this point in the history
  • Loading branch information
andreaceccanti committed Oct 27, 2021
1 parent ed30322 commit 0417ad1
Show file tree
Hide file tree
Showing 17 changed files with 124 additions and 237 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@

import org.hibernate.validator.constraints.NotBlank;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;

@Validated
@ConfigurationProperties(prefix = "saml.idp-metadata")
public class IamSamlIdpMetadataProperties {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.exception.VelocityException;
import org.opensaml.saml2.metadata.provider.FileBackedHTTPMetadataProvider;
import org.opensaml.saml2.metadata.provider.FilesystemMetadataProvider;
import org.opensaml.saml2.metadata.provider.MetadataFilter;
Expand Down Expand Up @@ -594,6 +593,11 @@ private List<MetadataProvider> metadataProviders(Timer metadataFetchTimer, Parse
HttpClient httpClient = httpClient();

for (IamSamlIdpMetadataProperties p : samlProperties.getIdpMetadata()) {

if (Strings.isNullOrEmpty(p.getMetadataUrl())) {
throw new IllegalStateException("Null or empty metadata url");
}

String trimmedMedataUrl = p.getMetadataUrl().trim();

if (trimmedMedataUrl.startsWith("classpath:")) {
Expand Down Expand Up @@ -839,7 +843,7 @@ public SAMLProcessor processor(VelocityEngine velocityEngine) {
}

@Bean
public VelocityEngine velocityEngine() throws VelocityException, IOException {
public VelocityEngine velocityEngine() {
return VelocityFactory.getEngine();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,30 +15,19 @@
*/
package it.infn.mw.iam.test;

import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter;

public class MockMvcTestSupport {

@Autowired
private WebApplicationContext context;

protected MockMvc mvc;

@Autowired
protected MockOAuth2Filter mockOAuth2Filter;

public void initMockMvc() {
mvc =
MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).alwaysDo(log()).build();
}

public MockMvc getMvc() {
return mvc;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,14 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.WebIntegrationTest;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponents;
Expand All @@ -46,13 +45,14 @@
import it.infn.mw.iam.IamLoginService;
import it.infn.mw.iam.authn.ExternalAuthenticationRegistrationInfo;
import it.infn.mw.iam.authn.ExternalAuthenticationRegistrationInfo.ExternalAuthenticationType;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.oidc.CodeRequestHolder;
import it.infn.mw.iam.test.util.oidc.MockRestTemplateFactory;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, OidcTestConfig.class})
@WebIntegrationTest(randomPort = true)
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class, OidcTestConfig.class},
webEnvironment = WebEnvironment.RANDOM_PORT)
public class OidcExternalAuthenticationTests extends OidcExternalAuthenticationTestsSupport {

@Before
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,15 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.WebIntegrationTest;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponents;
Expand All @@ -51,14 +50,14 @@
import it.infn.mw.iam.authn.common.ValidatorResolver;
import it.infn.mw.iam.test.ext_authn.oidc.OidcExternalAuthenticationTestsSupport;
import it.infn.mw.iam.test.ext_authn.oidc.OidcTestConfig;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.oidc.CodeRequestHolder;
import it.infn.mw.iam.test.util.oidc.MockRestTemplateFactory;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(
classes = {IamLoginService.class, OidcTestConfig.class, OidcValidatorIntegrationTests.Config.class})
@WebIntegrationTest(randomPort = true)
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class, OidcTestConfig.class,
OidcValidatorIntegrationTests.Config.class}, webEnvironment = WebEnvironment.RANDOM_PORT)
public class OidcValidatorIntegrationTests extends OidcExternalAuthenticationTestsSupport {

@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,21 @@

import javax.xml.xpath.XPathExpressionException;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.test.context.junit4.SpringRunner;

import it.infn.mw.iam.IamLoginService;
import it.infn.mw.iam.test.MockMvcTestSupport;
import it.infn.mw.iam.test.core.CoreControllerTestSupport;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, CoreControllerTestSupport.class})
@WebAppConfiguration

@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@TestPropertySource(properties = {"saml.local-metadata.generated=false",
"saml.local-metadata.locationUrl=classpath:/saml/metadata/iam-md.xml"})
@Transactional
public class LocalMetadataLoadingTests extends MockMvcTestSupport {

@Before
public void setup() {
initMockMvc();
}

@Test
public void testLocalMetadataLoading() throws XPathExpressionException, Exception {
mvc.perform(get("/saml/metadata"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,31 +16,23 @@
package it.infn.mw.iam.test.ext_authn.saml;

import static org.hamcrest.CoreMatchers.is;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.WebApplicationContext;

import it.infn.mw.iam.IamLoginService;
import it.infn.mw.iam.test.util.WithAnonymousUser;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class})
@WebAppConfiguration
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@TestPropertySource(properties = {"saml.login-shortcuts[0].name=test",
"saml.login-shortcuts[0].entityId=https://idptestbed/idp/shibboleth",
"saml.login-shortcuts[0].loginButton.text=Sign in with Test IDP"
Expand All @@ -50,18 +42,8 @@
public class LoginShortcutsTests {

@Autowired
private WebApplicationContext context;

private MockMvc mvc;

@Before
public void setup() {
mvc = MockMvcBuilders.webAppContextSetup(context)
.apply(springSecurity())
.alwaysDo(log())
.build();
}

@Test
public void getLoginShortcutsConfiguration() throws Exception {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,47 +17,32 @@

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.WebApplicationContext;

import it.infn.mw.iam.IamLoginService;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class})
@WebAppConfiguration
@TestPropertySource(properties = {"saml.idp-metadata[0].require-sirtfi=true"})
@Transactional
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;

@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class}, webEnvironment = WebEnvironment.MOCK,
properties = {"saml.idp-metadata[0].require-sirtfi=true",
"saml.idp-metadata[0].metadata-url=classpath:/saml/idp-metadata.xml"
})
public class MetadataFilterIntegrationTests {

@Autowired
private WebApplicationContext context;

private MockMvc mvc;

@Before
public void setup() {
mvc = MockMvcBuilders.webAppContextSetup(context)
.apply(springSecurity())
.alwaysDo(log())
.build();
}

@Test
public void sirtfiFilteringWorkAsExpected() throws Exception {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,46 +15,28 @@
*/
package it.infn.mw.iam.test.ext_authn.saml;

import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.WebApplicationContext;

import it.infn.mw.iam.IamLoginService;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class})
@WebAppConfiguration
@TestPropertySource(properties = {"saml.idp-metadata[0].require-valid-signature=true"})
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@TestPropertySource(properties = {"saml.idp-metadata[0].require-valid-signature=true",
"saml.idp-metadata[0].metadata-url=classpath:/saml/idp-metadata.xml"})
public class MetadataInvalidSignatureIntegrationTests {
@Autowired
private WebApplicationContext context;

@Autowired
private MockMvc mvc;

@Before
public void setup() {
mvc = MockMvcBuilders.webAppContextSetup(context)
.apply(springSecurity())
.alwaysDo(log())
.build();
}

@Test
public void idpEndpointReturnsEmptyListAsSignatureValidationFailed() throws Exception {

Expand Down
Loading

0 comments on commit 0417ad1

Please sign in to comment.