Example usage for org.springframework.mock.web MockHttpServletResponse getStatus

List of usage examples for org.springframework.mock.web MockHttpServletResponse getStatus

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletResponse getStatus.

Prototype

@Override
    public int getStatus() 

Source Link

Usage

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void testServiceApplicationWithUnexistingScope() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();//w ww  .j a v a 2s. co m

    User user = createUser("testServiceApplicationWithUnexistingScope", "John", "Doe", "John Doe",
            "john.doe@fenixedu.org");

    ServiceApplication serviceApplication = new ServiceApplication();
    serviceApplication.setAuthor(user);

    req.addParameter("client_id", serviceApplication.getExternalId());
    req.addParameter("client_secret", serviceApplication.getSecret());
    req.addParameter("grant_type", "client_credentials");
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);

        Assert.assertEquals("must return status OK", 200, res.getStatus());

        String tokenJson = res.getContentAsString();

        final String serviceAccessToken = new JsonParser().parse(tokenJson).getAsJsonObject()
                .get("access_token").getAsString();

        Response response = target("bennu-oauth").path("test").path("service-only-with-unexisting-scope")
                .queryParam("access_token", serviceAccessToken).request().get();

        Assert.assertNotEquals("request must fail since scope does not exist", 200, response.getStatus());

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void testServiceApplicationOAuthAccessProvider() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();/*from   w  w  w .  j a  v  a 2 s. c o  m*/

    User user = createUser("testServiceApplicationOAuthAccessProvider", "John", "Doe", "John Doe",
            "john.doe@fenixedu.org");

    ServiceApplication serviceApplication = new ServiceApplication();
    serviceApplication.setAuthor(user1);
    serviceApplication.addScopes(serviceApplicationOAuthAccessProvider);
    serviceApplication.addScopes(loggedScope);

    req.addParameter("client_id", serviceApplication.getExternalId());
    req.addParameter("client_secret", serviceApplication.getSecret());
    req.addParameter("grant_type", "client_credentials");
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);

        Assert.assertEquals("must return status OK", 200, res.getStatus());

        String tokenJson = res.getContentAsString();

        final String serviceAccessToken = new JsonParser().parse(tokenJson).getAsJsonObject()
                .get("access_token").getAsString();

        String result = target("oauth").path("provider").path(serviceApplication.getExternalId())
                .path(user.getUsername()).queryParam("access_token", serviceAccessToken).request()
                .post(null, String.class);

        Authenticate.unmock();

        final String userAccessToken = new JsonParser().parse(result).getAsJsonObject().get("access_token")
                .getAsString();

        result = target("bennu-oauth").path("test").path("test-scope-with-logged-user")
                .queryParam("access_token", userAccessToken).request().get(String.class);

        Assert.assertEquals("this is an endpoint with TEST scope: testServiceApplicationOAuthAccessProvider",
                result);

        Authenticate.mock(user);

        JsonArray authorizations = target("bennu-oauth").path("authorizations").request().get(JsonElement.class)
                .getAsJsonArray();

        Assert.assertEquals("no authorizations because it is a service application", 0, authorizations.size());

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    } finally {
        serviceApplication.removeScope(serviceApplicationOAuthAccessProvider);
        serviceApplication.removeScope(loggedScope);
    }

}

From source file:com.jayway.restassured.module.mockmvc.internal.MockMvcRequestSenderImpl.java

