在webflux应用程序的结束2结束测试中阻止请求

时间:2017-09-20 15:18:10

标签: spring-security spring-webflux

我在结束2结束测试中遇到的另一个问题是,设置无效凭据会导致发送请求被阻止,直到超时为止。

源代码:https://github.com/hantsy/spring-reactive-sample/blob/master/security-method/src/test/java/com/example/demo/IntegrationTests.java#L83-L94

@Test
public void savingPostsWhenInvalidCredentialsThenUnauthorized() throws Exception {
    this.rest
        .post()
        .uri("/posts")
        .attributes(invalidCredentials())
        .body(BodyInserters.fromObject(Post.builder().title("title test").content("content test").build()))
        .exchange()
        .expectStatus().isUnauthorized()
        .expectBody().isEmpty();
} 

另一种情况是,如果用户没有权限,也会导致请求被阻止。

@Test
public void deletingPostsWhenUserCredentialsThenForbidden_mutateWith() throws Exception {
    this.rest
        .mutate().filter(basicAuthentication("user", "password")).build()
        .delete()
        .uri("/posts/1")
        .exchange()
        .expectStatus().is4xxClientError()
        .expectBody().isEmpty();
}

我在此示例中使用Reactor Netty作为运行时,类似的测试在ApplicationTests(在模拟环境中使用bindToApplicationContext)中传递,在IntegrationTests中失败(使用了{2}结束测试中的bindToServer

0 个答案:

没有答案