Skip to content

Commit

Permalink
More test fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
andreaceccanti committed Oct 28, 2021
1 parent 003a486 commit 481a456
Show file tree
Hide file tree
Showing 20 changed files with 135 additions and 301 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
public ClientCredentialsTokenEndpointFilter ccFilter() throws Exception {
ClientCredentialsTokenEndpointFilter filter =
new ClientCredentialsTokenEndpointFilter(TOKEN_ENDPOINT);
filter.setAllowOnlyPost(true);
filter.setAuthenticationManager(authenticationManager());
return filter;
}
Expand Down Expand Up @@ -108,7 +109,7 @@ protected void configure(HttpSecurity http) throws Exception {
.antMatchers(TOKEN_ENDPOINT).authenticated()
.and()
.addFilterBefore(jwtBearerFilter(), AbstractPreAuthenticatedProcessingFilter.class)
.addFilterBefore(ccFilter(), BasicAuthenticationFilter.class)
.addFilterAfter(ccFilter(), BasicAuthenticationFilter.class)
.exceptionHandling()
.authenticationEntryPoint(authenticationEntryPoint)
.accessDeniedHandler(new OAuth2AccessDeniedHandler())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ logging.level.org.opensaml.saml2.metadata.provider=INFO
#logging.level.=DEBUG
#logging.level.root=DEBUG


# Velocity logging (only used for SAML templates)
# logging.level.org.apache.velocity==TRACE

Expand All @@ -48,7 +47,7 @@ logging.level.org.opensaml.saml2.metadata.provider=INFO
# Notification service logging
#logging.level.it.infn.mw.iam.notification=DEBUG

#logging.level.org.springframework.security=DEBUG
# logging.level.org.springframework.security=DEBUG
#logging.level.org.springframework.web=DEBUG

# logging.level.com.fasterxml.jackson=INFO
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,15 @@
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.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.persistence.repository.IamOAuthAccessTokenRepository;
import it.infn.mw.iam.persistence.repository.IamOAuthRefreshTokenRepository;
import it.infn.mw.iam.test.api.tokens.TestTokensUtils;
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
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
public class OrphanTokensTests extends TestTokensUtils {

@Autowired
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@

import static org.hamcrest.Matchers.hasSize;
import static org.junit.Assert.assertThat;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import java.io.UnsupportedEncodingException;
Expand All @@ -30,15 +28,12 @@
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.MediaType;
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 com.fasterxml.jackson.databind.ObjectMapper;

Expand All @@ -47,13 +42,14 @@
import it.infn.mw.iam.persistence.repository.IamAccountRepository;
import it.infn.mw.iam.registration.RegistrationRequestDto;
import it.infn.mw.iam.test.core.CoreControllerTestSupport;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.notification.MockNotificationDelivery;
import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, NotificationTestConfig.class, CoreControllerTestSupport.class})
@WebAppConfiguration
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class, CoreControllerTestSupport.class,
NotificationTestConfig.class}, webEnvironment = WebEnvironment.MOCK)
@TestPropertySource(properties = {"notification.disable=true"})
public class NotificationDisabledTests {

Expand All @@ -71,24 +67,18 @@ public class NotificationDisabledTests {
@Autowired
ObjectMapper mapper;

@Autowired
private WebApplicationContext context;

@Autowired
private IamAccountRepository accountRepository;

@Autowired
private MockOAuth2Filter mockOAuth2Filter;

@Autowired
private MockMvc mvc;

@Before
public void setUp() throws InterruptedException {
mockOAuth2Filter.cleanupSecurityContext();
mvc = MockMvcBuilders.webAppContextSetup(context)
.apply(springSecurity())
.alwaysDo(log())
.build();
notificationDelivery.clearDeliveredNotifications();
}

Expand All @@ -99,7 +89,6 @@ public void tearDown() throws InterruptedException {
}



@Test
public void testDisableNotificationOption() throws UnsupportedEncodingException, Exception {
RegistrationRequestDto req = new RegistrationRequestDto();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,13 @@
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.MediaType;
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 org.springframework.web.util.NestedServletException;

Expand All @@ -45,14 +44,14 @@
import it.infn.mw.iam.registration.RegistrationRequestDto;
import it.infn.mw.iam.test.core.CoreControllerTestSupport;
import it.infn.mw.iam.test.util.WithAnonymousUser;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.notification.MockNotificationDelivery;
import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, NotificationTestConfig.class,
CoreControllerTestSupport.class})
@WebAppConfiguration
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class, CoreControllerTestSupport.class,
NotificationTestConfig.class}, webEnvironment = WebEnvironment.MOCK)
@WithAnonymousUser
@TestPropertySource(
properties = {"notification.disable=false", "spring.freemarker.template-loader-path=/invalid/"})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,15 +35,14 @@
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.MediaType;
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.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.WebApplicationContext;

