Example usage for org.springframework.mock.web MockHttpServletRequest setServerName

List of usage examples for org.springframework.mock.web MockHttpServletRequest setServerName

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setServerName.

Prototype

public void setServerName(String serverName) 

Source Link

Usage

From source file:org.artifactory.util.HttpUtilsTest.java

public void getServletContextUrlWithBaseUrl() throws EncoderException {
    String requestUrl = "http://lala.land.com";
    setBaseUrl("https://custombaseurl.net");
    MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUrl);
    request.setServerName("lala.land.com");
    String servletContextUrl = HttpUtils.getServletContextUrl(request);
    assertEquals(servletContextUrl, "https://custombaseurl.net");
}

From source file:org.artifactory.util.HttpUtilsTest.java

public void getServletContextUrlWithBaseUrlAndOverridingHeader() throws EncoderException {
    String requestUrl = "http://lala.land.com";
    setBaseUrl("https://custombaseurl.net");
    MockHttpServletRequest request = new MockHttpServletRequest("GET", requestUrl);
    request.setServerName("lala.land.com");
    request.addHeader(ArtifactoryRequest.ARTIFACTORY_OVERRIDE_BASE_URL, "http://originartifactory.net");
    String servletContextUrl = HttpUtils.getServletContextUrl(request);
    assertEquals(servletContextUrl, "http://originartifactory.net");
}

From source file:org.cloudfoundry.identity.uaa.login.EmailChangeEmailServiceTest.java

public void testBeginEmailChangeInOtherZone(String zoneName) throws Exception {

    IdentityZone zone = MultitenancyFixture.identityZone("test-zone-id", "test");
    zone.setName(zoneName);//from  w  ww.j a  va 2s  .c  om
    IdentityZoneHolder.set(zone);

    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("test.localhost");
    request.setContextPath("/login");
    ServletRequestAttributes attrs = new ServletRequestAttributes(request);
    RequestContextHolder.setRequestAttributes(attrs);

    ScimUser user = new ScimUser("user-001", "user-name", "test-name", "test-name");
    user.setPrimaryEmail("user@example.com");
    Map<String, String> codeData = new HashMap<>();
    codeData.put("user_id", "user-001");
    codeData.put("client_id", "app");
    codeData.put("redirect_uri", "http://app.com");
    codeData.put("email", "new@example.com");

    String zoneId = IdentityZoneHolder.get().getId();

    when(scimUserProvisioning.retrieve("user-001", zoneId)).thenReturn(user);
    when(scimUserProvisioning.query(anyString(), eq(zoneId)))
            .thenReturn(Collections.singletonList(new ScimUser()));
    String data = JsonUtils.writeValueAsString(codeData);
    when(codeStore.generateCode(eq(data), any(Timestamp.class), eq(EMAIL.name()), anyString())).thenReturn(
            new ExpiringCode("the_secret_code", new Timestamp(System.currentTimeMillis()), data, EMAIL.name()));

    emailChangeEmailService.beginEmailChange("user-001", "user@example.com", "new@example.com", "app",
            "http://app.com");

    verify(codeStore).generateCode(eq(JsonUtils.writeValueAsString(codeData)), any(Timestamp.class),
            eq(EMAIL.name()), eq(zoneId));

    ArgumentCaptor<String> emailBodyArgument = ArgumentCaptor.forClass(String.class);
    Mockito.verify(messageService).sendMessage(eq("new@example.com"), eq(MessageType.CHANGE_EMAIL),
            eq(zoneName + " Email change verification"), emailBodyArgument.capture());

    String emailBody = emailBodyArgument.getValue();

    assertThat(emailBody,
            containsString(String.format("A request has been made to change the email for %s from %s to %s",
                    zoneName, "user@example.com", "new@example.com")));
    assertThat(emailBody, containsString(
            "<a href=\"http://test.localhost/login/verify_email?code=the_secret_code\">Verify your email</a>"));
    assertThat(emailBody, containsString("Thank you,<br />\n    " + zoneName));
}

From source file:org.cloudfoundry.identity.uaa.mock.token.TokenMvcMockTests.java

