PakhomovAlexander commented on code in PR #2688:
URL: https://github.com/apache/ignite-3/pull/2688#discussion_r1366847950
##########
modules/security/src/test/java/org/apache/ignite/internal/security/authentication/AuthenticationManagerImplTest.java:
##########
@@ -20,200 +20,191 @@
import static
org.apache.ignite.internal.testframework.matchers.CompletableFutureMatcher.willCompleteSuccessfully;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
import
org.apache.ignite.internal.configuration.testframework.ConfigurationExtension;
import
org.apache.ignite.internal.configuration.testframework.InjectConfiguration;
import
org.apache.ignite.internal.security.authentication.basic.BasicAuthenticationProviderChange;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationDisabled;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationEnabled;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationEvent;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationListener;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationProviderRemoved;
+import
org.apache.ignite.internal.security.authentication.event.AuthenticationProviderUpdated;
import org.apache.ignite.internal.security.configuration.SecurityChange;
import org.apache.ignite.internal.security.configuration.SecurityConfiguration;
import org.apache.ignite.internal.security.configuration.SecurityView;
import org.apache.ignite.internal.testframework.BaseIgniteAbstractTest;
import org.apache.ignite.security.exception.InvalidCredentialsException;
import
org.apache.ignite.security.exception.UnsupportedAuthenticationTypeException;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
-
@ExtendWith(ConfigurationExtension.class)
class AuthenticationManagerImplTest extends BaseIgniteAbstractTest {
+ private static final String PROVIDER = "basic";
+
+ private static final String USERNAME = "admin";
+
+ private static final String PASSWORD = "password";
+
+ private static final UsernamePasswordRequest USERNAME_PASSWORD_REQUEST =
new UsernamePasswordRequest(USERNAME, PASSWORD);
+
private final AuthenticationManagerImpl manager = new
AuthenticationManagerImpl();
+ private final List<AuthenticationEvent> events = new ArrayList<>();
+
+ private final AuthenticationListener listener = events::add;
+
@InjectConfiguration
private SecurityConfiguration securityConfiguration;
+ @BeforeEach
+ void setUp() {
+ manager.listen(listener);
+ }
+
@Test
public void enableAuth() {
// when
- SecurityView adminPasswordView = mutateConfiguration(
- securityConfiguration, change -> {
- change.changeAuthentication().changeProviders(providers ->
providers.create("basic", provider -> {
-
provider.convert(BasicAuthenticationProviderChange.class)
- .changeUsername("admin")
- .changePassword("password");
- }));
- change.changeEnabled(true);
- })
- .value();
-
- manager.onUpdate(new StubSecurityViewEvent(null,
adminPasswordView)).join();
+ enableAuthentication();
// then
// successful authentication with valid credentials
- UsernamePasswordRequest validCredentials = new
UsernamePasswordRequest("admin", "password");
- assertEquals("admin",
manager.authenticate(validCredentials).username());
+ assertEquals(USERNAME,
manager.authenticate(USERNAME_PASSWORD_REQUEST).username());
// and failed authentication with invalid credentials
assertThrows(InvalidCredentialsException.class,
- () -> manager.authenticate(new
UsernamePasswordRequest("admin", "invalid-password")));
+ () -> manager.authenticate(new
UsernamePasswordRequest(USERNAME, "invalid-password")));
+
+ assertEquals(1, events.size());
Review Comment:
@Flaugh24 can you answer this, please?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]