@SuppressWarnings("unchecked")
private MockMvcResponse performRequest(MockHttpServletRequestBuilder requestBuilder) {
    MockHttpServletResponse response;

    if (interceptor != null) {
        interceptor.intercept(requestBuilder);
    }// w  ww .  j  av a2  s  .c o m

    if (isSpringSecurityInClasspath()
            && authentication instanceof org.springframework.security.core.Authentication) {
        org.springframework.security.core.context.SecurityContextHolder.getContext()
                .setAuthentication((org.springframework.security.core.Authentication) authentication);
    } else if (authentication instanceof Principal) {
        requestBuilder.principal((Principal) authentication);
    }

    for (RequestPostProcessor requestPostProcessor : requestPostProcessors) {
        requestBuilder.with(requestPostProcessor);
    }

    MockMvcRestAssuredResponseImpl restAssuredResponse;
    try {
        final long start = System.currentTimeMillis();
        ResultActions perform = mockMvc.perform(requestBuilder);
        final long responseTime = System.currentTimeMillis() - start;
        if (!resultHandlers.isEmpty()) {
            for (ResultHandler resultHandler : resultHandlers) {
                perform.andDo(resultHandler);
            }
        }
        MvcResult mvcResult = getMvcResult(perform, isAsyncRequest);
        response = mvcResult.getResponse();
        restAssuredResponse = new MockMvcRestAssuredResponseImpl(perform, logRepository);
        restAssuredResponse.setConfig(convertToRestAssuredConfig(config));
        restAssuredResponse.setContent(response.getContentAsString());
        restAssuredResponse.setContentType(response.getContentType());
        restAssuredResponse.setHasExpectations(false);
        restAssuredResponse.setStatusCode(response.getStatus());
        restAssuredResponse.setResponseHeaders(assembleHeaders(response));
        restAssuredResponse.setRpr(getRpr());
        restAssuredResponse.setStatusLine(assembleStatusLine(response, mvcResult.getResolvedException()));
        restAssuredResponse.setFilterContextProperties(new HashMap() {
            {
                put(RESPONSE_TIME_MILLISECONDS, responseTime);
            }
        });

        if (responseSpecification != null) {
            responseSpecification.validate(ResponseConverter.toStandardResponse(restAssuredResponse));
        }

    } catch (Exception e) {
        return SafeExceptionRethrower.safeRethrow(e);
    } finally {
        if (isSpringSecurityInClasspath()) {
            org.springframework.security.core.context.SecurityContextHolder.clearContext();
        }
    }
    return restAssuredResponse;
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void getAccessTokenWrongClientIdHeaderTest() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();//from w  ww. j av  a  2s  . c  om

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setCode("fenixedu");

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);
    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = "fenixedu:fenixedu";
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REDIRECT_URI, externalApp.getRedirectUrl());
    req.addParameter(CODE, applicationUserSession.getCode());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_AUTHORIZATION_CODE);
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status BAD_REQUEST", 400, res.getStatus());
    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void refreshAccessTokenWrongClientHeaderRefreshTest() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();/*from w w  w  . j  a v a  2 s  . c  om*/

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setTokens(generateToken(applicationUserSession),
            generateToken(applicationUserSession));

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);

    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = "fenixedu:fenixedu";
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REFRESH_TOKEN, applicationUserSession.getRefreshToken());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_REFRESH_TOKEN);
    req.setMethod("POST");
    req.setPathInfo("/refresh_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status BAD_REQUEST", 400, res.getStatus());
    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void getAccessTokenHeaderTest() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();/*from  ww w .  j  a  v a  2 s . c om*/

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setCode("fenixedu");

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);
    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = externalApp.getExternalId() + ":" + externalApp.getSecret();
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REDIRECT_URI, externalApp.getRedirectUrl());
    req.addParameter(CODE, applicationUserSession.getCode());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_AUTHORIZATION_CODE);
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status OK", 200, res.getStatus());

        String tokenJson = res.getContentAsString();
        final JsonObject token = new JsonParser().parse(tokenJson).getAsJsonObject();

        Assert.assertTrue("response must be a valid json and have access_token field",
                token.has(ACCESS_TOKEN) && token.get(ACCESS_TOKEN).getAsString().length() > 0);

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void refreshAccessTokenHeaderTest() {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();//from   w  w  w  .j  a va  2 s.c o m

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setTokens(generateToken(applicationUserSession),
            generateToken(applicationUserSession));

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);

    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = externalApp.getExternalId() + ":" + externalApp.getSecret();
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REFRESH_TOKEN, applicationUserSession.getRefreshToken());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_REFRESH_TOKEN);
    req.setMethod("POST");
    req.setPathInfo("/refresh_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status OK", 200, res.getStatus());
        String tokenJson = res.getContentAsString();
        final JsonObject token = new JsonParser().parse(tokenJson).getAsJsonObject();

        Assert.assertTrue("response must be a valid json and have access_token field",
                token.has(ACCESS_TOKEN) && token.get(ACCESS_TOKEN).getAsString().length() > 0);

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }

}

From source file:io.restassured.module.mockmvc.internal.MockMvcRequestSenderImpl.java