@Test
public void test_saml_bearer_grant() throws Exception {
    String subdomain = generator.generate().toLowerCase();
    //all our SAML defaults use :8080/uaa/ so we have to use that here too
    String host = subdomain + ".localhost";
    String fullPath = "/uaa/oauth/token/alias/" + subdomain + ".cloudfoundry-saml-login";
    String origin = subdomain + ".cloudfoundry-saml-login";

    MockMvcUtils.IdentityZoneCreationResult zone = MockMvcUtils
            .createOtherIdentityZoneAndReturnResult(subdomain, getMockMvc(), getWebApplicationContext(), null);

    //create an actual IDP, so we can fetch metadata
    String idpMetadata = MockMvcUtils.getIDPMetaData(getMockMvc(), subdomain);

    //create an IDP in the default zone
    SamlIdentityProviderDefinition idpDef = createLocalSamlIdpDefinition(origin, zone.getIdentityZone().getId(),
            idpMetadata);//from  www .  j  a v a  2  s  . c o m
    IdentityProvider provider = new IdentityProvider();
    provider.setConfig(idpDef);
    provider.setActive(true);
    provider.setIdentityZoneId(zone.getIdentityZone().getId());
    provider.setName(origin);
    provider.setOriginKey(origin);

    IdentityZoneHolder.set(zone.getIdentityZone());
    getWebApplicationContext().getBean(JdbcIdentityProviderProvisioning.class).create(provider);
    getWebApplicationContext().getBean(ZoneAwareIdpMetadataManager.class).refreshAllProviders();
    IdentityZoneHolder.clear();

    String assertion = samlTestUtils.mockAssertionEncoded(subdomain + ".cloudfoundry-saml-login",
            "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "Saml2BearerIntegrationUser",
            "http://" + subdomain + ".localhost:8080/uaa/oauth/token/alias/" + subdomain
                    + ".cloudfoundry-saml-login",
            subdomain + ".cloudfoundry-saml-login");

    //create client in default zone
    String clientId = "testclient" + generator.generate();
    setUpClients(clientId, "uaa.none", "uaa.user,openid", GRANT_TYPE_SAML2_BEARER + ",password", true,
            TEST_REDIRECT_URI, null, 600, zone.getIdentityZone());

    //String fullPath = "/uaa/oauth/token";
    MockHttpServletRequestBuilder post = post(fullPath).with(new RequestPostProcessor() {
        @Override
        public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
            request.setServerPort(8080);
            request.setRequestURI(fullPath);
            request.setServerName(host);
            return request;
        }
    }).contextPath("/uaa").accept(APPLICATION_JSON).header(HOST, host).contentType(APPLICATION_FORM_URLENCODED)
            .param("grant_type", "urn:ietf:params:oauth:grant-type:saml2-bearer").param("client_id", clientId)
            .param("client_secret", "secret").param("assertion", assertion);

    getMockMvc().perform(post).andDo(print()).andExpect(status().isOk())
            .andExpect(jsonPath("$.access_token").exists())
            .andExpect(jsonPath("$.scope").value("openid uaa.user"));

    getMockMvc().perform(post.param("scope", "uaa.admin")).andDo(print()).andExpect(status().isUnauthorized());

}

From source file:org.cloudfoundry.identity.uaa.mock.token.TokenMvcMockTests.java

@Test
public void test_two_zone_saml_bearer_grant() throws Exception {
    String subdomain = generator.generate().toLowerCase();
    //all our SAML defaults use :8080/uaa/ so we have to use that here too
    String spInvocationEndpoint = "/uaa/oauth/token/alias/cloudfoundry-saml-login";
    String idpOrigin = subdomain + ".cloudfoundry-saml-login";

    //create an zone - that zone will be our IDP
    MockMvcUtils.IdentityZoneCreationResult zone = MockMvcUtils
            .createOtherIdentityZoneAndReturnResult(subdomain, getMockMvc(), getWebApplicationContext(), null);
    //create an actual IDP, so we can fetch metadata
    String spMetadata = MockMvcUtils.getSPMetadata(getMockMvc(), null);
    String idpMetadata = MockMvcUtils.getIDPMetaData(getMockMvc(), subdomain);

    //create an IDP in the default zone
    SamlIdentityProviderDefinition idpDef = createLocalSamlIdpDefinition(idpOrigin,
            IdentityZone.getUaa().getId(), idpMetadata);
    IdentityProvider provider = new IdentityProvider();
    provider.setConfig(idpDef);// w w w  . ja va2 s.  c  om
    provider.setActive(true);
    provider.setIdentityZoneId(IdentityZone.getUaa().getId());
    provider.setName(idpOrigin);
    provider.setOriginKey(idpOrigin);

    IdentityZoneHolder.clear();
    getWebApplicationContext().getBean(JdbcIdentityProviderProvisioning.class).create(provider);
    getWebApplicationContext().getBean(ZoneAwareIdpMetadataManager.class).refreshAllProviders();
    IdentityZoneHolder.clear();

    String assertion = samlTestUtils.mockAssertionEncoded(subdomain + ".cloudfoundry-saml-login",
            "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified", "Saml2BearerIntegrationUser",
            "http://localhost:8080/uaa/oauth/token/alias/cloudfoundry-saml-login", "cloudfoundry-saml-login");

    //create client in default zone
    String clientId = "testclient" + generator.generate();
    setUpClients(clientId, "uaa.none", "uaa.user,openid", GRANT_TYPE_SAML2_BEARER + ",password", true,
            TEST_REDIRECT_URI, null, 600, null);

    MockHttpServletRequestBuilder post = post(spInvocationEndpoint).with(new RequestPostProcessor() {
        @Override
        public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) {
            request.setServerPort(8080);
            request.setRequestURI(spInvocationEndpoint);
            request.setServerName("localhost");
            return request;
        }
    }).contextPath("/uaa").accept(APPLICATION_JSON).header(HOST, "localhost")
            .contentType(APPLICATION_FORM_URLENCODED)
            .param("grant_type", "urn:ietf:params:oauth:grant-type:saml2-bearer").param("client_id", clientId)
            .param("client_secret", "secret").param("assertion", assertion);

    String json = getMockMvc().perform(post).andDo(print()).andExpect(status().isOk())
            .andExpect(jsonPath("$.access_token").exists())
            .andExpect(jsonPath("$.scope").value("openid uaa.user")).andReturn().getResponse()
            .getContentAsString();

    System.out.println("json = " + json);

    getMockMvc().perform(post.param("scope", "uaa.admin")).andDo(print()).andExpect(status().isUnauthorized());

}

