Spring oauth2 和集成测试

Spring oauth2 and integration tests

需要 Oauth2 客户端集成测试方面的帮助。

设置:

集成测试:

Ole测试示例:

        given().auth()
           .preemptive()
           .basic(USER_EMAIL,PASSWORD) <-- this not valid any more
           .contentType(ContentType.JSON)
           .when()
           .pathParam("id","123")
           .delete(PROFILE_FIELD_BASE_URL)
           .andReturn()
           .body();

问题:

您看到的代码仅用于基本身份验证和使用 OAuth 放心,一般情况下,您必须更改该代码。从 REST Assured github page 你可以看到以下两个例子:

    @Test public void
oauth2_works_with_preemptive_header_signing() {
    final String accessToken = "accessToken";

    given().
            auth().preemptive().oauth2(accessToken).
            filter(new Filter() {
                public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
                    assertThat(requestSpec.getHeaders().getValue("Authorization"), equalTo("Bearer "+accessToken));
                    return new ResponseBuilder().setBody("ok").setStatusCode(200).build();
                }
            }).
    when().
            get("/somewhere").
    then().
            statusCode(200);
}

@Test public void
oauth2_works_with_non_preemptive_header_signing() {
    final String accessToken = "accessToken";

    given().
            auth().oauth2(accessToken).
            filter(new Filter() {
                public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
                    AuthenticationScheme scheme = requestSpec.getAuthenticationScheme();
                    assertThat(scheme, instanceOf(PreemptiveOAuth2HeaderScheme.class));
                    assertThat(((PreemptiveOAuth2HeaderScheme) scheme).getAccessToken(), equalTo(accessToken));
                    return new ResponseBuilder().setBody("ok").setStatusCode(200).build();
                }
            }).
    when().
            get("/somewhere").
    then().
            statusCode(200);
}

另外一个例子,大家可以看看.