@SuppressWarnings("unchecked")
private MockMvcResponse performRequest(MockHttpServletRequestBuilder requestBuilder) {
    MockHttpServletResponse response;

    if (interceptor != null) {
        interceptor.intercept(requestBuilder);
    }/* w w  w. j ava  2  s  .c  o  m*/

    if (isSpringSecurityInClasspath()
            && authentication instanceof org.springframework.security.core.Authentication) {
        org.springframework.security.core.context.SecurityContextHolder.getContext()
                .setAuthentication((org.springframework.security.core.Authentication) authentication);
    } else if (authentication instanceof Principal) {
        requestBuilder.principal((Principal) authentication);
    }

    for (RequestPostProcessor requestPostProcessor : requestPostProcessors) {
        requestBuilder.with(requestPostProcessor);
    }

    MockMvcRestAssuredResponseImpl restAssuredResponse;
    try {
        final long start = System.currentTimeMillis();
        ResultActions perform = mockMvc.perform(requestBuilder);
        final long responseTime = System.currentTimeMillis() - start;
        if (!resultHandlers.isEmpty()) {
            for (ResultHandler resultHandler : resultHandlers) {
                perform.andDo(resultHandler);
            }
        }
        MvcResult mvcResult = getMvcResult(perform, isAsyncRequest);
        response = mvcResult.getResponse();
        restAssuredResponse = new MockMvcRestAssuredResponseImpl(perform, logRepository);
        restAssuredResponse.setConfig(ConfigConverter.convertToRestAssuredConfig(config));
        restAssuredResponse.setContent(response.getContentAsByteArray());
        restAssuredResponse.setContentType(response.getContentType());
        restAssuredResponse.setHasExpectations(false);
        restAssuredResponse.setStatusCode(response.getStatus());
        restAssuredResponse.setResponseHeaders(assembleHeaders(response));
        restAssuredResponse.setRpr(getRpr());
        restAssuredResponse.setStatusLine(assembleStatusLine(response, mvcResult.getResolvedException()));
        restAssuredResponse.setFilterContextProperties(new HashMap() {
            {
                put(TimingFilter.RESPONSE_TIME_MILLISECONDS, responseTime);
            }
        });
        restAssuredResponse.setCookies(convertCookies(response.getCookies()));

        if (responseSpecification != null) {
            responseSpecification.validate(ResponseConverter.toStandardResponse(restAssuredResponse));
        }

    } catch (Exception e) {
        return SafeExceptionRethrower.safeRethrow(e);
    } finally {
        if (isSpringSecurityInClasspath()) {
            org.springframework.security.core.context.SecurityContextHolder.clearContext();
        }
    }
    return restAssuredResponse;
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void testTokenTypeWrongAccessTokenInHeader() {

    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();//from  w  w w . j a va 2 s .c  o m

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");
    externalApp.addScopes(externalApplicationScope);

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setCode("fenixedu");

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);
    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = externalApp.getExternalId() + ":" + externalApp.getSecret();
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REDIRECT_URI, externalApp.getRedirectUrl());
    req.addParameter(CODE, applicationUserSession.getCode());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_AUTHORIZATION_CODE);
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status OK", 200, res.getStatus());

        String tokenJson = res.getContentAsString();
        final JsonObject token = new JsonParser().parse(tokenJson).getAsJsonObject();

        Assert.assertTrue("response must be a valid json and have" + ACCESS_TOKEN + " field",
                token.has(ACCESS_TOKEN) && token.get(ACCESS_TOKEN).getAsString().length() > 0);

        Assert.assertTrue("response must be a valid json and have " + TOKEN_TYPE + " field",
                token.has(TOKEN_TYPE) && token.get(TOKEN_TYPE).getAsString().length() > 0);

        String accessToken = token.get(ACCESS_TOKEN).getAsString() + "fenixedu";
        String tokenType = token.get(TOKEN_TYPE).getAsString();

        Response result = target("bennu-oauth").path("test").path("test-scope").request()
                .header(HttpHeaders.AUTHORIZATION, tokenType + " " + accessToken).get(Response.class);

        Assert.assertEquals("request must fail", 401, result.getStatus());

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}

From source file:org.fenixedu.bennu.oauth.OAuthServletTest.java

@Test
public void testWrongTokenTypeInHeader() {

    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    Authenticate.unmock();//  w  ww . j  a  va  2s  . com

    ExternalApplication externalApp = new ExternalApplication();
    externalApp.setAuthor(user1);
    externalApp.setName("Test External Application");
    externalApp.setDescription("This is a test external application");
    externalApp.setRedirectUrl("http://test.url/callback");
    externalApp.addScopes(externalApplicationScope);

    ApplicationUserSession applicationUserSession = new ApplicationUserSession();
    applicationUserSession.setCode("fenixedu");

    ApplicationUserAuthorization applicationUserAuthorization = new ApplicationUserAuthorization(user1,
            externalApp);
    applicationUserAuthorization.addSession(applicationUserSession);
    externalApp.addApplicationUserAuthorization(applicationUserAuthorization);

    String clientSecret = externalApp.getExternalId() + ":" + externalApp.getSecret();
    req.addHeader(HttpHeaders.AUTHORIZATION,
            "Basic " + Base64.getEncoder().encodeToString(clientSecret.getBytes(StandardCharsets.UTF_8)));
    req.addParameter(REDIRECT_URI, externalApp.getRedirectUrl());
    req.addParameter(CODE, applicationUserSession.getCode());
    req.addParameter(GRANT_TYPE, GRANT_TYPE_AUTHORIZATION_CODE);
    req.setMethod("POST");
    req.setPathInfo("/access_token");

    try {
        oauthServlet.service(req, res);
        Assert.assertEquals("must return status OK", 200, res.getStatus());

        String tokenJson = res.getContentAsString();
        final JsonObject token = new JsonParser().parse(tokenJson).getAsJsonObject();

        Assert.assertTrue("response must be a valid json and have" + ACCESS_TOKEN + " field",
                token.has(ACCESS_TOKEN) && token.get(ACCESS_TOKEN).getAsString().length() > 0);

        Assert.assertTrue("response must be a valid json and have " + TOKEN_TYPE + " field",
                token.has(TOKEN_TYPE) && token.get(TOKEN_TYPE).getAsString().length() > 0);

        String accessToken = token.get(ACCESS_TOKEN).getAsString();
        String tokenType = token.get(TOKEN_TYPE).getAsString() + "fenixedu";

        Response result = target("bennu-oauth").path("test").path("test-scope").request()
                .header(HttpHeaders.AUTHORIZATION, tokenType + " " + accessToken).get(Response.class);

        Assert.assertEquals("request must fail", 401, result.getStatus());

    } catch (ServletException | IOException e) {
        Assert.fail(e.getMessage());
    }
}