import com.fasterxml.jackson.databind.ObjectMapper;
Expand All @@ -55,14 +54,14 @@
import it.infn.mw.iam.registration.RegistrationRequestDto;
import it.infn.mw.iam.test.core.CoreControllerTestSupport;
import it.infn.mw.iam.test.util.WithAnonymousUser;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.notification.MockNotificationDelivery;
import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, NotificationTestConfig.class,
CoreControllerTestSupport.class})
@WebAppConfiguration
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@SpringBootTest(classes = {IamLoginService.class, CoreControllerTestSupport.class,
NotificationTestConfig.class}, webEnvironment = WebEnvironment.MOCK)
@WithAnonymousUser
@TestPropertySource(properties = {"notification.disable=false"})
public class RegistrationFlowNotificationTests {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,13 @@
package it.infn.mw.iam.test.oauth;

import static com.google.common.base.Strings.isNullOrEmpty;
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.log;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;

import com.fasterxml.jackson.databind.ObjectMapper;

Expand All @@ -38,20 +34,12 @@ public class EndpointsTestUtils {
private static final String DEFAULT_CLIENT_SECRET = "secret";
private static final String DEFAULT_SCOPE = "";


@Autowired
protected ObjectMapper mapper;

@Autowired
protected WebApplicationContext context;

protected MockMvc mvc;

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

public AccessTokenGetter buildAccessTokenGetter() {
return new AccessTokenGetter().grantType("password")
.clientId(DEFAULT_CLIENT_ID)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,35 +24,23 @@
import java.util.Date;
import java.util.UUID;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mitre.jwt.signer.service.JWTSigningAndValidationService;
import org.springframework.boot.test.SpringApplicationConfiguration;
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 com.nimbusds.jose.JWSAlgorithm;
import com.nimbusds.jose.JWSHeader;
import com.nimbusds.jwt.JWT;
import com.nimbusds.jwt.JWTClaimsSet;
import com.nimbusds.jwt.SignedJWT;

import it.infn.mw.iam.IamLoginService;
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
@Transactional
public class JWTBearerClientAuthenticationIntegrationTests extends JWTBearerClientAuthenticationIntegrationTestSupport {


@Before
public void setup() throws Exception {
buildMockMvc();
}
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
public class JWTBearerClientAuthenticationIntegrationTests
extends JWTBearerClientAuthenticationIntegrationTestSupport {

@Test
public void testSymmetricJwtAuth() throws Exception {
Expand All @@ -74,14 +62,14 @@ public void testAsymmetricJwtAuth() throws Exception {

JWTSigningAndValidationService signer = loadSignerService();
JWTClaimsSet claimsSet = new JWTClaimsSet.Builder().subject(CLIENT_ID_PRIVATE_KEY_JWT)
.issuer(CLIENT_ID_PRIVATE_KEY_JWT)
.expirationTime(Date.from(Instant.now().plusSeconds(600)))
.audience(singletonList(TOKEN_ENDPOINT_AUDIENCE))
.jwtID(UUID.randomUUID().toString())
.build();
.issuer(CLIENT_ID_PRIVATE_KEY_JWT)
.expirationTime(Date.from(Instant.now().plusSeconds(600)))
.audience(singletonList(TOKEN_ENDPOINT_AUDIENCE))
.jwtID(UUID.randomUUID().toString())
.build();

JWSHeader header = new JWSHeader.Builder(JWSAlgorithm.RS256).keyID("rsa1").build();

SignedJWT jwt = new SignedJWT(header, claimsSet);
signer.signJwt(jwt);
String serializedToken = jwt.serialize();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,22 @@
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.transaction.annotation.Transactional;
import org.springframework.test.context.junit4.SpringRunner;

import com.nimbusds.jwt.JWT;
import com.nimbusds.jwt.JWTParser;

import it.infn.mw.iam.IamLoginService;
import it.infn.mw.iam.core.user.IamAccountService;
import it.infn.mw.iam.persistence.model.IamAccount;
import it.infn.mw.iam.persistence.model.IamAttribute;
import it.infn.mw.iam.persistence.repository.IamAccountRepository;
import it.infn.mw.iam.test.core.CoreControllerTestSupport;
import it.infn.mw.iam.test.oauth.EndpointsTestUtils;
import it.infn.mw.iam.test.util.annotation.IamMockMvcIntegrationTest;
import it.infn.mw.iam.test.util.oauth.MockOAuth2Filter;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {IamLoginService.class, CoreControllerTestSupport.class})
@WebAppConfiguration
@Transactional
@RunWith(SpringRunner.class)
@IamMockMvcIntegrationTest
@TestPropertySource(properties = {"iam.access_token.include_authn_info=true"})
public class AttributeOAuthEncodingTests extends EndpointsTestUtils {

Expand All @@ -72,7 +66,6 @@ private Supplier<AssertionError> assertionError(String message) {

@Before
public void setup() {
buildMockMvc();
mockOAuth2Filter.cleanupSecurityContext();
}

Expand Down
Loading

0 comments on commit 481a456

Please sign in to comment.