From source file:org.geogig.geoserver.functional.GeoServerTestSupport.java

/**
 * Issue a POST request to the provided URL with the given file passed as form data.
 *
 * @param resourceUri the url to issue the request to
 * @param formFieldName the form field name for the file to be posted
 * @param file the file to post/*from   w  w  w. j ava2  s.  c  o m*/
 *
 * @return the response to the request
 */
public MockHttpServletResponse postFile(String resourceUri, String formFieldName, File file) throws Exception {

    try (FileInputStream fis = new FileInputStream(file)) {
        MockMultipartFile mFile = new MockMultipartFile(formFieldName, fis);
        MockMultipartHttpServletRequestBuilder requestBuilder = MockMvcRequestBuilders
                .fileUpload(new URI(resourceUri)).file(mFile);

        MockHttpServletRequest request = requestBuilder.buildRequest(applicationContext.getServletContext());

        /**
         * Duplicated from GeoServerSystemTestSupport#createRequest to do the same work on the
         * MockMultipartHttpServletRequest
         */
        request.setScheme("http");
        request.setServerName("localhost");
        request.setServerPort(8080);
        request.setContextPath("/geoserver");
        request.setRequestURI(
                ResponseUtils.stripQueryString(ResponseUtils.appendPath("/geoserver/", resourceUri)));
        // request.setRequestURL(ResponseUtils.appendPath("http://localhost:8080/geoserver",
        // path ) );
        request.setQueryString(ResponseUtils.getQueryString(resourceUri));
        request.setRemoteAddr("127.0.0.1");
        request.setServletPath(ResponseUtils.makePathAbsolute(ResponseUtils.stripRemainingPath(resourceUri)));
        request.setPathInfo(ResponseUtils.makePathAbsolute(
                ResponseUtils.stripBeginningPath(ResponseUtils.stripQueryString(resourceUri))));
        request.addHeader("Host", "localhost:8080");

        // deal with authentication
        if (username != null) {
            String token = username + ":";
            if (password != null) {
                token += password;
            }
            request.addHeader("Authorization", "Basic " + new String(Base64.encodeBase64(token.getBytes())));
        }

        kvp(request, resourceUri);

        request.setUserPrincipal(null);
        /**
         * End duplication
         */

        return dispatch(request);
    }
}

From source file:org.jtalks.jcommune.service.nontransactional.MentionedUsersTest.java

private void setupRequestAttributes() {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("localhost");
    request.setServerPort(8080);//w w  w . j  a  v a2  s. c o m
    request.setContextPath("/forum");
    RequestContextHolder.setRequestAttributes(new ServletWebRequest(request));
}

From source file:org.jtalks.jcommune.service.transactional.TransactionalUserServiceTest.java

private void boundMockHttpRequestToThread(String contextPath) {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setScheme("http");
    request.setServerName("testing.com");
    request.setServerPort(1234);// w ww .j av  a  2s.  c o m
    request.setContextPath(contextPath);
    RequestContextHolder.setRequestAttributes(new ServletWebRequest(request));
}

From source file:org.jtalks.jcommune.web.exception.PrettyLogExceptionResolverTest.java

@Test
public void testLogExceptionWithIncomingAccessDeniedException() throws Exception {
    Log mockLog = replaceLoggerWithMock(prettyLogExceptionResolver);
    AccessDeniedException accessDeniedException = new AccessDeniedException("Access denied");

    MockHttpServletRequest request = new MockHttpServletRequest("POST", "/testing/url/42");
    request.setServerName("testserver.com");
    request.setServerPort(8080);/*ww  w .j av  a  2s  . co  m*/
    request.setContent("12345".getBytes());
    request.setUserPrincipal(new UsernamePasswordAuthenticationToken("username", "password"));

    prettyLogExceptionResolver.logException(accessDeniedException, request);

    verify(mockLog).info(
            "Access was denied for user [username] trying to POST http://testserver.com:8080/testing/url/42");
}

From source file:org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilterTests.java

private MockHttpServletRequest createMockAuthenticationRequest() {
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setServletPath("/j_mock_post");
    request.setScheme("http");
    request.setServerName("www.example.com");
    request.setRequestURI("/mycontext/j_mock_post");
    request.setContextPath("/mycontext");

    return request;
}