diff --git a/authservice/authservice.db.liquibase.production/src/test/java/no/priv/bang/authservice/db/liquibase/production/ProductionLiquibaseRunnerTest.java b/authservice/authservice.db.liquibase.production/src/test/java/no/priv/bang/authservice/db/liquibase/production/ProductionLiquibaseRunnerTest.java index 1e7aa5fc..d048704f 100644 --- a/authservice/authservice.db.liquibase.production/src/test/java/no/priv/bang/authservice/db/liquibase/production/ProductionLiquibaseRunnerTest.java +++ b/authservice/authservice.db.liquibase.production/src/test/java/no/priv/bang/authservice/db/liquibase/production/ProductionLiquibaseRunnerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2023 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,7 +21,6 @@ import java.sql.Connection; import java.sql.DatabaseMetaData; -import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; @@ -40,13 +39,13 @@ class ProductionLiquibaseRunnerTest { @Test void testCreateSchema() throws Exception { - ProductionLiquibaseRunner runner = new ProductionLiquibaseRunner(); + var runner = new ProductionLiquibaseRunner(); runner.activate(); var database = createDataSource("authservice1"); runner.prepare(database); - try(Connection connection = database.getConnection()) { - try(PreparedStatement statment = connection.prepareStatement("select * from users")) { - ResultSet results = statment.executeQuery(); + try(var connection = database.getConnection()) { + try(var statment = connection.prepareStatement("select * from users")) { + var results = statment.executeQuery(); int usercount = 0; while(results.next()) { ++usercount; @@ -56,9 +55,9 @@ void testCreateSchema() throws Exception { } } - try(Connection connection = database.getConnection()) { - try(PreparedStatement statment = connection.prepareStatement("select * from roles")) { - ResultSet results = statment.executeQuery(); + try(var connection = database.getConnection()) { + try(var statment = connection.prepareStatement("select * from roles")) { + var results = statment.executeQuery(); int rolecount = 0; while(results.next()) { ++rolecount; @@ -71,14 +70,14 @@ void testCreateSchema() throws Exception { @Test void testCreateSchemaWhenSQLExceptionIsThrown() throws Exception { - ProductionLiquibaseRunner runner = new ProductionLiquibaseRunner(); - Connection connection = mock(Connection.class); - DataSource datasource = mock(DataSource.class); + var runner = new ProductionLiquibaseRunner(); + var connection = mock(Connection.class); + var datasource = mock(DataSource.class); when(connection.getMetaData()).thenThrow(SQLException.class); when(datasource.getConnection()).thenReturn(connection); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to create schema in authservice postgresql database"); @@ -86,14 +85,14 @@ void testCreateSchemaWhenSQLExceptionIsThrown() throws Exception { @Test void testFailWhenInsertingData() throws Exception { - ProductionLiquibaseRunner runner = new ProductionLiquibaseRunner(); + var runner = new ProductionLiquibaseRunner(); var datasource = spy(createDataSource("authservice2")); - Connection connection = mock(Connection.class); + var connection = mock(Connection.class); when(connection.getMetaData()).thenThrow(SQLException.class); when(datasource.getConnection()).thenCallRealMethod().thenReturn(connection); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to create schema in authservice postgresql database"); @@ -101,29 +100,29 @@ void testFailWhenInsertingData() throws Exception { @Test void testFailWhenUpdatingSchema() throws Exception { - ProductionLiquibaseRunner runner = new ProductionLiquibaseRunner(); + var runner = new ProductionLiquibaseRunner(); var datasource = spy(createDataSource("authservice3")); - Connection connection = mock(Connection.class); + var connection = mock(Connection.class); when(connection.getMetaData()).thenThrow(SQLException.class); when(datasource.getConnection()).thenCallRealMethod().thenCallRealMethod().thenReturn(connection); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to update schma in authservice postgresql database"); } Connection createMockConnection() throws Exception { - Connection connection = mock(Connection.class); - DatabaseMetaData metadata = mock(DatabaseMetaData.class); + var connection = mock(Connection.class); + var metadata = mock(DatabaseMetaData.class); when(metadata.getDatabaseProductName()).thenReturn("mockdb"); when(metadata.getSQLKeywords()).thenReturn("insert, select, delete"); when(metadata.getURL()).thenReturn("jdbc:mock:///authservice"); - ResultSet tables = mock(ResultSet.class); + var tables = mock(ResultSet.class); when(metadata.getTables(anyString(), anyString(), anyString(), any(String[].class))).thenReturn(tables); - Statement stmnt = mock(Statement.class); - ResultSet results = mock(ResultSet.class); + var stmnt = mock(Statement.class); + var results = mock(ResultSet.class); when(results.next()).thenReturn(true).thenReturn(false); when(stmnt.executeQuery(anyString())).thenReturn(results); when(stmnt.getUpdateCount()).thenReturn(-1); @@ -133,7 +132,7 @@ Connection createMockConnection() throws Exception { } private DataSource createDataSource(String dbname) throws SQLException { - Properties properties = new Properties(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:" + dbname + ";create=true"); return derbyDataSourceFactory.createDataSource(properties); } diff --git a/authservice/authservice.db.liquibase.test/src/test/java/no/priv/bang/authservice/db/liquibase/test/TestLiquibaseRunnerTest.java b/authservice/authservice.db.liquibase.test/src/test/java/no/priv/bang/authservice/db/liquibase/test/TestLiquibaseRunnerTest.java index 8c4c5646..14f58dac 100644 --- a/authservice/authservice.db.liquibase.test/src/test/java/no/priv/bang/authservice/db/liquibase/test/TestLiquibaseRunnerTest.java +++ b/authservice/authservice.db.liquibase.test/src/test/java/no/priv/bang/authservice/db/liquibase/test/TestLiquibaseRunnerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2022 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,9 +19,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.*; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; @@ -38,15 +35,15 @@ class TestLiquibaseRunnerTest { @Test void testCreateSchema() throws Exception { - TestLiquibaseRunner runner = new TestLiquibaseRunner(); + var runner = new TestLiquibaseRunner(); runner.activate(); - DataSource datasource = createDatasource(); + var datasource = createDatasource(); runner.prepare(datasource); - try(Connection connection = datasource.getConnection()) { - try(PreparedStatement statment = connection.prepareStatement("select * from users")) { - ResultSet results = statment.executeQuery(); - int usercount = 0; + try(var connection = datasource.getConnection()) { + try(var statment = connection.prepareStatement("select * from users")) { + var results = statment.executeQuery(); + var usercount = 0; while(results.next()) { ++usercount; } @@ -55,10 +52,10 @@ void testCreateSchema() throws Exception { } } - try(Connection connection = datasource.getConnection()) { - try(PreparedStatement statment = connection.prepareStatement("select * from roles")) { - ResultSet results = statment.executeQuery(); - int rolecount = 0; + try(var connection = datasource.getConnection()) { + try(var statment = connection.prepareStatement("select * from roles")) { + var results = statment.executeQuery(); + var rolecount = 0; while(results.next()) { ++rolecount; } @@ -70,12 +67,12 @@ void testCreateSchema() throws Exception { @Test void testCreateSchemaWhenSQLExceptionIsThrown() throws Exception { - TestLiquibaseRunner runner = new TestLiquibaseRunner(); - DataSource datasource = mock(DataSource.class); + var runner = new TestLiquibaseRunner(); + var datasource = mock(DataSource.class); when(datasource.getConnection()).thenThrow(SQLException.class); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to create schema for authservice Derby test database component"); @@ -83,15 +80,15 @@ void testCreateSchemaWhenSQLExceptionIsThrown() throws Exception { @Test void testFailWhenInsertingMockData() throws Exception { - TestLiquibaseRunner runner = new TestLiquibaseRunner(); - DataSource realdb = createDatasource(); - DataSource datasource = spy(realdb); + var runner = new TestLiquibaseRunner(); + var realdb = createDatasource(); + var datasource = spy(realdb); when(datasource.getConnection()) .thenCallRealMethod() .thenThrow(SQLException.class); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to insert mock data in authservice Derby test database component"); @@ -99,23 +96,23 @@ void testFailWhenInsertingMockData() throws Exception { @Test void testFailWhenUpdatingSchema() throws Exception { - TestLiquibaseRunner runner = new TestLiquibaseRunner(); - DataSource realdb = createDatasource(); - DataSource datasource = spy(realdb); + var runner = new TestLiquibaseRunner(); + var realdb = createDatasource(); + var datasource = spy(realdb); when(datasource.getConnection()) .thenCallRealMethod() .thenCallRealMethod() .thenThrow(SQLException.class); runner.activate(); - AuthserviceException ex = assertThrows( + var ex = assertThrows( AuthserviceException.class, () -> runner.prepare(datasource)); assertThat(ex.getMessage()).startsWith("Failed to update schema of authservice Derby test database component"); } private DataSource createDatasource() throws SQLException { - Properties properties = new Properties(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:authservice;create=true"); return derbyDataSourceFactory.createDataSource(properties); } diff --git a/authservice/authservice.db.liquibase/src/test/java/no/priv/bang/authservice/db/liquibase/AuthserviceLiquibaseTest.java b/authservice/authservice.db.liquibase/src/test/java/no/priv/bang/authservice/db/liquibase/AuthserviceLiquibaseTest.java index 0cd83ce2..0dd3117a 100644 --- a/authservice/authservice.db.liquibase/src/test/java/no/priv/bang/authservice/db/liquibase/AuthserviceLiquibaseTest.java +++ b/authservice/authservice.db.liquibase/src/test/java/no/priv/bang/authservice/db/liquibase/AuthserviceLiquibaseTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2023 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,15 +23,11 @@ import java.sql.Connection; import java.sql.DatabaseMetaData; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLIntegrityConstraintViolationException; import java.util.Properties; import java.util.logging.LogManager; -import javax.sql.DataSource; - import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.ops4j.pax.jdbc.derby.impl.DerbyDataSourceFactory; @@ -54,20 +50,20 @@ static void initialSetup() throws Exception { @Test void testCreateSchema() throws Exception { - AuthserviceLiquibase authserviceLiquibase = new AuthserviceLiquibase(); + var authserviceLiquibase = new AuthserviceLiquibase(); authserviceLiquibase.createInitialSchema(createConnection("authservice")); try(var connection = createConnection("authservice")) { - String username = "jad"; - String password = "1ad"; - String salt = "pepper"; - String email = "jad@gmail.com"; - String firstname = "Jane"; - String lastname = "Doe"; + var username = "jad"; + var password = "1ad"; + var salt = "pepper"; + var email = "jad@gmail.com"; + var firstname = "Jane"; + var lastname = "Doe"; addUser(connection, username, password, salt, email, firstname, lastname); assertUser(connection, username); - String rolename = "admin"; + var rolename = "admin"; addRole(connection, rolename, "Test role"); addUserRole(connection, rolename, username); assertUserRole(connection, rolename, username); @@ -77,7 +73,7 @@ void testCreateSchema() throws Exception { assertThrows(SQLIntegrityConstraintViolationException.class, () -> { addUserRole(connection, rolename, "notauser"); }); - String permission = "user_admin_api_write"; + var permission = "user_admin_api_write"; addPermission(connection, permission, "User admin REST API write access"); addRolePermission(connection, rolename, permission); assertThrows(SQLIntegrityConstraintViolationException.class, () -> { @@ -93,8 +89,8 @@ void testCreateSchema() throws Exception { @Test void testCreatingSchemaWithExceptionThrownOnConnectionClose() throws Exception { - AuthserviceLiquibase authserviceLiquibase = new AuthserviceLiquibase(); - Connection connection = spy(createConnection("authservice3")); + var authserviceLiquibase = new AuthserviceLiquibase(); + var connection = spy(createConnection("authservice3")); doNothing().when(connection).setAutoCommit(anyBoolean()); doThrow(RuntimeException.class).when(connection).close(); @@ -106,7 +102,7 @@ void testCreatingSchemaWithExceptionThrownOnConnectionClose() throws Exception { @Test void testApplyChangelist() throws Exception { - AuthserviceLiquibase authserviceLiquibase = new AuthserviceLiquibase(); + var authserviceLiquibase = new AuthserviceLiquibase(); authserviceLiquibase.createInitialSchema(createConnection("authservice2")); authserviceLiquibase.applyChangelist( @@ -116,16 +112,16 @@ void testApplyChangelist() throws Exception { try(var connection = createConnection("authservice2")) { - String username = "jad"; + var username = "jad"; assertUser(connection, username); - String rolename = "caseworker"; + var rolename = "caseworker"; assertUserRole(connection, rolename, username); } } @Test void testApplyChangelistFailingWhenResourceIsMissing() throws Exception { - AuthserviceLiquibase authserviceLiquibase = new AuthserviceLiquibase(); + var authserviceLiquibase = new AuthserviceLiquibase(); var testClassLoader = getClass().getClassLoader(); try (var conn1 = createConnection("authservice4")) { authserviceLiquibase.createInitialSchema(conn1); @@ -143,7 +139,7 @@ void testApplyChangelistFailingWhenResourceIsMissing() throws Exception { @Test void testApplyChangelistFailingWhenFailOnClose() throws Exception { - AuthserviceLiquibase authserviceLiquibase = new AuthserviceLiquibase(); + var authserviceLiquibase = new AuthserviceLiquibase(); var testClassLoader = getClass().getClassLoader(); try (var conn1 = createConnection("authservice5")) { authserviceLiquibase.createInitialSchema(conn1); @@ -162,7 +158,7 @@ void testApplyChangelistFailingWhenFailOnClose() throws Exception { } private void addUser(Connection connection, String username, String password, String salt, String email, String firstname, String lastname) throws SQLException { - try (PreparedStatement statement = connection.prepareStatement("insert into users (username, password, password_salt, email, firstname, lastname) values (?, ?, ?, ?, ?, ?)")) { + try (var statement = connection.prepareStatement("insert into users (username, password, password_salt, email, firstname, lastname) values (?, ?, ?, ?, ?, ?)")) { statement.setString(1, username); statement.setString(2, password); statement.setString(3, salt); @@ -174,7 +170,7 @@ private void addUser(Connection connection, String username, String password, St } private void addRole(Connection connection, String rolename, String description) throws Exception { - try (PreparedStatement statement = connection.prepareStatement("insert into roles (role_name, description) values (?, ?)")) { + try (var statement = connection.prepareStatement("insert into roles (role_name, description) values (?, ?)")) { statement.setString(1, rolename); statement.setString(2, description); statement.executeUpdate(); @@ -182,7 +178,7 @@ private void addRole(Connection connection, String rolename, String description) } private void addUserRole(Connection connection, String rolename, String username) throws Exception { - try (PreparedStatement statement = connection.prepareStatement("insert into user_roles (role_name, username) values (?, ?)")) { + try (var statement = connection.prepareStatement("insert into user_roles (role_name, username) values (?, ?)")) { statement.setString(1, rolename); statement.setString(2, username); statement.executeUpdate(); @@ -190,24 +186,24 @@ private void addUserRole(Connection connection, String rolename, String username } private void assertUser(Connection connection, String username) throws SQLException { - try (PreparedStatement statement = connection.prepareStatement("select * from users where username=?")) { + try (var statement = connection.prepareStatement("select * from users where username=?")) { statement.setString(1, username); - ResultSet results = statement.executeQuery(); + var results = statement.executeQuery(); assertTrue(results.next(), "Expected at least one match"); } } private void assertUserRole(Connection connection, String rolename, String username) throws Exception { - try (PreparedStatement statement = connection.prepareStatement("select * from user_roles where role_name=? and username=?")) { + try (var statement = connection.prepareStatement("select * from user_roles where role_name=? and username=?")) { statement.setString(1, rolename); statement.setString(2, username); - ResultSet results = statement.executeQuery(); + var results = statement.executeQuery(); assertTrue(results.next(), "Expected at least one match"); } } private void addPermission(Connection connection, String permission, String description) throws Exception { - try (PreparedStatement statement = connection.prepareStatement("insert into permissions (permission_name, description) values (?, ?)")) { + try (var statement = connection.prepareStatement("insert into permissions (permission_name, description) values (?, ?)")) { statement.setString(1, permission); statement.setString(2, description); statement.executeUpdate(); @@ -215,7 +211,7 @@ private void addPermission(Connection connection, String permission, String desc } private void addRolePermission(Connection connection, String rolename, String permission) throws Exception { - try (PreparedStatement statement = connection.prepareStatement("insert into roles_permissions (role_name, permission_name) values (?, ?)")) { + try (var statement = connection.prepareStatement("insert into roles_permissions (role_name, permission_name) values (?, ?)")) { statement.setString(1, rolename); statement.setString(2, permission); statement.executeUpdate(); @@ -223,9 +219,9 @@ private void addRolePermission(Connection connection, String rolename, String pe } private Connection createConnection(String dbname) throws Exception { - Properties properties = new Properties(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:" + dbname + ";create=true"); - DataSource dataSource = derbyDataSourceFactory.createDataSource(properties); + var dataSource = derbyDataSourceFactory.createDataSource(properties); return dataSource.getConnection(); } diff --git a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthserviceExceptionTest.java b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthserviceExceptionTest.java index 58968bc2..e40fc293 100644 --- a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthserviceExceptionTest.java +++ b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthserviceExceptionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,17 +23,17 @@ class AuthserviceExceptionTest { @Test void testCreateWithException() { - String message = "Caught exception"; - NullPointerException inner = new NullPointerException(); - AuthserviceException exception = new AuthserviceException(message, inner); + var message = "Caught exception"; + var inner = new NullPointerException(); + var exception = new AuthserviceException(message, inner); assertEquals(message, exception.getMessage()); assertEquals(inner, exception.getCause()); } @Test void testCreateWithMessage() { - String message = "Caught exception"; - AuthserviceException exception = new AuthserviceException(message); + var message = "Caught exception"; + var exception = new AuthserviceException(message); assertEquals(message, exception.getMessage()); } diff --git a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordEmptyExceptionTest.java b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordEmptyExceptionTest.java index 49048445..b01ab07f 100644 --- a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordEmptyExceptionTest.java +++ b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordEmptyExceptionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ class AuthservicePasswordEmptyExceptionTest { @Test void testCreate() { - String message = "The passwords don't match"; - AuthservicePasswordEmptyException exception = new AuthservicePasswordEmptyException(message); + var message = "The passwords don't match"; + var exception = new AuthservicePasswordEmptyException(message); assertEquals(message, exception.getMessage()); } diff --git a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordsNotIdenticalExceptionTest.java b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordsNotIdenticalExceptionTest.java index 1e7bf246..0624af77 100644 --- a/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordsNotIdenticalExceptionTest.java +++ b/authservice/authservice.definitions/src/test/java/no/priv/bang/authservice/definitions/AuthservicePasswordsNotIdenticalExceptionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,8 +23,8 @@ class AuthservicePasswordsNotIdenticalExceptionTest { @Test void testCreate() { - String message = "The passwords don't match"; - AuthservicePasswordsNotIdenticalException exception = new AuthservicePasswordsNotIdenticalException(message); + var message = "The passwords don't match"; + var exception = new AuthservicePasswordsNotIdenticalException(message); assertEquals(message, exception.getMessage()); } diff --git a/authservice/authservice.tests/src/test/java/no/priv/bang/authservice/tests/AuthserviceIntegrationTest.java b/authservice/authservice.tests/src/test/java/no/priv/bang/authservice/tests/AuthserviceIntegrationTest.java index c3a418d5..bed7424f 100644 --- a/authservice/authservice.tests/src/test/java/no/priv/bang/authservice/tests/AuthserviceIntegrationTest.java +++ b/authservice/authservice.tests/src/test/java/no/priv/bang/authservice/tests/AuthserviceIntegrationTest.java @@ -11,7 +11,6 @@ import org.ops4j.pax.exam.Configuration; import org.ops4j.pax.exam.Option; import org.ops4j.pax.exam.junit.PaxExam; -import org.ops4j.pax.exam.options.MavenArtifactUrlReference; import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy; import org.ops4j.pax.exam.spi.reactors.PerClass; @@ -21,13 +20,13 @@ public class AuthserviceIntegrationTest extends KarafTestSupport { @Configuration public Option[] config() { - final MavenArtifactUrlReference authserviceFeatureRepo = maven() + final var authserviceFeatureRepo = maven() .groupId("no.priv.bang.authservice") .artifactId("karaf") .version("LATEST") .type("xml") .classifier("features"); - Option[] options = new Option[] { + var options = new Option[] { features(authserviceFeatureRepo) }; return Stream.of(super.config(), options).flatMap(Stream::of).toArray(Option[]::new); diff --git a/authservice/authservice.users/src/test/java/no/priv/bang/authservice/users/UserManagementServiceProviderTest.java b/authservice/authservice.users/src/test/java/no/priv/bang/authservice/users/UserManagementServiceProviderTest.java index f608acd5..e6f4fe16 100644 --- a/authservice/authservice.users/src/test/java/no/priv/bang/authservice/users/UserManagementServiceProviderTest.java +++ b/authservice/authservice.users/src/test/java/no/priv/bang/authservice/users/UserManagementServiceProviderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,13 +24,9 @@ import java.sql.SQLException; import java.util.Arrays; import java.util.Collections; -import java.util.List; -import java.util.Map; import java.util.Properties; import javax.sql.DataSource; -import org.apache.shiro.authc.AuthenticationInfo; -import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.authc.credential.CredentialsMatcher; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; @@ -60,44 +56,44 @@ class UserManagementServiceProviderTest { @BeforeAll static void setupForAll() throws Exception { - DerbyDataSourceFactory derbyDataSourceFactory = new DerbyDataSourceFactory(); - Properties properties = new Properties(); + var derbyDataSourceFactory = new DerbyDataSourceFactory(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:ukelonn;create=true"); datasource = derbyDataSourceFactory.createDataSource(properties); - TestLiquibaseRunner runner = new TestLiquibaseRunner(); + var runner = new TestLiquibaseRunner(); runner.activate(); runner.prepare(datasource); } @Test void testGetUser() { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - String username = "jod"; - User user = provider.getUser(username); + var username = "jod"; + var user = provider.getUser(username); assertEquals(username, user.getUsername()); } @Test void testGetUserWithEmptyResults() throws Exception { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); - PreparedStatement statement = mock(PreparedStatement.class); - ResultSet results = mock(ResultSet.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); + var statement = mock(PreparedStatement.class); + var results = mock(ResultSet.class); when(statement.executeQuery()).thenReturn(results); when(connection.prepareStatement(anyString())).thenReturn(statement); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); provider.activate(); - String username = "jod"; + var username = "jod"; assertThrows(AuthserviceException.class, () -> { provider.getUser(username); }); @@ -105,17 +101,17 @@ void testGetUserWithEmptyResults() throws Exception { @Test void testGetUserWhenSQLExceptionIsThrown() throws Exception { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); provider.activate(); - String username = "jod"; + var username = "jod"; assertThrows(AuthserviceException.class, () -> { provider.getUser(username); }); @@ -123,28 +119,28 @@ void testGetUserWhenSQLExceptionIsThrown() throws Exception { @Test void testGetRolesForUser() { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - String username = "jod"; - List roles = provider.getRolesForUser(username); + var username = "jod"; + var roles = provider.getRolesForUser(username); assertThat(roles).isNotEmpty(); } @Test void testGetRolesForUserWhenSqlExceptionIsThrown() throws Exception { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); + var mockdatasource = mock(DataSource.class); when(mockdatasource.getConnection()).thenThrow(AuthserviceException.class); provider.setDataSource(mockdatasource); provider.activate(); - String username = "jod"; + var username = "jod"; assertThrows(AuthserviceException.class, () -> { provider.getRolesForUser(username); }); @@ -152,28 +148,28 @@ void testGetRolesForUserWhenSqlExceptionIsThrown() throws Exception { @Test void testGetPermissionsForUser() { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - String username = "jod"; - List permissions = provider.getPermissionsForUser(username); + var username = "jod"; + var permissions = provider.getPermissionsForUser(username); assertThat(permissions).isNotEmpty(); } @Test void testGetPermissionsForUserWhenSQLExceptionIsThrown() throws Exception { - UserManagementServiceProvider provider = new UserManagementServiceProvider(); - MockLogService logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); + var mockdatasource = mock(DataSource.class); when(mockdatasource.getConnection()).thenThrow(SQLException.class); provider.setDataSource(mockdatasource); provider.activate(); - String username = "jod"; + var username = "jod"; assertThrows(AuthserviceException.class, () -> { provider.getPermissionsForUser(username); }); @@ -181,11 +177,11 @@ void testGetPermissionsForUserWhenSQLExceptionIsThrown() throws Exception { @Test void testListUsersWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); @@ -198,17 +194,17 @@ void testListUsersWhenSQLExceptionIsThrown() throws Exception { @Test void testModifyUserWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); provider.activate(); - User dummy = User.with().build(); + var dummy = User.with().build(); assertThrows(AuthserviceException.class, () -> { provider.modifyUser(dummy); }); @@ -216,63 +212,63 @@ void testModifyUserWhenSQLExceptionIsThrown() throws Exception { @Test void testModifyUser() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List users = provider.getUsers(); + var users = provider.getUsers(); assertThat(users).isNotEmpty(); - User firstUser = users.get(0); - User modifiedUser = User.with(firstUser).firstname("John").lastname("Smith").build(); - List updatedUsers = provider.modifyUser(modifiedUser); - User updatedUser = updatedUsers.get(0); + var firstUser = users.get(0); + var modifiedUser = User.with(firstUser).firstname("John").lastname("Smith").build(); + var updatedUsers = provider.modifyUser(modifiedUser); + var updatedUser = updatedUsers.get(0); assertEquals(modifiedUser.getFirstname(), updatedUser.getFirstname()); assertEquals(modifiedUser.getLastname(), updatedUser.getLastname()); } @Test void testUpdatePassword() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List users = provider.getUsers(); - User user = users.get(0); - String newPassword = "zecret"; - UserAndPasswords passwords = UserAndPasswords.with() + var users = provider.getUsers(); + var user = users.get(0); + var newPassword = "zecret"; + var passwords = UserAndPasswords.with() .user(user) .password1(newPassword) .password2(newPassword) .passwordsNotIdentical(false) .build(); - List updatedUsers = provider.updatePassword(passwords); + var updatedUsers = provider.updatePassword(passwords); assertEquals(users.size(), updatedUsers.size()); // Check that the new password works - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.setCredentialsMatcher(createSha256HashMatcher(1024)); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), newPassword.toCharArray()); - AuthenticationInfo authenticationInfoForUser = realm.getAuthenticationInfo(token); + var token = new UsernamePasswordToken(user.getUsername(), newPassword.toCharArray()); + var authenticationInfoForUser = realm.getAuthenticationInfo(token); assertEquals(1, authenticationInfoForUser.getPrincipals().asList().size()); } @Test void testUpdatePasswordDifferentPasswords() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List users = provider.getUsers(); - User user = users.get(0); - UserAndPasswords passwords = UserAndPasswords.with() + var users = provider.getUsers(); + var user = users.get(0); + var passwords = UserAndPasswords.with() .user(user) .password1("not") .password2("matching") @@ -285,15 +281,15 @@ void testUpdatePasswordDifferentPasswords() { @Test void testUpdatePasswordNullPasswords() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List users = provider.getUsers(); - User user = users.get(0); - UserAndPasswords passwords = UserAndPasswords.with().user(user).build(); + var users = provider.getUsers(); + var user = users.get(0); + var passwords = UserAndPasswords.with().user(user).build(); assertThrows(AuthservicePasswordEmptyException.class, () -> { provider.updatePassword(passwords); }); @@ -301,15 +297,15 @@ void testUpdatePasswordNullPasswords() { @Test void testUpdatePasswordEmptyPassword() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List users = provider.getUsers(); - User user = users.get(0); - UserAndPasswords passwords = UserAndPasswords.with() + var users = provider.getUsers(); + var user = users.get(0); + var passwords = UserAndPasswords.with() .user(user) .password1("") .password2(null) @@ -321,13 +317,13 @@ void testUpdatePasswordEmptyPassword() { @Test void testUpdatePasswordNullUser() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .password1("secret") .password2("secret") .build(); @@ -338,24 +334,24 @@ void testUpdatePasswordNullUser() { @Test void testUpdatePasswordWithWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); provider.activate(); - User user = User.with() + var user = User.with() .userid(100) .username("notmatching") .email("nomatch@gmail.com") .firstname("Not") .lastname("Match") .build(); - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") @@ -367,20 +363,20 @@ void testUpdatePasswordWithWhenSQLExceptionIsThrown() throws Exception { @Test void testUpdatePasswordUserNotInDatabase() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - User user = User.with() + var user = User.with() .userid(100) .username("notmatching") .email("nomatch@gmail.com") .firstname("Not") .lastname("Match") .build(); - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") @@ -392,57 +388,57 @@ void testUpdatePasswordUserNotInDatabase() { @Test void testAddUser() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List usersBeforeAddingOne = provider.getUsers(); - User newUser = User.with() + var usersBeforeAddingOne = provider.getUsers(); + var newUser = User.with() .userid(-1) .username("jsmith") .email("johnsmith31@gmail.com") .firstname("John") .lastname("Smith") .build(); - String newUserPassword = "supersecret"; - UserAndPasswords newUserWithPasswords = UserAndPasswords.with() + var newUserPassword = "supersecret"; + var newUserWithPasswords = UserAndPasswords.with() .user(newUser) .password1(newUserPassword) .password2(newUserPassword) .build(); - List users = provider.addUser(newUserWithPasswords); + var users = provider.addUser(newUserWithPasswords); assertThat(users).hasSizeGreaterThan(usersBeforeAddingOne.size()); // Check that the password of the new user is as expected - User user = users.stream().filter(u -> "jsmith".equals(u.getUsername())).findFirst().get(); - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var user = users.stream().filter(u -> "jsmith".equals(u.getUsername())).findFirst().get(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.setCredentialsMatcher(createSha256HashMatcher(1024)); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), newUserPassword.toCharArray()); - AuthenticationInfo authenticationInfoForUser = realm.getAuthenticationInfo(token); + var token = new UsernamePasswordToken(user.getUsername(), newUserPassword.toCharArray()); + var authenticationInfoForUser = realm.getAuthenticationInfo(token); assertEquals(1, authenticationInfoForUser.getPrincipals().asList().size()); } @Test void testAddUserWhenUsernameExists() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - User newUser = User.with() + var newUser = User.with() .userid(-1) .username("admin") .email("admin@gmail.com") .firstname("Admin") .lastname("Istrator") .build(); - String newUserPassword = "supersecret"; - UserAndPasswords newUserWithPasswords = UserAndPasswords.with() + var newUserPassword = "supersecret"; + var newUserWithPasswords = UserAndPasswords.with() .user(newUser) .password1(newUserPassword) .password2(newUserPassword) @@ -454,28 +450,28 @@ void testAddUserWhenUsernameExists() { @Test void testAddUserWhenNewUserCantBeRetrievedFromTheBase() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); - PreparedStatement statement = mock(PreparedStatement.class); - ResultSet results = mock(ResultSet.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); + var statement = mock(PreparedStatement.class); + var results = mock(ResultSet.class); when(statement.executeQuery()).thenReturn(results); when(connection.prepareStatement(anyString())).thenReturn(statement); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); provider.activate(); - User newUser = User.with() + var newUser = User.with() .userid(-1) .username("jod") .email("jod31@gmail.com") .firstname("John") .lastname("Doe") .build(); - String newUserPassword = "supersecret"; - UserAndPasswords newUserWithPasswords = UserAndPasswords.with() + var newUserPassword = "supersecret"; + var newUserWithPasswords = UserAndPasswords.with() .user(newUser) .password1(newUserPassword) .password2(newUserPassword) @@ -487,38 +483,38 @@ void testAddUserWhenNewUserCantBeRetrievedFromTheBase() throws Exception { @Test void testAddAndModifyRoles() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List originalRoles = provider.getRoles(); + var originalRoles = provider.getRoles(); assertThat(originalRoles).isNotEmpty(); - Role dummy1 = Role.with().id(-1).rolename("dummy").description("dummy").build(); - List rolesAfterAdd = provider.addRole(dummy1); + var dummy1 = Role.with().id(-1).rolename("dummy").description("dummy").build(); + var rolesAfterAdd = provider.addRole(dummy1); assertThat(rolesAfterAdd).hasSizeGreaterThan(originalRoles.size()); // Verify that trying to insert a new role with the same rolename fails - Role dummy2 = Role.with().id(-1).rolename("dummy").description("dummy").build(); + var dummy2 = Role.with().id(-1).rolename("dummy").description("dummy").build(); assertThrows(AuthserviceException.class, () -> { provider.addRole(dummy2); }); // Modify a role - Role roleToModify = rolesAfterAdd.stream().filter((r) -> "dummy".equals(r.getRolename())).findFirst().get(); - Role modifiedRoleToUpdate = Role.with(roleToModify) + var roleToModify = rolesAfterAdd.stream().filter((r) -> "dummy".equals(r.getRolename())).findFirst().get(); + var modifiedRoleToUpdate = Role.with(roleToModify) .rolename("dumy") .description("A new description") .build(); - List modifiedRoles = provider.modifyRole(modifiedRoleToUpdate); - Role modifiedRole = modifiedRoles.stream().filter((r) -> roleToModify.getId() == r.getId()).findFirst().get(); + var modifiedRoles = provider.modifyRole(modifiedRoleToUpdate); + var modifiedRole = modifiedRoles.stream().filter((r) -> roleToModify.getId() == r.getId()).findFirst().get(); assertEquals(modifiedRoleToUpdate.getRolename(), modifiedRole.getRolename()); assertEquals(modifiedRoleToUpdate.getDescription(), modifiedRole.getDescription()); // Verify that changing the role name to a name already in the database fails - Role failingToUpdate = Role.with(modifiedRole) + var failingToUpdate = Role.with(modifiedRole) .rolename("admin") .build(); assertThrows(AuthserviceException.class, () -> { @@ -527,24 +523,24 @@ void testAddAndModifyRoles() { // Verify that trying to modify a role not present logs a warning // (use an id not found in the database) - int numberOfLogMessagesBeforeUpdate = logservice.getLogmessages().size(); - Role failingToUpdate2 = Role.with(modifiedRole) + var numberOfLogMessagesBeforeUpdate = logservice.getLogmessages().size(); + var failingToUpdate2 = Role.with(modifiedRole) .id(1000) .rolename("dummy") .build(); - List failedToUpdateRoles2 = provider.modifyRole(failingToUpdate2); + var failedToUpdateRoles2 = provider.modifyRole(failingToUpdate2); assertEquals(modifiedRoles.size(), failedToUpdateRoles2.size()); - int numberOfLogMessagesAfterUpdate = logservice.getLogmessages().size(); + var numberOfLogMessagesAfterUpdate = logservice.getLogmessages().size(); assertThat(numberOfLogMessagesAfterUpdate).isGreaterThan(numberOfLogMessagesBeforeUpdate); } @Test void testGetRolesWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); @@ -557,38 +553,38 @@ void testGetRolesWhenSQLExceptionIsThrown() throws Exception { @Test void testAddAndModifyPermissions() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - List originalPermissions = provider.getPermissions(); + var originalPermissions = provider.getPermissions(); assertThat(originalPermissions).isNotEmpty(); - Permission dummy1 = Permission.with().id(-1).permissionname("dummy").description("dummy").build(); - List permissionsAfterAdd = provider.addPermission(dummy1); + var dummy1 = Permission.with().id(-1).permissionname("dummy").description("dummy").build(); + var permissionsAfterAdd = provider.addPermission(dummy1); assertThat(permissionsAfterAdd).hasSizeGreaterThan(originalPermissions.size()); // Verify that trying to insert a new role with the same permissionname fails - Permission dummy2 = Permission.with().id(-1).permissionname("dummy").description("dummy").build(); + var dummy2 = Permission.with().id(-1).permissionname("dummy").description("dummy").build(); assertThrows(AuthserviceException.class, () -> { provider.addPermission(dummy2); }); // Modify a permission - Permission permissionToModify = permissionsAfterAdd.stream().filter((r) -> "dummy".equals(r.getPermissionname())).findFirst().get(); - Permission modifiedPermissionToUpdate = Permission.with(permissionToModify) + var permissionToModify = permissionsAfterAdd.stream().filter((r) -> "dummy".equals(r.getPermissionname())).findFirst().get(); + var modifiedPermissionToUpdate = Permission.with(permissionToModify) .permissionname("dumy") .description("A new description") .build(); - List modifiedPermissions = provider.modifyPermission(modifiedPermissionToUpdate); - Permission modifiedPermission = modifiedPermissions.stream().filter((r) -> permissionToModify.getId() == r.getId()).findFirst().get(); + var modifiedPermissions = provider.modifyPermission(modifiedPermissionToUpdate); + var modifiedPermission = modifiedPermissions.stream().filter((r) -> permissionToModify.getId() == r.getId()).findFirst().get(); assertEquals(modifiedPermissionToUpdate.getPermissionname(), modifiedPermission.getPermissionname()); assertEquals(modifiedPermissionToUpdate.getDescription(), modifiedPermission.getDescription()); // Verify that changing the permission name to a name already in the database fails - Permission failingToUpdate = Permission.with(modifiedPermission) + var failingToUpdate = Permission.with(modifiedPermission) .permissionname("user_admin_api_read") .build(); assertThrows(AuthserviceException.class, () -> { @@ -597,24 +593,24 @@ void testAddAndModifyPermissions() { // Verify that trying to modify a permission not present logs a warning // (use an id not found in the database) - int numberOfLogMessagesBeforeUpdate = logservice.getLogmessages().size(); - Permission failingToUpdate2 = Permission.with(modifiedPermission) + var numberOfLogMessagesBeforeUpdate = logservice.getLogmessages().size(); + var failingToUpdate2 = Permission.with(modifiedPermission) .id(1000) .permissionname("dummy") .build(); - List failedToUpdatePermission2 = provider.modifyPermission(failingToUpdate2); + var failedToUpdatePermission2 = provider.modifyPermission(failingToUpdate2); assertEquals(modifiedPermissions.size(), failedToUpdatePermission2.size()); - int numberOfLogMessagesAfterUpdate = logservice.getLogmessages().size(); + var numberOfLogMessagesAfterUpdate = logservice.getLogmessages().size(); assertThat(numberOfLogMessagesAfterUpdate).isGreaterThan(numberOfLogMessagesBeforeUpdate); } @Test void testGetPermissionsWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); @@ -627,58 +623,58 @@ void testGetPermissionsWhenSQLExceptionIsThrown() throws Exception { @Test void testAddAndModifyUserRoles() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - Map> originalUserRoles = provider.getUserRoles(); + var originalUserRoles = provider.getUserRoles(); assertThat(originalUserRoles).isNotEmpty(); // Add a new user role - User user = provider.getUsers().get(0); - Role newRole = provider.getRoles().stream().filter((r) -> "visitor".equals(r.getRolename())).findFirst().get(); - List originalRolesForUser = originalUserRoles.get(user.getUsername()); - UserRoles userroles = UserRoles.with().user(user).roles(Arrays.asList(newRole)).build(); - Map> userRolesAfterAddingRole = provider.addUserRoles(userroles ); + var user = provider.getUsers().get(0); + var newRole = provider.getRoles().stream().filter((r) -> "visitor".equals(r.getRolename())).findFirst().get(); + var originalRolesForUser = originalUserRoles.get(user.getUsername()); + var userroles = UserRoles.with().user(user).roles(Arrays.asList(newRole)).build(); + var userRolesAfterAddingRole = provider.addUserRoles(userroles ); assertThat(userRolesAfterAddingRole.get(user.getUsername())).hasSizeGreaterThan(originalRolesForUser.size()); // Add the same role again and verify that the role count doesn't increase - Map> userRolesAfterAddingRole2 = provider.addUserRoles(userroles); + var userRolesAfterAddingRole2 = provider.addUserRoles(userroles); assertEquals(userRolesAfterAddingRole.get(user.getUsername()).size(), userRolesAfterAddingRole2.get(user.getUsername()).size()); // Try adding a non-existing role - Role nonExistingRole = Role.with().id(42).rolename("notfound").description("dummy").build(); - UserRoles userroles2 = UserRoles.with().user(user).roles(Arrays.asList(nonExistingRole)).build(); + var nonExistingRole = Role.with().id(42).rolename("notfound").description("dummy").build(); + var userroles2 = UserRoles.with().user(user).roles(Arrays.asList(nonExistingRole)).build(); assertThrows(AuthserviceException.class, () -> { provider.addUserRoles(userroles2); }); // Remove the role - Map> userRolesAfterRemovingRole = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(newRole)).build()); + var userRolesAfterRemovingRole = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(newRole)).build()); assertThat(userRolesAfterRemovingRole.get(user.getUsername())).hasSizeLessThan(userRolesAfterAddingRole.get(user.getUsername()).size()); // Try removing the role again and observe that the count is the same - Map> userRolesAfterRemovingRole2 = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(newRole)).build()); + var userRolesAfterRemovingRole2 = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(newRole)).build()); assertEquals(userRolesAfterRemovingRole.get(user.getUsername()).size(), userRolesAfterRemovingRole2.get(user.getUsername()).size()); // Try removing an empty role list and observe that the count is the same - Map> userRolesAfterRemovingRole3 = provider.removeUserRoles(UserRoles.with().user(user).roles(Collections.emptyList()).build()); + var userRolesAfterRemovingRole3 = provider.removeUserRoles(UserRoles.with().user(user).roles(Collections.emptyList()).build()); assertEquals(userRolesAfterRemovingRole.get(user.getUsername()).size(), userRolesAfterRemovingRole3.get(user.getUsername()).size()); // Try removing a non-existing role and observe that the count is the same - Map> userRolesAfterRemovingRole4 = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(nonExistingRole)).build()); + var userRolesAfterRemovingRole4 = provider.removeUserRoles(UserRoles.with().user(user).roles(Arrays.asList(nonExistingRole)).build()); assertEquals(userRolesAfterRemovingRole.get(user.getUsername()).size(), userRolesAfterRemovingRole4.get(user.getUsername()).size()); } @Test void testUserRolesOperationsWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); @@ -688,12 +684,12 @@ void testUserRolesOperationsWhenSQLExceptionIsThrown() throws Exception { provider.getUserRoles(); }); - User user = User.with().build(); + var user = User.with().build(); assertThrows(AuthserviceException.class, () -> { provider.findExistingRolesForUser(user); }); - UserRoles userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); + var userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); assertThrows(AuthserviceException.class, () -> { provider.removeUserRoles(userroles); }); @@ -701,57 +697,57 @@ void testUserRolesOperationsWhenSQLExceptionIsThrown() throws Exception { @Test void testAddAndModifyRolesPermissions() { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); provider.setDataSource(datasource); provider.activate(); - Map> originalRolesPermissions = provider.getRolesPermissions(); + var originalRolesPermissions = provider.getRolesPermissions(); assertThat(originalRolesPermissions).isNotEmpty(); // Add a new role permission - Role role = provider.getRoles().get(1); - Permission newPermission = provider.getPermissions().stream().filter((r) -> "user_read".equals(r.getPermissionname())).findFirst().get(); - List originalRolesForUser = originalRolesPermissions.get(role.getRolename()); - Map> rolesPermissionsAfterAddingRole = provider.addRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); + var role = provider.getRoles().get(1); + var newPermission = provider.getPermissions().stream().filter((r) -> "user_read".equals(r.getPermissionname())).findFirst().get(); + var originalRolesForUser = originalRolesPermissions.get(role.getRolename()); + var rolesPermissionsAfterAddingRole = provider.addRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); assertThat(rolesPermissionsAfterAddingRole.get(role.getRolename())).hasSizeGreaterThan(originalRolesForUser.size()); // Add the same permission again and verify that the role count doesn't increase - Map> rolesPermissionsAfterAddingRole2 = provider.addRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); + var rolesPermissionsAfterAddingRole2 = provider.addRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); assertEquals(rolesPermissionsAfterAddingRole.get(role.getRolename()).size(), rolesPermissionsAfterAddingRole2.get(role.getRolename()).size()); // Try adding a non-existing role - Permission nonExistingPermission = Permission.with().id(42).permissionname("notfound").description("dummy").build(); - RolePermissions rolepermissions = RolePermissions.with().role(role).permissions(Arrays.asList(nonExistingPermission)).build(); + var nonExistingPermission = Permission.with().id(42).permissionname("notfound").description("dummy").build(); + var rolepermissions = RolePermissions.with().role(role).permissions(Arrays.asList(nonExistingPermission)).build(); assertThrows(AuthserviceException.class, () -> { provider.addRolePermissions(rolepermissions); }); // Remove the role - Map> rolesPermissionsAfterRemovingRole = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); + var rolesPermissionsAfterRemovingRole = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); assertThat(rolesPermissionsAfterRemovingRole.get(role.getRolename())).hasSizeLessThan(rolesPermissionsAfterAddingRole.get(role.getRolename()).size()); // Try removing the role again and observe that the count is the same - Map> rolesPermissionsAfterRemovingRole2 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); + var rolesPermissionsAfterRemovingRole2 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(newPermission)).build()); assertEquals(rolesPermissionsAfterRemovingRole.get(role.getRolename()).size(), rolesPermissionsAfterRemovingRole2.get(role.getRolename()).size()); // Try removing an empty role list and observe that the count is the same - Map> rolesPermissionsAfterRemovingRole3 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Collections.emptyList()).build()); + var rolesPermissionsAfterRemovingRole3 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Collections.emptyList()).build()); assertEquals(rolesPermissionsAfterRemovingRole.get(role.getRolename()).size(), rolesPermissionsAfterRemovingRole3.get(role.getRolename()).size()); // Try removing a non-existing role and observe that the count is the same - Map> rolesPermissionsAfterRemovingRole4 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(nonExistingPermission)).build()); + var rolesPermissionsAfterRemovingRole4 = provider.removeRolePermissions(RolePermissions.with().role(role).permissions(Arrays.asList(nonExistingPermission)).build()); assertEquals(rolesPermissionsAfterRemovingRole.get(role.getRolename()).size(), rolesPermissionsAfterRemovingRole4.get(role.getRolename()).size()); } @Test void testRolesPermissionsOperationsWhenSQLExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementServiceProvider provider = new UserManagementServiceProvider(); + var logservice = new MockLogService(); + var provider = new UserManagementServiceProvider(); provider.setLogservice(logservice); - DataSource mockdatasource = mock(DataSource.class); - Connection connection = mock(Connection.class); + var mockdatasource = mock(DataSource.class); + var connection = mock(Connection.class); when(connection.prepareStatement(anyString())).thenThrow(SQLException.class); when(mockdatasource.getConnection()).thenReturn(connection); provider.setDataSource(mockdatasource); @@ -761,19 +757,19 @@ void testRolesPermissionsOperationsWhenSQLExceptionIsThrown() throws Exception { provider.getRolesPermissions(); }); - Role role = Role.with().build(); + var role = Role.with().build(); assertThrows(AuthserviceException.class, () -> { provider.findExistingPermissionsForRole(role); }); - RolePermissions rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); + var rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); assertThrows(AuthserviceException.class, () -> { provider.removeRolePermissions(rolepermissions); }); } private CredentialsMatcher createSha256HashMatcher(int iterations) { - HashedCredentialsMatcher credentialsMatcher = new HashedCredentialsMatcher(Sha256Hash.ALGORITHM_NAME); + var credentialsMatcher = new HashedCredentialsMatcher(Sha256Hash.ALGORITHM_NAME); credentialsMatcher.setStoredCredentialsHexEncoded(false); credentialsMatcher.setHashIterations(iterations); return credentialsMatcher; diff --git a/authservice/authservice.web.security.dbrealm/src/test/java/no/priv/bang/authservice/web/security/dbrealm/AuthserviceDbRealmTest.java b/authservice/authservice.web.security.dbrealm/src/test/java/no/priv/bang/authservice/web/security/dbrealm/AuthserviceDbRealmTest.java index da60b958..fed8940d 100644 --- a/authservice/authservice.web.security.dbrealm/src/test/java/no/priv/bang/authservice/web/security/dbrealm/AuthserviceDbRealmTest.java +++ b/authservice/authservice.web.security.dbrealm/src/test/java/no/priv/bang/authservice/web/security/dbrealm/AuthserviceDbRealmTest.java @@ -8,7 +8,6 @@ import javax.sql.DataSource; -import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; @@ -28,11 +27,11 @@ class AuthserviceDbRealmTest { @BeforeAll static void setupForAll() throws Exception { - DerbyDataSourceFactory derbyDataSourceFactory = new DerbyDataSourceFactory(); - Properties properties = new Properties(); + var derbyDataSourceFactory = new DerbyDataSourceFactory(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:authservice;create=true"); datasource = derbyDataSourceFactory.createDataSource(properties); - TestLiquibaseRunner runner = new TestLiquibaseRunner(); + var runner = new TestLiquibaseRunner(); runner.activate(); runner.prepare(datasource); } @@ -43,11 +42,11 @@ static void setupForAll() throws Exception { */ @Test void testGetAuthenticationInfo() throws SQLException { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken("jad", "1ad".toCharArray()); - AuthenticationInfo authInfo = realm.getAuthenticationInfo(token); + var token = new UsernamePasswordToken("jad", "1ad".toCharArray()); + var authInfo = realm.getAuthenticationInfo(token); assertEquals(1, authInfo.getPrincipals().asList().size()); } @@ -57,10 +56,10 @@ void testGetAuthenticationInfo() throws SQLException { */ @Test void testGetAuthenticationInfoWrongPassword() throws SQLException { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken("jad", "1add".toCharArray()); + var token = new UsernamePasswordToken("jad", "1add".toCharArray()); assertThrows(IncorrectCredentialsException.class, () -> { realm.getAuthenticationInfo(token); @@ -74,10 +73,10 @@ void testGetAuthenticationInfoWrongPassword() throws SQLException { */ @Test void testGetAuthenticationInfoWrongUsername() throws SQLException { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken("jadd", "1ad".toCharArray()); + var token = new UsernamePasswordToken("jadd", "1ad".toCharArray()); assertThrows(UnknownAccountException.class, () -> { realm.getAuthenticationInfo(token); @@ -89,10 +88,10 @@ void testGetAuthenticationInfoWrongUsername() throws SQLException { */ @Test void testGetAuthenticationInfoWrongTokenType() { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); - AuthenticationToken token = mock(AuthenticationToken.class); - String username = "jad"; - String password = "1ad"; + var realm = new AuthserviceDbRealm(); + var token = mock(AuthenticationToken.class); + var username = "jad"; + var password = "1ad"; when(token.getPrincipal()).thenReturn(username); when(token.getCredentials()).thenReturn(password); @@ -107,16 +106,16 @@ void testGetAuthenticationInfoWrongTokenType() { */ @Test void testGetRolesForUsers() throws SQLException { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken("jad", "1ad".toCharArray()); - AuthenticationInfo authenticationInfoForUser = realm.getAuthenticationInfo(token); + var token = new UsernamePasswordToken("jad", "1ad".toCharArray()); + var authenticationInfoForUser = realm.getAuthenticationInfo(token); - boolean jadHasRoleUser = realm.hasRole(authenticationInfoForUser.getPrincipals(), "caseworker"); + var jadHasRoleUser = realm.hasRole(authenticationInfoForUser.getPrincipals(), "caseworker"); assertTrue(jadHasRoleUser); - boolean jadHasRoleAdministrator = realm.hasRole(authenticationInfoForUser.getPrincipals(), "administrator"); + var jadHasRoleAdministrator = realm.hasRole(authenticationInfoForUser.getPrincipals(), "administrator"); assertFalse(jadHasRoleAdministrator); } @@ -126,16 +125,16 @@ void testGetRolesForUsers() throws SQLException { */ @Test void testGetRolesForAdministrators() throws SQLException { - AuthserviceDbRealm realm = new AuthserviceDbRealm(); + var realm = new AuthserviceDbRealm(); realm.setDataSource(datasource); realm.activate(); - AuthenticationToken token = new UsernamePasswordToken("on", "ola12".toCharArray()); - AuthenticationInfo authenticationInfoForUser = realm.getAuthenticationInfo(token); + var token = new UsernamePasswordToken("on", "ola12".toCharArray()); + var authenticationInfoForUser = realm.getAuthenticationInfo(token); - boolean onHasRoleUser = realm.hasRole(authenticationInfoForUser.getPrincipals(), "caseworker"); + var onHasRoleUser = realm.hasRole(authenticationInfoForUser.getPrincipals(), "caseworker"); assertTrue(onHasRoleUser); - boolean onHasRoleAdministrator = realm.hasRole(authenticationInfoForUser.getPrincipals(), "admin"); + var onHasRoleAdministrator = realm.hasRole(authenticationInfoForUser.getPrincipals(), "admin"); assertTrue(onHasRoleAdministrator); } diff --git a/authservice/authservice.web.security.memorysession/src/test/java/no/priv/bang/authservice/web/security/memorysession/MemorySessionTest.java b/authservice/authservice.web.security.memorysession/src/test/java/no/priv/bang/authservice/web/security/memorysession/MemorySessionTest.java index 5cf4e3ef..e446945a 100644 --- a/authservice/authservice.web.security.memorysession/src/test/java/no/priv/bang/authservice/web/security/memorysession/MemorySessionTest.java +++ b/authservice/authservice.web.security.memorysession/src/test/java/no/priv/bang/authservice/web/security/memorysession/MemorySessionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016-2018 Steinar Bang + * Copyright 2016-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,6 @@ import static org.junit.jupiter.api.Assertions.*; -import java.io.Serializable; - -import org.apache.shiro.session.Session; import org.apache.shiro.session.mgt.SimpleSession; import org.junit.jupiter.api.Test; @@ -27,10 +24,10 @@ class MemorySessionTest { @Test void testCreateComponent() { - MemorySession component = new MemorySession(); + var component = new MemorySession(); component.activate(); - Session session = new SimpleSession(); - Serializable sessionid = component.create(session); + var session = new SimpleSession(); + var sessionid = component.create(session); assertNotNull(sessionid); } diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceServletTest.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceServletTest.java index 9db20025..7da8f63a 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceServletTest.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceServletTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2021 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -46,13 +46,13 @@ class AuthserviceServletTest extends ShiroTestBase { @Test void testGetRootIndexHtml() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - HttpServletRequest request = buildGetRootUrl(); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetRootUrl(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -63,13 +63,13 @@ void testGetRootIndexHtml() throws Exception { @Test void testGetOpenIconicCss() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - HttpServletRequest request = buildGetUrl("open-iconic/font/css/open-iconic-bootstrap.min.css"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("open-iconic/font/css/open-iconic-bootstrap.min.css"); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -80,13 +80,13 @@ void testGetOpenIconicCss() throws Exception { @Test void testGetOpenIconicWoff() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - HttpServletRequest request = buildGetUrl("open-iconic/font/fonts/open-iconic.woff"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("open-iconic/font/fonts/open-iconic.woff"); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -97,19 +97,19 @@ void testGetOpenIconicWoff() throws Exception { @Test void testAuthenticate() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - String originalRequestUrl = "https://myserver.com/someresource"; - MockHttpServletRequest request = buildPostToLoginUrl(originalRequestUrl); - String body = UriBuilder.fromUri("http://localhost:8181/authservice") + var originalRequestUrl = "https://myserver.com/someresource"; + var request = buildPostToLoginUrl(originalRequestUrl); + var body = UriBuilder.fromUri("http://localhost:8181/authservice") .queryParam("username", "admin") .queryParam("password", "admin") .build().getQuery(); request.setBodyContent(body); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -120,20 +120,20 @@ void testAuthenticate() throws Exception { @Test void testAuthenticateUnknownAccount() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - String originalRequestUrl = "https://myserver.com/someresource"; - MockHttpServletRequest request = buildPostToLoginUrl(originalRequestUrl); - String body = UriBuilder.fromUri("http://localhost:8181/authservice") + var originalRequestUrl = "https://myserver.com/someresource"; + var request = buildPostToLoginUrl(originalRequestUrl); + var body = UriBuilder.fromUri("http://localhost:8181/authservice") .queryParam("username", "jjd") .queryParam("password", "admin") .build().getQuery(); request.setBodyContent(body); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); // Emulate DS component setup - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -144,19 +144,19 @@ void testAuthenticateUnknownAccount() throws Exception { @Test void testAuthenticateWrongPassword() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - String originalRequestUrl = "https://myserver.com/someresource"; - MockHttpServletRequest request = buildPostToLoginUrl(originalRequestUrl); - String body = UriBuilder.fromUri("http://localhost:8181/authservice") + var originalRequestUrl = "https://myserver.com/someresource"; + var request = buildPostToLoginUrl(originalRequestUrl); + var body = UriBuilder.fromUri("http://localhost:8181/authservice") .queryParam("username", "admin") .queryParam("password", "wrongpass") .build().getQuery(); request.setBodyContent(body); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -167,13 +167,13 @@ void testAuthenticateWrongPassword() throws Exception { @Test void testGetPasswordIndexHtml() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); - HttpServletRequest request = buildGetPasswordUrl(); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetPasswordUrl(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); createSubjectAndBindItToThread(request, response); @@ -184,16 +184,16 @@ void testGetPasswordIndexHtml() throws Exception { @Test void testGetUser() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - HttpServletRequest request = buildGetUserUrl(); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUserUrl(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); // Ensure that the expected user is logged into shiro // (see the test.shiro.ini file in the test resources for available logins) @@ -206,22 +206,22 @@ void testGetUser() throws Exception { @Test void testSubmitUser() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - User updatedUser = User.with().userid(1).username(username).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); + var updatedUser = User.with().userid(1).username(username).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); when(useradmin.modifyUser(any())).thenReturn(Arrays.asList(updatedUser)); - MockHttpServletRequest request = buildGetUserUrl(); + var request = buildGetUserUrl(); request.setMethod("POST"); - String postContentType = "application/x-www-form-urlencoded"; + var postContentType = "application/x-www-form-urlencoded"; request.setContentType(postContentType); request.setHeader("Content-Type", postContentType); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - AuthserviceServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(logservice, useradmin); // Ensure that the expected user is logged into shiro // (see the test.shiro.ini file in the test resources for available logins) @@ -233,29 +233,29 @@ void testSubmitUser() throws Exception { } private HttpServletRequest buildGetPasswordUrl() { - MockHttpServletRequest request = buildGetRootUrl(); + var request = buildGetRootUrl(); request.setRequestURL("http://localhost:8181/authservice/password"); request.setRequestURI("/authservice/password/"); return request; } private MockHttpServletRequest buildGetUserUrl() { - MockHttpServletRequest request = buildGetRootUrl(); + var request = buildGetRootUrl(); request.setRequestURL("http://localhost:8181/authservice/user"); request.setRequestURI("/authservice/user/"); return request; } private HttpServletRequest buildGetUrl(String localpath) { - MockHttpServletRequest request = buildGetRootUrl(); + var request = buildGetRootUrl(); request.setRequestURL("http://localhost:8181/authservice/" + localpath); request.setRequestURI("/authservice/" + localpath); return request; } private MockHttpServletRequest buildGetRootUrl() { - MockHttpSession session = new MockHttpSession(); - MockHttpServletRequest request = new MockHttpServletRequest(); + var session = new MockHttpSession(); + var request = new MockHttpServletRequest(); request.setProtocol("HTTP/1.1"); request.setMethod("GET"); request.setRequestURL("http://localhost:8181/authservice/"); @@ -267,9 +267,9 @@ private MockHttpServletRequest buildGetRootUrl() { } private MockHttpServletRequest buildPostToLoginUrl(String originalUrl) { - String contenttype = MediaType.APPLICATION_FORM_URLENCODED; - MockHttpSession session = new MockHttpSession(); - MockHttpServletRequest request = new MockHttpServletRequest(); + var contenttype = MediaType.APPLICATION_FORM_URLENCODED; + var session = new MockHttpSession(); + var request = new MockHttpServletRequest(); request.setProtocol("HTTP/1.1"); request.setMethod("POST"); request.setRequestURL("http://localhost:8181/authservice/login"); @@ -285,20 +285,20 @@ private MockHttpServletRequest buildPostToLoginUrl(String originalUrl) { } private AuthserviceServlet simulateDSComponentActivationAndWebWhiteboardConfiguration(LogService logservice, UserManagementService useradmin) throws Exception { - AuthserviceServlet servlet = new AuthserviceServlet(); + var servlet = new AuthserviceServlet(); servlet.setLogService(logservice); servlet.setUserManagementService(useradmin); servlet.activate(); - ServletConfig config = createServletConfigWithApplicationAndPackagenameForJerseyResources(); + var config = createServletConfigWithApplicationAndPackagenameForJerseyResources(); servlet.init(config); return servlet; } private ServletConfig createServletConfigWithApplicationAndPackagenameForJerseyResources() { - ServletConfig config = mock(ServletConfig.class); + var config = mock(ServletConfig.class); when(config.getInitParameterNames()).thenReturn(Collections.enumeration(Arrays.asList(ServerProperties.PROVIDER_PACKAGES))); when(config.getInitParameter(ServerProperties.PROVIDER_PACKAGES)).thenReturn("no.priv.bang.authservice.web.security.resources"); - ServletContext servletContext = mock(ServletContext.class); + var servletContext = mock(ServletContext.class); when(config.getServletContext()).thenReturn(servletContext); when(servletContext.getAttributeNames()).thenReturn(Collections.emptyEnumeration()); return config; diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceShiroFilterTest.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceShiroFilterTest.java index 3d003849..3006cd5e 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceShiroFilterTest.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/AuthserviceShiroFilterTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2022 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,12 +25,8 @@ import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import javax.sql.DataSource; - -import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.session.mgt.eis.MemorySessionDAO; -import org.apache.shiro.web.mgt.WebSecurityManager; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -49,11 +45,11 @@ class AuthserviceShiroFilterTest { @BeforeAll static void setup() throws SQLException, LiquibaseException { - DerbyDataSourceFactory dataSourceFactory = new DerbyDataSourceFactory(); - Properties properties = new Properties(); + var dataSourceFactory = new DerbyDataSourceFactory(); + var properties = new Properties(); properties.setProperty(DataSourceFactory.JDBC_URL, "jdbc:derby:memory:ukelonn;create=true"); - DataSource datasource = dataSourceFactory.createDataSource(properties); - TestLiquibaseRunner runner = new TestLiquibaseRunner(); + var datasource = dataSourceFactory.createDataSource(properties); + var runner = new TestLiquibaseRunner(); runner.activate(); runner.prepare(datasource); realm = new AuthserviceDbRealm(); @@ -65,24 +61,24 @@ static void setup() throws SQLException, LiquibaseException { @Test void testAuthenticationSucceed() throws Exception { - AuthserviceShiroFilter filter = new AuthserviceShiroFilter(); + var filter = new AuthserviceShiroFilter(); filter.setServletContext(context); filter.setRealm(realm); filter.setSession(session); filter.activate(); - HttpServletRequest request = mock(HttpServletRequest.class); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); - HttpServletResponse response = mock(HttpServletResponse.class, Mockito.CALLS_REAL_METHODS); - StringWriter bodyWriter = new StringWriter(); - PrintWriter responseWriter = new PrintWriter(bodyWriter); + var response = mock(HttpServletResponse.class, Mockito.CALLS_REAL_METHODS); + var bodyWriter = new StringWriter(); + var responseWriter = new PrintWriter(bodyWriter); when(response.getWriter()).thenReturn(responseWriter); // Get the security manager from the filter and log in // to verify that the filter setup is working - WebSecurityManager securitymanager = filter.getSecurityManager(); - UsernamePasswordToken token = new UsernamePasswordToken("admin", "admin".toCharArray(), true); - AuthenticationInfo info = securitymanager.authenticate(token); + var securitymanager = filter.getSecurityManager(); + var token = new UsernamePasswordToken("admin", "admin".toCharArray(), true); + var info = securitymanager.authenticate(token); assertEquals(1, info.getPrincipals().asList().size()); } diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/ShiroTestBase.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/ShiroTestBase.java index fbdf62b9..7c3ae79b 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/ShiroTestBase.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/ShiroTestBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,9 +17,6 @@ import static org.mockito.Mockito.mock; -import java.lang.reflect.Method; -import java.util.Collection; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -28,7 +25,6 @@ import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.Ini; import org.apache.shiro.mgt.RealmSecurityManager; -import org.apache.shiro.realm.Realm; import org.apache.shiro.realm.SimpleAccountRealm; import org.apache.shiro.util.ThreadContext; import org.apache.shiro.web.config.WebIniSecurityManagerFactory; @@ -49,16 +45,16 @@ public ShiroTestBase() { } protected void loginUser(String username, String password) { - HttpSession session = mock(HttpSession.class); - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); + var session = mock(HttpSession.class); + var dummyrequest = new MockHttpServletRequest(); dummyrequest.setSession(session); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyresponse = new MockHttpServletResponse(); loginUser(dummyrequest, dummyresponse, username, password); } protected void loginUser(HttpServletRequest request, HttpServletResponse response, String username, String password) { - WebSubject subject = createSubjectAndBindItToThread(request, response); - UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray(), true); + var subject = createSubjectAndBindItToThread(request, response); + var token = new UsernamePasswordToken(username, password.toCharArray(), true); subject.login(token); } @@ -67,28 +63,28 @@ protected void createNullWebSubjectAndBindItToThread() { } protected WebSubject createSubjectWithNullPrincipalAndBindItToThread() { - WebSubject subject = mock(WebSubject.class); + var subject = mock(WebSubject.class); ThreadContext.bind(subject); return subject; } protected WebSubject createSubjectAndBindItToThread() { - HttpSession session = mock(HttpSession.class); - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); + var session = mock(HttpSession.class); + var dummyrequest = new MockHttpServletRequest(); dummyrequest.setSession(session); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyresponse = new MockHttpServletResponse(); return createSubjectAndBindItToThread(dummyrequest, dummyresponse); } protected WebSubject createSubjectAndBindItToThread(HttpServletRequest request, HttpServletResponse response) { - WebSubject subject = new WebSubject.Builder(getSecurityManager(), request, response).buildWebSubject(); + var subject = new WebSubject.Builder(getSecurityManager(), request, response).buildWebSubject(); ThreadContext.bind(subject); return subject; } public static WebSecurityManager getSecurityManager() { if (securitymanager == null) { - WebIniSecurityManagerFactory securityManagerFactory = new WebIniSecurityManagerFactory(Ini.fromResourcePath("classpath:test.shiro.ini")); + var securityManagerFactory = new WebIniSecurityManagerFactory(Ini.fromResourcePath("classpath:test.shiro.ini")); securitymanager = (WebSecurityManager) securityManagerFactory.getInstance(); realm = findRealmFromSecurityManager(securitymanager); } @@ -97,8 +93,8 @@ public static WebSecurityManager getSecurityManager() { } private static SimpleAccountRealm findRealmFromSecurityManager(WebSecurityManager securitymanager) { - RealmSecurityManager realmSecurityManager = (RealmSecurityManager) securitymanager; - Collection realms = realmSecurityManager.getRealms(); + var realmSecurityManager = (RealmSecurityManager) securitymanager; + var realms = realmSecurityManager.getRealms(); return (SimpleAccountRealm) realms.iterator().next(); } @@ -112,7 +108,7 @@ public static SimpleAccount getShiroAccountFromRealm(String username) { private static SimpleAccount findUserFromRealm(SimpleAccountRealm realm, String username) { try { - Method getUserMethod = SimpleAccountRealm.class.getDeclaredMethod("getUser", String.class); + var getUserMethod = SimpleAccountRealm.class.getDeclaredMethod("getUser", String.class); getUserMethod.setAccessible(true); return (SimpleAccount) getUserMethod.invoke(realm, username); } catch (Exception e) { diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/AuthserviceResourceTest.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/AuthserviceResourceTest.java index 38720b6d..d827ee2d 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/AuthserviceResourceTest.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/AuthserviceResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018-2021 Steinar Bang + * Copyright 2018-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,8 +29,6 @@ import javax.servlet.http.HttpSession; import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; - import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.ThreadContext; @@ -47,99 +45,99 @@ class AuthserviceResourceTest extends ShiroTestBase { @Test void testGetIndex() { - AuthserviceResource resource = new AuthserviceResource(); - InputStream htmlfile = resource.getIndex(); - String html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); + var resource = new AuthserviceResource(); + var htmlfile = resource.getIndex(); + var html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); assertThat(html).startsWith(" { resource.postLogin(username, password, redirectUrl); }); @@ -193,33 +191,33 @@ void testLoginWithUnexpectedException() { @Test void testCheckLogin() { - MockLogService logservice = new MockLogService(); - HttpSession session = mock(HttpSession.class); - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); + var logservice = new MockLogService(); + var session = mock(HttpSession.class); + var dummyrequest = new MockHttpServletRequest(); dummyrequest.setSession(session); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyresponse = new MockHttpServletResponse(); createSubjectAndBindItToThread(dummyrequest, dummyresponse); - AuthserviceResource resource = new AuthserviceResource(); + var resource = new AuthserviceResource(); resource.setLogservice(logservice); // Log a user in - String username = "admin"; - String password = "admin"; - String redirectUrl = "https://myserver.com/resource"; + var username = "admin"; + var password = "admin"; + var redirectUrl = "https://myserver.com/resource"; resource.postLogin(username, password, redirectUrl); - Response response = resource.checkLogin(); + var response = resource.checkLogin(); assertEquals(200, response.getStatus()); } @Test void testCheckLoginNotLoggedIn() { - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyrequest = new MockHttpServletRequest(); + var dummyresponse = new MockHttpServletResponse(); createSubjectAndBindItToThread(dummyrequest, dummyresponse); - AuthserviceResource resource = new AuthserviceResource(); + var resource = new AuthserviceResource(); - Response response = resource.checkLogin(); + var response = resource.checkLogin(); assertEquals(401, response.getStatus()); } @@ -227,53 +225,53 @@ void testCheckLoginNotLoggedIn() { void testCheckLoginNoSubject() { Subject nosubject = null; ThreadContext.bind(nosubject); - AuthserviceResource resource = new AuthserviceResource(); + var resource = new AuthserviceResource(); - Response response = resource.checkLogin(); + var response = resource.checkLogin(); assertEquals(401, response.getStatus()); } @Test void testLogout() { - AuthserviceResource resource = new AuthserviceResource(); - HttpHeaders httpheaders = mock(HttpHeaders.class); + var resource = new AuthserviceResource(); + var httpheaders = mock(HttpHeaders.class); when(httpheaders.getHeaderString(anyString())).thenReturn("http://localhost/localpath"); resource.httpHeaders = httpheaders; - Response response = resource.logout(); + var response = resource.logout(); assertEquals(302, response.getStatus()); } @Test void testFindRedirectLocation() { - AuthserviceResource resource = new AuthserviceResource(); - URI locationWithoutOriginalUri = resource.findRedirectLocation(); + var resource = new AuthserviceResource(); + var locationWithoutOriginalUri = resource.findRedirectLocation(); assertEquals(URI.create("../.."), locationWithoutOriginalUri); - HttpHeaders httpHeadersWithoutOriginalUri = mock(HttpHeaders.class); + var httpHeadersWithoutOriginalUri = mock(HttpHeaders.class); resource.httpHeaders = httpHeadersWithoutOriginalUri; - URI locationAlsoWithoutOriginalUri = resource.findRedirectLocation(); + var locationAlsoWithoutOriginalUri = resource.findRedirectLocation(); assertEquals(URI.create("../.."), locationAlsoWithoutOriginalUri); - HttpHeaders httpHeadersWithOriginalUri = mock(HttpHeaders.class); + var httpHeadersWithOriginalUri = mock(HttpHeaders.class); when(httpHeadersWithOriginalUri.getHeaderString(anyString())).thenReturn("http://lorenzo.hjemme.lan"); resource.httpHeaders = httpHeadersWithOriginalUri; - URI locationWithOriginalUri = resource.findRedirectLocation(); + var locationWithOriginalUri = resource.findRedirectLocation(); assertEquals(URI.create("http://lorenzo.hjemme.lan"), locationWithOriginalUri); } @Test void testLoadHtmlFileWithIOExceptionThrown() throws Exception { - InputStream mockstream = mock(InputStream.class); + var mockstream = mock(InputStream.class); when(mockstream.read(any(byte[].class), anyInt(), anyInt())).thenThrow(IOException.class); - AuthserviceResource resource = new AuthserviceResource() { + var resource = new AuthserviceResource() { @Override InputStream getClasspathResource(String resource) { return mockstream; } }; - MockLogService logservice = new MockLogService(); + var logservice = new MockLogService(); resource.setLogservice(logservice); assertThrows(InternalServerErrorException.class, () -> { @@ -283,9 +281,9 @@ InputStream getClasspathResource(String resource) { @Test void testUnauthorized() { - AuthserviceResource resource = new AuthserviceResource(); - InputStream htmlfile = resource.getUnauthorized(); - String html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); + var resource = new AuthserviceResource(); + var htmlfile = resource.getUnauthorized(); + var html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); assertThat(html).contains("You are logged in, but do not have access to this URL"); } @@ -299,7 +297,7 @@ private void unlockAccount(String username) { @SuppressWarnings({ "rawtypes", "unchecked" }) private WebSubject createSubjectThrowingExceptionAndBindItToThread(Class exceptionClass) { - WebSubject subject = mock(WebSubject.class); + var subject = mock(WebSubject.class); doThrow(exceptionClass).when(subject).login(any()); ThreadContext.bind(subject); return subject; diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/LoggedInUserResourceTest.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/LoggedInUserResourceTest.java index fb481853..21fe2d75 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/LoggedInUserResourceTest.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/LoggedInUserResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,8 +19,6 @@ import static org.mockito.Mockito.*; import java.util.Arrays; -import java.util.Optional; - import org.junit.jupiter.api.Test; import org.osgi.service.log.LogService; @@ -35,32 +33,32 @@ class LoggedInUserResourceTest extends ShiroTestBase { @Test void testFindLoggedInUser() { LogService logservice = null; - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); loginUser(username, "1ad"); - Optional loggedInUser = LoggedInUserResource.findLoggedInUser(logservice, useradmin); + var loggedInUser = LoggedInUserResource.findLoggedInUser(logservice, useradmin); assertTrue(loggedInUser.isPresent()); } @Test void testFindLoggedInUserWhenUserIsNotLoggedIn() { LogService logservice = null; - UserManagementService useradmin = mock(UserManagementService.class); + var useradmin = mock(UserManagementService.class); createSubjectWithNullPrincipalAndBindItToThread(); - Optional loggedInUser = LoggedInUserResource.findLoggedInUser(logservice, useradmin); + var loggedInUser = LoggedInUserResource.findLoggedInUser(logservice, useradmin); assertFalse(loggedInUser.isPresent()); } @Test void testFindLoggedInUserWhenShiroNotInitialized() { - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); createNullWebSubjectAndBindItToThread(); diff --git a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/PasswordsResourceTest.java b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/PasswordsResourceTest.java index 537d55ca..40c40a77 100644 --- a/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/PasswordsResourceTest.java +++ b/authservice/authservice.web.security/src/test/java/no/priv/bang/authservice/web/security/resources/PasswordsResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,13 +20,10 @@ import static org.mockito.Mockito.*; import java.io.BufferedReader; -import java.io.InputStream; import java.io.InputStreamReader; import java.util.Arrays; import java.util.stream.Collectors; -import javax.ws.rs.core.Response; - import org.apache.shiro.util.ThreadContext; import org.junit.jupiter.api.Test; @@ -41,163 +38,163 @@ class PasswordsResourceTest extends ShiroTestBase { @Test void testGet() { - PasswordsResource resource = new PasswordsResource(); + var resource = new PasswordsResource(); - InputStream htmlfile = resource.get(); - String html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); + var htmlfile = resource.get(); + var html = new BufferedReader(new InputStreamReader(htmlfile)).lines().collect(Collectors.joining("+n")); assertThat(html).startsWith(" formdata = form.formData(); + var responsebody = (String) response.getEntity(); + var html = Jsoup.parse(responsebody); + var form = (FormElement) html.getElementsByTag("form").get(0); + var formdata = form.formData(); assertThat(formdata).isNotEmpty(); assertEquals(user.getEmail(), findFormvalue(formdata, "email").value()); assertEquals(user.getFirstname(), findFormvalue(formdata, "firstname").value()); @@ -81,12 +78,12 @@ void testGet() throws Exception { @Test void testGetNotLoggedIn() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -95,7 +92,7 @@ void testGetNotLoggedIn() throws Exception { createNullWebSubjectAndBindItToThread(); // Run the method under test - Response response = resource.get(); + var response = resource.get(); // Verify the response assertEquals(401, response.getStatus()); @@ -104,12 +101,12 @@ void testGetNotLoggedIn() throws Exception { @Test void testGetLoggedInUserNotFoundInAdminService() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -118,7 +115,7 @@ void testGetLoggedInUserNotFoundInAdminService() throws Exception { loginUser("jad", "1ad"); // Run the method under test - Response response = resource.get(); + var response = resource.get(); // Verify the response assertEquals(401, response.getStatus()); @@ -127,10 +124,10 @@ void testGetLoggedInUserNotFoundInAdminService() throws Exception { @Test void testGetHtmlFileNotFound() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with() + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with() .userid(1) .username(username) .email("jane@gmail.com") @@ -141,7 +138,7 @@ void testGetHtmlFileNotFound() throws Exception { // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.htmlFile = "web/notafile.html"; resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -151,7 +148,7 @@ void testGetHtmlFileNotFound() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.get(); + var response = resource.get(); // Verify the response assertEquals(500, response.getStatus()); @@ -159,14 +156,14 @@ void testGetHtmlFileNotFound() throws Exception { @Test void testFillFormValues() throws Exception { - UserResource resource = new UserResource(); + var resource = new UserResource(); try (InputStream body = getClass().getClassLoader().getResourceAsStream("web/user.html")) { - Document html = Jsoup.parse(body, "UTF-8", ""); - String email = "jane@gmail.com"; - String firstname = "Jane"; - String lastname = "Doe"; - FormElement form = resource.fillFormValues(html, email, firstname, lastname); - List formdata = form.formData(); + var html = Jsoup.parse(body, "UTF-8", ""); + var email = "jane@gmail.com"; + var firstname = "Jane"; + var lastname = "Doe"; + var form = resource.fillFormValues(html, email, firstname, lastname); + var formdata = form.formData(); assertEquals(email, findFormvalue(formdata, "email").value()); assertEquals(firstname, findFormvalue(formdata, "firstname").value()); assertEquals(lastname, findFormvalue(formdata, "lastname").value()); @@ -183,14 +180,14 @@ void testFillFormValues() throws Exception { @Test void testGetExceptionWhenFetchingUsers() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; when(useradmin.getUsers()).thenThrow(AuthserviceException.class); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -199,7 +196,7 @@ void testGetExceptionWhenFetchingUsers() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.get(); + var response = resource.get(); // Verify the response assertEquals(401, response.getStatus()); // Should this have been a 500 rather than a 401? @@ -208,10 +205,10 @@ void testGetExceptionWhenFetchingUsers() throws Exception { @Test void testSubmit() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with() + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with() .userid(1) .username(username) .email("jane@gmail.com") @@ -219,7 +216,7 @@ void testSubmit() throws Exception { .lastname("Doe") .build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - User updatedUser = User.with() + var updatedUser = User.with() .userid(1) .username(username) .email("janey2017@gmail.com") @@ -230,7 +227,7 @@ void testSubmit() throws Exception { // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -239,14 +236,14 @@ void testSubmit() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(200, response.getStatus()); - String responsebody = (String) response.getEntity(); - Document html = Jsoup.parse(responsebody); - FormElement form = (FormElement) html.getElementsByTag("form").get(0); - List formdata = form.formData(); + var responsebody = (String) response.getEntity(); + var html = Jsoup.parse(responsebody); + var form = (FormElement) html.getElementsByTag("form").get(0); + var formdata = form.formData(); assertThat(formdata).isNotEmpty(); assertEquals(updatedUser.getEmail(), findFormvalue(formdata, "email").value()); assertEquals(updatedUser.getFirstname(), findFormvalue(formdata, "firstname").value()); @@ -256,10 +253,10 @@ void testSubmit() throws Exception { @Test void testSubmitLoggedInUserNotPresent() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User updatedUser = User.with() + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var updatedUser = User.with() .userid(1) .username(username) .email("janey2017@gmail.com") @@ -269,7 +266,7 @@ void testSubmitLoggedInUserNotPresent() throws Exception { // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -278,7 +275,7 @@ void testSubmitLoggedInUserNotPresent() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(401, response.getStatus()); @@ -287,10 +284,10 @@ void testSubmitLoggedInUserNotPresent() throws Exception { @Test void testSubmitUserNotLoggedIn() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User updatedUser = User.with() + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var updatedUser = User.with() .userid(1) .username(username) .email("janey2017@gmail.com") @@ -300,7 +297,7 @@ void testSubmitUserNotLoggedIn() throws Exception { // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -309,7 +306,7 @@ void testSubmitUserNotLoggedIn() throws Exception { createNullWebSubjectAndBindItToThread(); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(401, response.getStatus()); @@ -318,17 +315,17 @@ void testSubmitUserNotLoggedIn() throws Exception { @Test void testSubmitWhenUpdatedUserIsntPresent() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - User updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); + var updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); when(useradmin.modifyUser(any())).thenReturn(Arrays.asList(User.with().build())); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -337,7 +334,7 @@ void testSubmitWhenUpdatedUserIsntPresent() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(500, response.getStatus()); @@ -346,17 +343,17 @@ void testSubmitWhenUpdatedUserIsntPresent() throws Exception { @Test void testSubmitHtmlFileNotFound() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - User updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); + var updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); when(useradmin.modifyUser(any())).thenReturn(Arrays.asList(updatedUser)); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.htmlFile = "web/notafile.html"; resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -366,7 +363,7 @@ void testSubmitHtmlFileNotFound() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(500, response.getStatus()); @@ -375,17 +372,17 @@ void testSubmitHtmlFileNotFound() throws Exception { @Test void testSubmitExceptionOnUserModify() throws Exception { // Mock the injected OSGi services - MockLogService logservice = new MockLogService(); - UserManagementService useradmin = mock(UserManagementService.class); - String username = "jad"; - User user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); + var logservice = new MockLogService(); + var useradmin = mock(UserManagementService.class); + var username = "jad"; + var user = User.with().userid(1).username(username).email("jane@gmail.com").firstname("Jane").lastname("Doe").build(); when(useradmin.getUsers()).thenReturn(Arrays.asList(user)); - User updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); + var updatedUser = User.with(user).email("janey2017@gmail.com").firstname("Janey").lastname("Dow").build(); when(useradmin.modifyUser(any())).thenThrow(AuthserviceException.class); // "Inject" the OSGi services into the resource // (done by HK2 in Jersey, google it if necessary) - UserResource resource = new UserResource(); + var resource = new UserResource(); resource.setLogservice(logservice); resource.useradmin = useradmin; @@ -394,7 +391,7 @@ void testSubmitExceptionOnUserModify() throws Exception { loginUser(username, "1ad"); // Run the method under test - Response response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); + var response = resource.submit(updatedUser.getEmail(), updatedUser.getFirstname(), updatedUser.getLastname()); // Verify the response assertEquals(401, response.getStatus()); // Should this have been a 500 rather than a 401? diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/ShiroTestBase.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/ShiroTestBase.java index 910addd0..671fbf79 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/ShiroTestBase.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/ShiroTestBase.java @@ -19,9 +19,6 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import java.lang.reflect.Method; -import java.util.Collection; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @@ -30,7 +27,6 @@ import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.Ini; import org.apache.shiro.mgt.RealmSecurityManager; -import org.apache.shiro.realm.Realm; import org.apache.shiro.realm.SimpleAccountRealm; import org.apache.shiro.session.Session; import org.apache.shiro.util.ThreadContext; @@ -52,16 +48,16 @@ public ShiroTestBase() { } protected void loginUser(String username, String password) { - HttpSession session = mock(HttpSession.class); - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); + var session = mock(HttpSession.class); + var dummyrequest = new MockHttpServletRequest(); dummyrequest.setSession(session); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyresponse = new MockHttpServletResponse(); loginUser(dummyrequest, dummyresponse, username, password); } protected void loginUser(HttpServletRequest request, HttpServletResponse response, String username, String password) { - WebSubject subject = createSubjectAndBindItToThread(request, response); - UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray(), true); + var subject = createSubjectAndBindItToThread(request, response); + var token = new UsernamePasswordToken(username, password.toCharArray(), true); subject.login(token); } @@ -70,7 +66,7 @@ protected void removeWebSubjectFromThread() { } protected WebSubject createSubjectWithNullPrincipalAndBindItToThread() { - WebSubject subject = mock(WebSubject.class); + var subject = mock(WebSubject.class); ThreadContext.bind(subject); return subject; } @@ -80,10 +76,10 @@ protected WebSubject createSubjectAndBindItToThread() { } protected WebSubject createSubjectAndBindItToThread(WebSecurityManager webSecurityManager) { - HttpSession session = mock(HttpSession.class); - MockHttpServletRequest dummyrequest = new MockHttpServletRequest(); + var session = mock(HttpSession.class); + var dummyrequest = new MockHttpServletRequest(); dummyrequest.setSession(session); - MockHttpServletResponse dummyresponse = new MockHttpServletResponse(); + var dummyresponse = new MockHttpServletResponse(); return createSubjectAndBindItToThread(webSecurityManager, dummyrequest, dummyresponse); } @@ -92,17 +88,17 @@ protected WebSubject createSubjectAndBindItToThread(HttpServletRequest request, } protected WebSubject createSubjectAndBindItToThread(WebSecurityManager webSecurityManager, HttpServletRequest request, HttpServletResponse response) { - Session session = mock(Session.class); + var session = mock(Session.class); var savedRequest = new SavedRequest(request); when(session.getAttribute(SAVED_REQUEST_KEY)).thenReturn(savedRequest); - WebSubject subject = (WebSubject) new WebSubject.Builder(webSecurityManager, request, response).session(session).buildSubject(); + var subject = (WebSubject) new WebSubject.Builder(webSecurityManager, request, response).session(session).buildSubject(); ThreadContext.bind(subject); return subject; } public static WebSecurityManager getSecurityManager() { if (securitymanager == null) { - IniWebEnvironment environment = new IniWebEnvironment(); + var environment = new IniWebEnvironment(); environment.setIni(Ini.fromResourcePath("classpath:test.shiro.ini")); environment.init(); securitymanager = environment.getWebSecurityManager(); @@ -113,8 +109,8 @@ public static WebSecurityManager getSecurityManager() { } private static SimpleAccountRealm findRealmFromSecurityManager(WebSecurityManager securitymanager) { - RealmSecurityManager realmSecurityManager = (RealmSecurityManager) securitymanager; - Collection realms = realmSecurityManager.getRealms(); + var realmSecurityManager = (RealmSecurityManager) securitymanager; + var realms = realmSecurityManager.getRealms(); return (SimpleAccountRealm) realms.iterator().next(); } @@ -128,7 +124,7 @@ public static SimpleAccount getShiroAccountFromRealm(String username) { private static SimpleAccount findUserFromRealm(SimpleAccountRealm realm, String username) { try { - Method getUserMethod = SimpleAccountRealm.class.getDeclaredMethod("getUser", String.class); + var getUserMethod = SimpleAccountRealm.class.getDeclaredMethod("getUser", String.class); getUserMethod.setAccessible(true); return (SimpleAccount) getUserMethod.invoke(realm, username); } catch (Exception e) { diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/UserAdminWebApiServletTest.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/UserAdminWebApiServletTest.java index c485acee..ebcc019d 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/UserAdminWebApiServletTest.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/UserAdminWebApiServletTest.java @@ -66,33 +66,33 @@ void beforeEachTest() { @Test void testGetUsers() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUsers()).thenReturn(createUsers()); - HttpServletRequest request = buildGetUrl("/users"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/users"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertThat(users).isNotEmpty(); } @Test void testGetUsersWhenExceptionIsThrown() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUsers()).thenThrow(AuthserviceException.class); - HttpServletRequest request = buildGetUrl("/users"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/users"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); @@ -102,43 +102,43 @@ void testGetUsersWhenExceptionIsThrown() throws Exception { @Test void testModifyUser() throws Exception { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyUser(any())).thenReturn(originalUsers); - MockHttpServletRequest request = buildPostUrl("/user/modify"); - String postBody = mapper.writeValueAsString(user); + var request = buildPostUrl("/user/modify"); + var postBody = mapper.writeValueAsString(user); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertEquals(originalUsers.size(), users.size()); } @Test void testModifyUserWithWrongTypeInPostData() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); // Send a UserAndPasswords object where a User object is expected - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); - MockHttpServletRequest request = buildPostUrl("/user/modify"); - String postBody = mapper.writeValueAsString(passwords); + var request = buildPostUrl("/user/modify"); + var postBody = mapper.writeValueAsString(passwords); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); @@ -148,315 +148,315 @@ void testModifyUserWithWrongTypeInPostData() throws Exception { @Test void testUpdatePassword() throws Exception { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.updatePassword(any())).thenReturn(originalUsers); - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); + var passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); - MockHttpServletRequest request = buildPostUrl("/passwords/update"); - String postBody = mapper.writeValueAsString(passwords); + var request = buildPostUrl("/passwords/update"); + var postBody = mapper.writeValueAsString(passwords); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertEquals(originalUsers.size(), users.size()); } @Test void testAddUser() throws Exception { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = User.with() + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = User.with() .userid(-1) .username("newuser") .email("newuser@gmail.com") .firstname("New") .lastname("User") .build(); - List usersWithAddedUser = new ArrayList<>(originalUsers); + var usersWithAddedUser = new ArrayList<>(originalUsers); usersWithAddedUser.add(user); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUser(any())).thenReturn(usersWithAddedUser); - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") .build(); - MockHttpServletRequest request = buildPostUrl("/user/add"); - String postBody = mapper.writeValueAsString(passwords); + var request = buildPostUrl("/user/add"); + var postBody = mapper.writeValueAsString(passwords); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertThat(users).hasSizeGreaterThan(originalUsers.size()); } @Test void testGetUserRoles() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUserRoles()).thenReturn(createUserroles()); - HttpServletRequest request = buildGetUrl("/users/roles"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/users/roles"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(userroles).isNotEmpty(); } @Test void testAddUserRoles() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUserRoles(any())).thenReturn(createUserroles()); - HttpServletRequest request = buildPostUrl("/user/addroles"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildPostUrl("/user/addroles"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(userroles).isNotEmpty(); } @Test void testRemoveUserRoles() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeUserRoles(any())).thenReturn(createUserroles()); - HttpServletRequest request = buildPostUrl("/user/removeroles"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildPostUrl("/user/removeroles"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var userroles = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(userroles).isNotEmpty(); } @Test void testGetRoles() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRoles()).thenReturn(createRoles()); - HttpServletRequest request = buildGetUrl("/roles"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/roles"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertThat(users).isNotEmpty(); } @Test void testModifyRole() throws Exception { - MockLogService logservice = new MockLogService(); - Role role = Role.with().id(1).rolename("somerole").description("Some role").build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var role = Role.with().id(1).rolename("somerole").description("Some role").build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyRole(any())).thenReturn(Arrays.asList(role)); - MockHttpServletRequest request = buildPostUrl("/role/modify"); - String postBody = mapper.writeValueAsString(role); + var request = buildPostUrl("/role/modify"); + var postBody = mapper.writeValueAsString(role); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertThat(users).isNotEmpty(); } @Test void testAddRole() throws Exception { - MockLogService logservice = new MockLogService(); - Role role = Role.with().id(1).rolename("somerole").description("Some role").build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var role = Role.with().id(1).rolename("somerole").description("Some role").build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRole(any())).thenReturn(Arrays.asList(role)); - MockHttpServletRequest request = buildPostUrl("/role/add"); - String postBody = mapper.writeValueAsString(role); + var request = buildPostUrl("/role/add"); + var postBody = mapper.writeValueAsString(role); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + var users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); assertThat(users).isNotEmpty(); } @Test void testGetRolePermissions() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRolesPermissions()).thenReturn(createRolesPermissions()); - HttpServletRequest request = buildGetUrl("/roles/permissions"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/roles/permissions"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(rolepermissions).isNotEmpty(); } @Test void testAddRolePermissions() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRolePermissions(any())).thenReturn(createRolesPermissions()); - HttpServletRequest request = buildPostUrl("/role/addpermissions"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildPostUrl("/role/addpermissions"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(rolepermissions).isNotEmpty(); } @Test void testRemoveRolePermissions() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeRolePermissions(any())).thenReturn(createRolesPermissions()); - HttpServletRequest request = buildPostUrl("/role/removepermissions"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildPostUrl("/role/removepermissions"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - Map> rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); + var rolepermissions = mapper.readValue(getBinaryContent(response), new TypeReference>>() {}); assertThat(rolepermissions).isNotEmpty(); } @Test void testGetPermissions() throws Exception { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getPermissions()).thenReturn(createPermissions()); - HttpServletRequest request = buildGetUrl("/permissions"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var request = buildGetUrl("/permissions"); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); - assertThat(users).isNotEmpty(); + var permissions = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + assertThat(permissions).isNotEmpty(); } @Test void testModifyPermission() throws Exception { - MockLogService logservice = new MockLogService(); - Permission permission = Permission.with().id(1).permissionname("somepermission").description("Some permission").build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var permission = Permission.with().id(1).permissionname("somepermission").description("Some permission").build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyPermission(any())).thenReturn(Arrays.asList(permission)); - MockHttpServletRequest request = buildPostUrl("/permission/modify"); - String postBody = mapper.writeValueAsString(permission); + var request = buildPostUrl("/permission/modify"); + var postBody = mapper.writeValueAsString(permission); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); - assertThat(users).isNotEmpty(); + var permissions = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + assertThat(permissions).isNotEmpty(); } @Test void testAddPermission() throws Exception { - MockLogService logservice = new MockLogService(); - Permission permission = Permission.with().id(1).permissionname("somepermission").description("Some permission").build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var permission = Permission.with().id(1).permissionname("somepermission").description("Some permission").build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addPermission(any())).thenReturn(Arrays.asList(permission)); - MockHttpServletRequest request = buildPostUrl("/permission/add"); - String postBody = mapper.writeValueAsString(permission); + var request = buildPostUrl("/permission/add"); + var postBody = mapper.writeValueAsString(permission); request.setBodyContent(postBody); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminWebApiServlet servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); + var servlet = simulateDSComponentActivationAndWebWhiteboardConfiguration(usermanagement, logservice); createSubjectAndBindItToThread(); loginUser("admin", "admin"); servlet.service(request, response); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); - List users = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); - assertThat(users).isNotEmpty(); + var permissions = mapper.readValue(getBinaryContent(response), new TypeReference>() {}); + assertThat(permissions).isNotEmpty(); } private HttpServletRequest buildGetUrl(String resource) { - MockHttpServletRequest request = buildRequest(resource); + var request = buildRequest(resource); request.setMethod("GET"); return request; } private MockHttpServletRequest buildPostUrl(String resource) { - String contenttype = MediaType.APPLICATION_JSON; - MockHttpServletRequest request = buildRequest(resource); + var contenttype = MediaType.APPLICATION_JSON; + var request = buildRequest(resource); request.setMethod("POST"); request.setContentType(contenttype); request.addHeader("Content-Type", contenttype); @@ -464,8 +464,8 @@ private MockHttpServletRequest buildPostUrl(String resource) { } private MockHttpServletRequest buildRequest(String resource) { - MockHttpSession session = new MockHttpSession(); - MockHttpServletRequest request = new MockHttpServletRequest(); + var session = new MockHttpSession(); + var request = new MockHttpServletRequest(); request.setProtocol("HTTP/1.1"); request.setRequestURL("http://localhost:8181/authservice/useradmin/api" + resource); request.setRequestURI("/authservice/useradmin/api" + resource); @@ -476,20 +476,20 @@ private MockHttpServletRequest buildRequest(String resource) { } private UserAdminWebApiServlet simulateDSComponentActivationAndWebWhiteboardConfiguration(UserManagementService usermanagement, LogService logservice) throws Exception { - UserAdminWebApiServlet servlet = new UserAdminWebApiServlet(); + var servlet = new UserAdminWebApiServlet(); servlet.setLogService(logservice); servlet.setUserManagementService(usermanagement); servlet.activate(); - ServletConfig config = createServletConfigWithApplicationAndPackagenameForJerseyResources(); + var config = createServletConfigWithApplicationAndPackagenameForJerseyResources(); servlet.init(config); return servlet; } private ServletConfig createServletConfigWithApplicationAndPackagenameForJerseyResources() { - ServletConfig config = mock(ServletConfig.class); + var config = mock(ServletConfig.class); when(config.getInitParameterNames()).thenReturn(Collections.enumeration(Arrays.asList(ServerProperties.PROVIDER_PACKAGES))); when(config.getInitParameter(ServerProperties.PROVIDER_PACKAGES)).thenReturn("no.priv.bang.authservice.web.users.api.resources"); - ServletContext servletContext = mock(ServletContext.class); + var servletContext = mock(ServletContext.class); when(servletContext.getContextPath()).thenReturn("/authservice"); when(config.getServletContext()).thenReturn(servletContext); when(servletContext.getAttributeNames()).thenReturn(Collections.emptyEnumeration()); @@ -497,7 +497,7 @@ private ServletConfig createServletConfigWithApplicationAndPackagenameForJerseyR } private byte[] getBinaryContent(MockHttpServletResponse response) throws IOException { - MockServletOutputStream outputstream = (MockServletOutputStream) response.getOutputStream(); + var outputstream = (MockServletOutputStream) response.getOutputStream(); return outputstream.getBinaryContent(); } diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/PermissionsResourceTest.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/PermissionsResourceTest.java index 91eb5fbc..8500881f 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/PermissionsResourceTest.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/PermissionsResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,12 +20,9 @@ import static org.mockito.Mockito.*; import java.util.ArrayList; -import java.util.List; import javax.ws.rs.InternalServerErrorException; import org.junit.jupiter.api.Test; -import org.osgi.service.log.LogService; - import no.priv.bang.authservice.definitions.AuthserviceException; import no.priv.bang.osgi.service.mocks.logservice.MockLogService; import static no.priv.bang.authservice.web.users.api.resources.Testdata.*; @@ -36,23 +33,23 @@ class PermissionsResourceTest { @Test void testGetPermissions() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getPermissions()).thenReturn(createPermissions()); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List permissions = resource.getPermissions(); + var permissions = resource.getPermissions(); assertThat(permissions).isNotEmpty(); } @Test void testGetPermissionsWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getPermissions()).thenThrow(AuthserviceException.class); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -63,27 +60,27 @@ void testGetPermissionsWhenExceptionIsThrown() { @Test void testModifyPermission() { - LogService logservice = new MockLogService(); - List originalPermissions = createPermissions(); - Permission permission = originalPermissions.stream().findFirst().get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalPermissions = createPermissions(); + var permission = originalPermissions.stream().findFirst().get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyPermission(any())).thenReturn(originalPermissions); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List permissions = resource.modifyPermission(permission); + var permissions = resource.modifyPermission(permission); assertEquals(originalPermissions.size(), permissions.size()); } @Test void testModifyPermissionWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - List originalPermissions = createPermissions(); - Permission permission = originalPermissions.stream().findFirst().get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalPermissions = createPermissions(); + var permission = originalPermissions.stream().findFirst().get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyPermission(any())).thenThrow(AuthserviceException.class); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -94,28 +91,28 @@ void testModifyPermissionWhenExceptionIsThrown() { @Test void testAddPermission() { - LogService logservice = new MockLogService(); - List originalPermissions = createPermissions(); - Permission permission = Permission.with().build(); - List updatedPermissions = new ArrayList(originalPermissions); + var logservice = new MockLogService(); + var originalPermissions = createPermissions(); + var permission = Permission.with().build(); + var updatedPermissions = new ArrayList(originalPermissions); updatedPermissions.add(permission); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addPermission(any())).thenReturn(updatedPermissions); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List permissions = resource.addPermission(permission); + var permissions = resource.addPermission(permission); assertThat(permissions).hasSizeGreaterThan(originalPermissions.size()); } @Test void testAddPermissionWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - Permission permission = Permission.with().build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var permission = Permission.with().build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addPermission(any())).thenThrow(AuthserviceException.class); - PermissionsResource resource = new PermissionsResource(); + var resource = new PermissionsResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/RolesResourceTest.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/RolesResourceTest.java index 90f9bf72..31157026 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/RolesResourceTest.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/RolesResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,14 +21,9 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import java.util.Map; - import javax.ws.rs.InternalServerErrorException; import org.junit.jupiter.api.Test; -import org.osgi.service.log.LogService; - import static no.priv.bang.authservice.web.users.api.resources.Testdata.*; import no.priv.bang.authservice.definitions.AuthserviceException; import no.priv.bang.osgi.service.mocks.logservice.MockLogService; @@ -41,23 +36,23 @@ class RolesResourceTest { @Test void testGetRoles() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRoles()).thenReturn(createRoles()); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List roles = resource.getRoles(); + var roles = resource.getRoles(); assertThat(roles).isNotEmpty(); } @Test void testGetRolesWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRoles()).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -68,27 +63,27 @@ void testGetRolesWhenExceptionIsThrown() { @Test void testModifyRole() { - LogService logservice = new MockLogService(); - List originalRoles = createRoles(); - Role role = originalRoles.stream().findFirst().get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalRoles = createRoles(); + var role = originalRoles.stream().findFirst().get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyRole(any())).thenReturn(originalRoles); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List roles = resource.modifyRole(role); + var roles = resource.modifyRole(role); assertEquals(originalRoles.size(), roles.size()); } @Test void testModifyRoleWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - List originalRoles = createRoles(); - Role role = originalRoles.stream().findFirst().get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalRoles = createRoles(); + var role = originalRoles.stream().findFirst().get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyRole(any())).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -99,28 +94,28 @@ void testModifyRoleWhenExceptionIsThrown() { @Test void testAddRole() { - LogService logservice = new MockLogService(); - List originalRoles = createRoles(); - Role role = Role.with().build(); - List updatedRoles = new ArrayList(originalRoles); + var logservice = new MockLogService(); + var originalRoles = createRoles(); + var role = Role.with().build(); + var updatedRoles = new ArrayList(originalRoles); updatedRoles.add(role); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRole(any())).thenReturn(updatedRoles); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List roles = resource.addRole(role); + var roles = resource.addRole(role); assertThat(roles).hasSizeGreaterThan(originalRoles.size()); } @Test void testAddRoleWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - Role role = Role.with().build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var role = Role.with().build(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRole(any())).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -131,23 +126,23 @@ void testAddRoleWhenExceptionIsThrown() { @Test void testGetRolesPermissions() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRolesPermissions()).thenReturn(createRolesPermissions()); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> rolespermissions = resource.getRolesPermissions(); + var rolespermissions = resource.getRolesPermissions(); assertThat(rolespermissions).isNotEmpty(); } @Test void testGetRolesPermissionsWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getRolesPermissions()).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -158,27 +153,27 @@ void testGetRolesPermissionsWhenExceptionIsThrown() { @Test void testAddRolesPermissions() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRolePermissions(any())).thenReturn(createRolesPermissions()); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> rolespermissions = resource.addRolePermissions(RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build()); + var rolespermissions = resource.addRolePermissions(RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build()); assertThat(rolespermissions).isNotEmpty(); } @Test void testAddRolesPermissionsWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addRolePermissions(any())).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - RolePermissions rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); + var rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); assertThrows(InternalServerErrorException.class, () -> { resource.addRolePermissions(rolepermissions); }); @@ -186,27 +181,27 @@ void testAddRolesPermissionsWhenExceptionIsThrown() { @Test void testRemoveRolesPermissions() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeRolePermissions(any())).thenReturn(createRolesPermissions()); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> rolespermissions = resource.removeRolePermissions(RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build()); + var rolespermissions = resource.removeRolePermissions(RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build()); assertThat(rolespermissions).isNotEmpty(); } @Test void testRemoveRolesPermissionsWhenExceptionIsThrown() { - LogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeRolePermissions(any())).thenThrow(AuthserviceException.class); - RolesResource resource = new RolesResource(); + var resource = new RolesResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - RolePermissions rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); + var rolepermissions = RolePermissions.with().role(Role.with().build()).permissions(Arrays.asList(Permission.with().build())).build(); assertThrows(InternalServerErrorException.class, () -> { resource.removeRolePermissions(rolepermissions); }); diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/Testdata.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/Testdata.java index 1a812111..bf0a093d 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/Testdata.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/Testdata.java @@ -1,5 +1,5 @@ /* - * Copyright 2020-2021 Steinar Bang + * Copyright 2020-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,35 +27,35 @@ public class Testdata { public static List createUsers() { - User admin = User.with() + var admin = User.with() .userid(1) .username("admin") .email("admin@gmail.com") .firstname("Admin") .lastname("Istrator") .build(); - User on = User.with() + var on = User.with() .userid(2) .username("on") .email("olanordmann2345@gmail.com") .firstname("Ola") .lastname("Nordmann") .build(); - User kn = User.with() + var kn = User.with() .userid(3) .username("kn") .email("karinordmann3456@gmail.com") .firstname("Kari") .lastname("Nordmann") .build(); - User jad = User.with() + var jad = User.with() .userid(4) .username("jad") .email("janedoe7896@gmail.com") .firstname("Jane") .lastname("Doe") .build(); - User jod = User.with() + var jod = User.with() .userid(5) .username("jod") .email("johndoe6789@gmail.com") @@ -66,16 +66,16 @@ public static List createUsers() { } public static Map> createUserroles() { - List users = createUsers(); - User admin = users.get(0); - User on = users.get(1); - User kn = users.get(2); - User jad = users.get(3); - User jod = users.get(4); - List roles = Testdata.createRoles(); - Role adminrole = roles.get(0); - Role caseworker = roles.get(1); - Map> userroles = new HashMap<>(); + var users = createUsers(); + var admin = users.get(0); + var on = users.get(1); + var kn = users.get(2); + var jad = users.get(3); + var jod = users.get(4); + var roles = Testdata.createRoles(); + var adminrole = roles.get(0); + var caseworker = roles.get(1); + var userroles = new HashMap>(); userroles.put(admin.getUsername(), Arrays.asList(adminrole, caseworker)); userroles.put(on.getUsername(), Arrays.asList(adminrole, caseworker)); userroles.put(kn.getUsername(), Arrays.asList(adminrole, caseworker)); @@ -85,17 +85,17 @@ public static Map> createUserroles() { } public static List createRoles() { - Role admin = Role.with() + var admin = Role.with() .id(1) .rolename("admin") .description("Administrate stuff") .build(); - Role caseworker = Role.with() + var caseworker = Role.with() .id(2) .rolename("caseworker") .description("Respond to cases") .build(); - Role visitor = Role.with() + var visitor = Role.with() .id(3) .rolename("visitor") .description("Just browsing") @@ -104,43 +104,43 @@ public static List createRoles() { } public static Map> createRolesPermissions() { - List roles = createRoles(); - Role admin = roles.get(0); - Role caseworker = roles.get(1); - List permissions = Testdata.createPermissions(); - Permission user_admin_api_read = permissions.get(0); - Permission user_admin_api_write = permissions.get(1); - Permission caseworker_read = permissions.get(2); - Permission caseworker_write = permissions.get(3); - Permission user_read = permissions.get(4); - Map> rolespermissions = new HashMap<>(); + var roles = createRoles(); + var admin = roles.get(0); + var caseworker = roles.get(1); + var permissions = Testdata.createPermissions(); + var user_admin_api_read = permissions.get(0); + var user_admin_api_write = permissions.get(1); + var caseworker_read = permissions.get(2); + var caseworker_write = permissions.get(3); + var user_read = permissions.get(4); + var rolespermissions = new HashMap>(); rolespermissions.put(admin.getRolename(), Arrays.asList(user_admin_api_read, user_admin_api_write, caseworker_read, caseworker_write, user_read)); rolespermissions.put(caseworker.getRolename(), Arrays.asList(caseworker_read, caseworker_write, user_read)); return rolespermissions; } public static List createPermissions() { - Permission user_admin_api_read = Permission.with() + var user_admin_api_read = Permission.with() .id(1) .permissionname("user_admin_api_read") .description("User admin read access") .build(); - Permission user_admin_api_write = Permission.with() + var user_admin_api_write = Permission.with() .id(2) .permissionname("user_admin_api_write") .description("User admin write access") .build(); - Permission caseworker_read = Permission.with() + var caseworker_read = Permission.with() .id(3) .permissionname("caseworker_read") .description("Caseworker read access") .build(); - Permission caseworker_write = Permission.with() + var caseworker_write = Permission.with() .id(4) .permissionname("caseworker_write") .description("Caseworker write access") .build(); - Permission user_read = Permission.with() + var user_read = Permission.with() .id(5) .permissionname("user_read") .description("User read access") diff --git a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/UsersResourceTest.java b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/UsersResourceTest.java index bf458165..2c558cc3 100644 --- a/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/UsersResourceTest.java +++ b/authservice/authservice.web.users.api/src/test/java/no/priv/bang/authservice/web/users/api/resources/UsersResourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,9 +21,6 @@ import java.util.ArrayList; import java.util.Arrays; -import java.util.List; -import java.util.Map; - import javax.ws.rs.BadRequestException; import javax.ws.rs.InternalServerErrorException; @@ -44,21 +41,21 @@ class UsersResourceTest { @Test void testGetUsers() { - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUsers()).thenReturn(createUsers()); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.usermanagement = usermanagement; - List users = resource.getUsers(); + var users = resource.getUsers(); assertThat(users).isNotEmpty(); } @Test void testGetUsersWhenExceptionIsThrown() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUsers()).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -69,27 +66,27 @@ void testGetUsersWhenExceptionIsThrown() { @Test void testModifyUser() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyUser(any())).thenReturn(originalUsers); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - List users = resource.modifyUser(user); + var users = resource.modifyUser(user); assertEquals(originalUsers.size(), users.size()); } @Test void testModifyUserWhenExceptionIsThrown() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.modifyUser(any())).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -100,36 +97,36 @@ void testModifyUserWhenExceptionIsThrown() { @Test void testUpdatePassword() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.updatePassword(any())).thenReturn(originalUsers); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") .build(); - List users = resource.updatePassword(passwords); + var users = resource.updatePassword(passwords); assertEquals(originalUsers.size(), users.size()); } @Test void testUpdatePasswordWhenPasswordsArentIdentical() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.updatePassword(any())).thenThrow(AuthservicePasswordsNotIdenticalException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("zecret") @@ -141,16 +138,16 @@ void testUpdatePasswordWhenPasswordsArentIdentical() { @Test void testUpdatePasswordWhenPasswordsIsEmpty() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.updatePassword(any())).thenThrow(AuthservicePasswordEmptyException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("").password2("").build(); + var passwords = UserAndPasswords.with().user(user).password1("").password2("").build(); assertThrows(BadRequestException.class, () -> { resource.updatePassword(passwords); }); @@ -158,16 +155,16 @@ void testUpdatePasswordWhenPasswordsIsEmpty() { @Test void testUpdatePasswordWhenSQLExceptionOccurs() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = originalUsers.stream().reduce((first, second) -> second).get(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = originalUsers.stream().reduce((first, second) -> second).get(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.updatePassword(any())).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("").password2("").build(); + var passwords = UserAndPasswords.with().user(user).password1("").password2("").build(); assertThrows(InternalServerErrorException.class, () -> { resource.updatePassword(passwords); }); @@ -175,45 +172,45 @@ void testUpdatePasswordWhenSQLExceptionOccurs() { @Test void testAddUser() { - MockLogService logservice = new MockLogService(); - List originalUsers = createUsers(); - User user = User.with() + var logservice = new MockLogService(); + var originalUsers = createUsers(); + var user = User.with() .userid(-1) .username("newuser") .email("newuser@gmail.com") .firstname("New") .lastname("User") .build(); - List usersWithAddedUser = new ArrayList<>(originalUsers); + var usersWithAddedUser = new ArrayList<>(originalUsers); usersWithAddedUser.add(user); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUser(any())).thenReturn(usersWithAddedUser); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); - List users = resource.addUser(passwords); + var passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); + var users = resource.addUser(passwords); assertThat(users).hasSizeGreaterThan(originalUsers.size()); } @Test void testAddUserWhenPasswordsAreNotIdentical() { - MockLogService logservice = new MockLogService(); - User user = User.with() + var logservice = new MockLogService(); + var user = User.with() .userid(-1) .username("newuser") .email("newuser@gmail.com") .firstname("New") .lastname("User") .build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUser(any())).thenThrow(AuthservicePasswordsNotIdenticalException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); + var passwords = UserAndPasswords.with().user(user).password1("secret").password2("secret").build(); assertThrows(BadRequestException.class, () -> { resource.addUser(passwords); }); @@ -221,21 +218,21 @@ void testAddUserWhenPasswordsAreNotIdentical() { @Test void testAddUserWhenPasswordIsEmpty() { - MockLogService logservice = new MockLogService(); - User user = User.with() + var logservice = new MockLogService(); + var user = User.with() .userid(-1) .username("newuser") .email("newuser@gmail.com") .firstname("New") .lastname("User") .build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUser(any())).thenThrow(AuthservicePasswordEmptyException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") @@ -247,21 +244,21 @@ void testAddUserWhenPasswordIsEmpty() { @Test void testAddUserWhenSQLExceptionIsThrow() { - MockLogService logservice = new MockLogService(); - User user = User.with() + var logservice = new MockLogService(); + var user = User.with() .userid(-1) .username("newuser") .email("newuser@gmail.com") .firstname("New") .lastname("User") .build(); - UserManagementService usermanagement = mock(UserManagementService.class); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUser(any())).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserAndPasswords passwords = UserAndPasswords.with() + var passwords = UserAndPasswords.with() .user(user) .password1("secret") .password2("secret") @@ -273,23 +270,23 @@ void testAddUserWhenSQLExceptionIsThrow() { @Test void testGetUserRoles() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUserRoles()).thenReturn(Testdata.createUserroles()); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> userroles = resource.getUserRoles(); + var userroles = resource.getUserRoles(); assertThat(userroles).isNotEmpty(); } @Test void testGetUserRolesWhenExceptionIsThrown() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.getUserRoles()).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; @@ -300,27 +297,27 @@ void testGetUserRolesWhenExceptionIsThrown() { @Test void testAddUserRoles() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUserRoles(any())).thenReturn(Testdata.createUserroles()); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> userroles = resource.addUserRole(UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build()); + var userroles = resource.addUserRole(UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build()); assertThat(userroles).isNotEmpty(); } @Test void testAddUserRolesWhenExceptionIsThrown() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.addUserRoles(any())).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserRoles userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); + var userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); assertThrows(InternalServerErrorException.class, () -> { resource.addUserRole(userroles); }); @@ -328,27 +325,27 @@ void testAddUserRolesWhenExceptionIsThrown() { @Test void testRemoveUserRoles() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeUserRoles(any())).thenReturn(Testdata.createUserroles()); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - Map> userroles = resource.removeUserRole(UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build()); + var userroles = resource.removeUserRole(UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build()); assertThat(userroles).isNotEmpty(); } @Test void testRemoveUserRolesWhenExceptionIsThrown() { - MockLogService logservice = new MockLogService(); - UserManagementService usermanagement = mock(UserManagementService.class); + var logservice = new MockLogService(); + var usermanagement = mock(UserManagementService.class); when(usermanagement.removeUserRoles(any())).thenThrow(AuthserviceException.class); - UsersResource resource = new UsersResource(); + var resource = new UsersResource(); resource.setLogservice(logservice); resource.usermanagement = usermanagement; - UserRoles userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); + var userroles = UserRoles.with().user(User.with().build()).roles(Arrays.asList(Role.with().build())).build(); assertThrows(InternalServerErrorException.class, () -> { resource.removeUserRole(userroles); }); diff --git a/authservice/authservice.web.users.frontend/src/test/java/no/priv/bang/authservice/web/users/frontend/UserAdminServletTest.java b/authservice/authservice.web.users.frontend/src/test/java/no/priv/bang/authservice/web/users/frontend/UserAdminServletTest.java index e6ce6190..a9d3645b 100644 --- a/authservice/authservice.web.users.frontend/src/test/java/no/priv/bang/authservice/web/users/frontend/UserAdminServletTest.java +++ b/authservice/authservice.web.users.frontend/src/test/java/no/priv/bang/authservice/web/users/frontend/UserAdminServletTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019-2021 Steinar Bang + * Copyright 2019-2024 Steinar Bang * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -36,17 +36,17 @@ class UserAdminServletTest { @Test void testGet() throws Exception { - MockLogService logservice = new MockLogService(); - UserAdminServlet servlet = new UserAdminServlet(); - ServletConfig servletConfig = mock(ServletConfig.class); + var logservice = new MockLogService(); + var servlet = new UserAdminServlet(); + var servletConfig = mock(ServletConfig.class); when(servletConfig.getInitParameter("from")).thenReturn("to"); servlet.init(servletConfig); servlet.setLogService(logservice); - HttpServletRequest request = mock(HttpServletRequest.class); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); when(request.getRequestURI()).thenReturn("http://localhost:8181/authservice/useradmin/"); when(request.getPathInfo()).thenReturn("/"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); servlet.service(request, response); @@ -58,14 +58,14 @@ void testGet() throws Exception { @Test void testDoGetAddTrailingSlash() throws Exception { - MockLogService logservice = new MockLogService(); - HttpServletRequest request = mock(HttpServletRequest.class); + var logservice = new MockLogService(); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost:8181/authservice/useradmin")); when(request.getServletPath()).thenReturn("/frontend-karaf-demo"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminServlet servlet = new UserAdminServlet(); + var servlet = new UserAdminServlet(); servlet.setLogService(logservice); servlet.service(request, response); @@ -75,18 +75,18 @@ void testDoGetAddTrailingSlash() throws Exception { @Test void testDoGetResponseThrowsIOException() throws Exception { - MockLogService logservice = new MockLogService(); - HttpServletRequest request = mock(HttpServletRequest.class); + var logservice = new MockLogService(); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); when(request.getRequestURI()).thenReturn("http://localhost:8181/authservice/useradmin/"); when(request.getPathInfo()).thenReturn("/"); - MockHttpServletResponse response = mock(MockHttpServletResponse.class, CALLS_REAL_METHODS); + var response = mock(MockHttpServletResponse.class, CALLS_REAL_METHODS); response.resetAll(); - ServletOutputStream streamThrowingIOException = mock(ServletOutputStream.class); + var streamThrowingIOException = mock(ServletOutputStream.class); doThrow(IOException.class).when(streamThrowingIOException).write(anyInt()); when(response.getOutputStream()).thenReturn(streamThrowingIOException); - UserAdminServlet servlet = new UserAdminServlet(); + var servlet = new UserAdminServlet(); servlet.setLogService(logservice); servlet.service(request, response); @@ -96,16 +96,16 @@ void testDoGetResponseThrowsIOException() throws Exception { @Test void testDoGetResponseStreamMethodThrowsIOException() throws Exception { - MockLogService logservice = new MockLogService(); - HttpServletRequest request = mock(HttpServletRequest.class); + var logservice = new MockLogService(); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); when(request.getRequestURI()).thenReturn("http://localhost:8181/authservice/useradmin/"); when(request.getPathInfo()).thenReturn("/"); - MockHttpServletResponse response = mock(MockHttpServletResponse.class, CALLS_REAL_METHODS); + var response = mock(MockHttpServletResponse.class, CALLS_REAL_METHODS); response.resetAll(); when(response.getOutputStream()).thenThrow(IOException.class); - UserAdminServlet servlet = new UserAdminServlet(); + var servlet = new UserAdminServlet(); servlet.setLogService(logservice); servlet.service(request, response); @@ -115,14 +115,14 @@ void testDoGetResponseStreamMethodThrowsIOException() throws Exception { @Test void testDoGetResourceNotFound() throws Exception { - MockLogService logservice = new MockLogService(); - HttpServletRequest request = mock(HttpServletRequest.class); + var logservice = new MockLogService(); + var request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn("GET"); when(request.getRequestURI()).thenReturn("http://localhost:8181/authservice/useradmin/static/nosuchname.png"); when(request.getPathInfo()).thenReturn("/static/nosuchname.png"); - MockHttpServletResponse response = new MockHttpServletResponse(); + var response = new MockHttpServletResponse(); - UserAdminServlet servlet = new UserAdminServlet(); + var servlet = new UserAdminServlet(); servlet.setLogService(logservice); servlet.service(request, response);