From 717ba81229583c8aa630baaa5d8ae6d6faefd8c7 Mon Sep 17 00:00:00 2001 From: tchiotludo Date: Sun, 13 Jun 2021 20:52:21 +0200 Subject: [PATCH] test(auths): add a test for basic auth case sensitive close #722 --- .../BasicAuthAuthenticationProviderTest.java | 29 +++++++++++++++++-- src/test/resources/application.yml | 4 +++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/akhq/modules/BasicAuthAuthenticationProviderTest.java b/src/test/java/org/akhq/modules/BasicAuthAuthenticationProviderTest.java index 32433e322..908c245c7 100644 --- a/src/test/java/org/akhq/modules/BasicAuthAuthenticationProviderTest.java +++ b/src/test/java/org/akhq/modules/BasicAuthAuthenticationProviderTest.java @@ -1,8 +1,8 @@ package org.akhq.modules; import io.micronaut.security.authentication.*; +import io.micronaut.test.extensions.junit5.annotation.MicronautTest; import io.reactivex.Flowable; -import org.akhq.AbstractTest; import org.junit.jupiter.api.Test; import java.util.Collection; @@ -13,7 +13,8 @@ import static org.hamcrest.Matchers.*; import static org.junit.jupiter.api.Assertions.*; -public class BasicAuthAuthenticationProviderTest extends AbstractTest { +@MicronautTest +public class BasicAuthAuthenticationProviderTest { @Inject BasicAuthAuthenticationProvider auth; @@ -41,6 +42,30 @@ public void success() { assertEquals("test.*", ((List)userDetail.getAttributes("roles", "username").get("topicsFilterRegexp")).get(0)); } + @Test + public void successCase() { + AuthenticationResponse response = Flowable + .fromPublisher(auth.authenticate(null, new UsernamePasswordCredentials( + "MyUser3!@yàhöù.com", + "pass" + ))).blockingFirst(); + + assertThat(response, instanceOf(UserDetails.class)); + + UserDetails userDetail = (UserDetails) response; + + assertTrue(userDetail.isAuthenticated()); + assertEquals("MyUser3!@yàhöù.com", userDetail.getUsername()); + + Collection roles = userDetail.getRoles(); + + assertThat(roles, hasSize(4)); + assertThat(roles, hasItem("topic/read")); + assertThat(roles, hasItem("registry/version/delete")); + + assertEquals("test.*", ((List)userDetail.getAttributes("roles", "username").get("topicsFilterRegexp")).get(0)); + } + @Test public void failed_UserNotFound() { AuthenticationResponse response = Flowable diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml index 903c570c3..dd5dcc06c 100644 --- a/src/test/resources/application.yml +++ b/src/test/resources/application.yml @@ -136,6 +136,10 @@ akhq: password: d74ff0ee8da3b9806b18c877dbf29bbde50b5bd8e4dad7a3a725000feb82e8f1 groups: - limited + - username: MyUser3!@yàhöù.com + password: d74ff0ee8da3b9806b18c877dbf29bbde50b5bd8e4dad7a3a725000feb82e8f1 + groups: + - limited - username: admin password: d74ff0ee8da3b9806b18c877dbf29bbde50b5bd8e4dad7a3a725000feb82e8f1 groups: