diff --git a/pom.xml b/pom.xml index 6c0a4b877..354bad8bb 100644 --- a/pom.xml +++ b/pom.xml @@ -324,14 +324,6 @@ runtime - - - org.projectlombok - lombok - 1.18.22 - provided - - org.springframework.boot spring-boot-starter-thymeleaf diff --git a/src/main/java/de/bonndan/nivio/appuser/AppUser.java b/src/main/java/de/bonndan/nivio/appuser/AppUser.java index 656cf117d..c0ae093f9 100644 --- a/src/main/java/de/bonndan/nivio/appuser/AppUser.java +++ b/src/main/java/de/bonndan/nivio/appuser/AppUser.java @@ -202,4 +202,4 @@ public void setExternalId(String externalId) { } public void setIdp(String idp) { this.idp = idp; } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/appuser/AppUserService.java b/src/main/java/de/bonndan/nivio/appuser/AppUserService.java index bd53eaa95..5dd85c2e3 100644 --- a/src/main/java/de/bonndan/nivio/appuser/AppUserService.java +++ b/src/main/java/de/bonndan/nivio/appuser/AppUserService.java @@ -20,4 +20,4 @@ public UserDetails loadUserByUsername(String externalId) throws UsernameNotFound .orElseThrow(() -> new UsernameNotFoundException(String.format(USER_NOT_FOUND, externalId))); } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/security/AuthConfigProperties.java b/src/main/java/de/bonndan/nivio/security/AuthConfigProperties.java index b2915d2d5..bf7bb90f1 100644 --- a/src/main/java/de/bonndan/nivio/security/AuthConfigProperties.java +++ b/src/main/java/de/bonndan/nivio/security/AuthConfigProperties.java @@ -59,4 +59,4 @@ public String getGithubAliasAttribute() { public void setGithubAliasAttribute(String githubAliasAttribute) { this.githubAliasAttribute = githubAliasAttribute; } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/security/CustomOAuth2User.java b/src/main/java/de/bonndan/nivio/security/CustomOAuth2User.java index 03920d293..f42de5eca 100644 --- a/src/main/java/de/bonndan/nivio/security/CustomOAuth2User.java +++ b/src/main/java/de/bonndan/nivio/security/CustomOAuth2User.java @@ -74,4 +74,4 @@ public String getIdp() { public String getExternalId() { return externalId; } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/security/CustomOAuth2UserService.java b/src/main/java/de/bonndan/nivio/security/CustomOAuth2UserService.java index 52fae5499..f02936fe9 100644 --- a/src/main/java/de/bonndan/nivio/security/CustomOAuth2UserService.java +++ b/src/main/java/de/bonndan/nivio/security/CustomOAuth2UserService.java @@ -102,4 +102,4 @@ private void saveUser(CustomOAuth2User customOAuth2User) { } } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/security/LoginController.java b/src/main/java/de/bonndan/nivio/security/LoginController.java index 18634e997..82083f1bb 100644 --- a/src/main/java/de/bonndan/nivio/security/LoginController.java +++ b/src/main/java/de/bonndan/nivio/security/LoginController.java @@ -66,4 +66,4 @@ public String showLoginPage(Model model, OAuth2AuthenticationToken token) { return "login"; } -} \ No newline at end of file +} diff --git a/src/main/java/de/bonndan/nivio/security/MvcConfig.java b/src/main/java/de/bonndan/nivio/security/MvcConfig.java index ff41b3583..fed976ce6 100644 --- a/src/main/java/de/bonndan/nivio/security/MvcConfig.java +++ b/src/main/java/de/bonndan/nivio/security/MvcConfig.java @@ -15,4 +15,3 @@ public void addViewControllers(ViewControllerRegistry registry) { } } - diff --git a/src/main/java/de/bonndan/nivio/security/SecurityConfig.java b/src/main/java/de/bonndan/nivio/security/SecurityConfig.java index 361d22d18..4845c6b65 100644 --- a/src/main/java/de/bonndan/nivio/security/SecurityConfig.java +++ b/src/main/java/de/bonndan/nivio/security/SecurityConfig.java @@ -150,4 +150,4 @@ public void writeHeaders(HttpServletRequest request, HttpServletResponse respons } } -} \ No newline at end of file +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5688621db..9f11633ef 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -123,15 +123,3 @@ spring: hibernate: format_sql: true dialect: org.hibernate.dialect.H2Dialect - - -#security: -# oauth2: -# client: -# access-token-uri: https://github.com/login/oauth/access_token -# user-authorization-uri: https://github.com/login/oauth/authorize -# scope: read:user,user:email -# client-id: 89a7c4facbb3434d599d -# client-secret: 9b3b08e4a340bd20e866787e4645b54f73d74b6a -# resource: -# user-info-uri: https://api.github.com/user \ No newline at end of file diff --git a/src/test/java/de/bonndan/nivio/appuser/AppUserRepositoryTest.java b/src/test/java/de/bonndan/nivio/appuser/AppUserRepositoryTest.java index 03828f1d6..f19a2ad27 100644 --- a/src/test/java/de/bonndan/nivio/appuser/AppUserRepositoryTest.java +++ b/src/test/java/de/bonndan/nivio/appuser/AppUserRepositoryTest.java @@ -15,11 +15,12 @@ class AppUserRepositoryTest { @Autowired private AppUserRepository appUserRepository; - AppUserService appUserService = new AppUserService(appUserRepository); - - @Test void findByExternalId() { + + AppUser appUser1 = new AppUser(); + appUserRepository.save(appUser1); + // given Optional appUser = Optional.of(new AppUser()); appUser.get().setExternalId("100"); appUser.get().setAlias("login"); @@ -27,9 +28,11 @@ void findByExternalId() { appUser.get().setId(1L); appUser.get().setIdp("github"); + // when appUser.ifPresent(user -> appUserRepository.save(user)); final Optional fetchedAppUser = appUserRepository.findByExternalId(appUser.get().getExternalId()); + // then assertNotNull(appUser); assertThat(fetchedAppUser) @@ -43,4 +46,4 @@ void findByExternalId() { }); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/appuser/AppUserRoleTest.java b/src/test/java/de/bonndan/nivio/appuser/AppUserRoleTest.java index ed68820d3..41d0ab49e 100644 --- a/src/test/java/de/bonndan/nivio/appuser/AppUserRoleTest.java +++ b/src/test/java/de/bonndan/nivio/appuser/AppUserRoleTest.java @@ -2,17 +2,20 @@ import org.junit.jupiter.api.Test; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.notNullValue; +import static org.junit.jupiter.api.Assertions.assertEquals; class AppUserRoleTest { @Test void valueOf() { - assertThat(AppUserRole.valueOf("ADMIN"), is(notNullValue())); - assertThat(AppUserRole.valueOf("USER"), is(notNullValue())); + // when + AppUserRole admin = AppUserRole.ADMIN; + AppUserRole user = AppUserRole.USER; + + // then + assertEquals(AppUserRole.valueOf("ADMIN"), admin); + assertEquals(AppUserRole.valueOf("USER"), user); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/appuser/AppUserServiceTest.java b/src/test/java/de/bonndan/nivio/appuser/AppUserServiceTest.java index 4b4ab2fbf..92f7279bb 100644 --- a/src/test/java/de/bonndan/nivio/appuser/AppUserServiceTest.java +++ b/src/test/java/de/bonndan/nivio/appuser/AppUserServiceTest.java @@ -20,7 +20,9 @@ class AppUserServiceTest { void loadUserByUsername() { // given - AppUser appUser = mock(AppUser.class); + AppUser appUser = new AppUser(); + appUser.setLocked(false); + AppUserRepository appUserRepository = mock(AppUserRepository.class); AppUserService appUserService = new AppUserService(appUserRepository); @@ -32,13 +34,13 @@ void loadUserByUsername() { assertThat(userDetails).isEqualTo(appUser); assertNull(userDetails.getUsername()); assertNull(userDetails.getPassword()); - assertFalse(userDetails.isAccountNonExpired()); - assertFalse(userDetails.isAccountNonLocked()); - assertFalse(userDetails.isCredentialsNonExpired()); + assertTrue(userDetails.isAccountNonExpired()); + assertTrue(userDetails.isAccountNonLocked()); + assertTrue(userDetails.isCredentialsNonExpired()); assertThrows(UsernameNotFoundException.class, () -> { appUserService.loadUserByUsername(""); }); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/appuser/AppUserTest.java b/src/test/java/de/bonndan/nivio/appuser/AppUserTest.java index 9c958250e..9a37ee3f0 100644 --- a/src/test/java/de/bonndan/nivio/appuser/AppUserTest.java +++ b/src/test/java/de/bonndan/nivio/appuser/AppUserTest.java @@ -10,136 +10,187 @@ class AppUserTest { @Test void isEnabled() { + // when appUser.setEnabled(true); + // then assertEquals(true, appUser.getEnabled()); } @Test void getId() { + // when appUser.setId(1L); + // then assertEquals(1L, appUser.getId()); } @Test void getName() { + // when appUser.setName("name"); + // then assertEquals("name", appUser.getName()); } @Test void getAlias() { + // when appUser.setAlias("alias"); + // then assertEquals("alias", appUser.getAlias()); } @Test void getEmail() { + // when appUser.setEmail("email"); + // then assertEquals("email", appUser.getEmail()); } @Test void getAvatarUrl() { + // when appUser.setAvatarUrl("avatarUrl"); + // then assertEquals("avatarUrl", appUser.getAvatarUrl()); } @Test void getAppUserRole() { + // when appUser.setAppUserRole(AppUserRole.USER); + // then assertEquals(AppUserRole.USER, appUser.getAppUserRole()); } @Test void getExternalId() { + // when appUser.setExternalId("123"); + // then assertEquals("123", appUser.getExternalId()); } @Test void getIdp() { + // when appUser.setIdp("github"); + // then assertEquals("github", appUser.getIdp()); } @Test void getLocked() { + // when appUser.setLocked(false); + // then assertEquals(false, appUser.getLocked()); } @Test void getEnabled() { + // when appUser.setEnabled(true); + // then assertEquals(true, appUser.getEnabled()); } @Test void setId() { + // given Long id = 1L; + // when appUser.setId(id); + // then assertEquals(id, appUser.getId()); } @Test void setName() { + // given String name = "name"; + // when appUser.setName(name); + // then assertEquals(name, appUser.getName()); } @Test void setAlias() { + // given String alias = "login"; + // when appUser.setAlias(alias); + // then assertEquals(alias, appUser.getAlias()); } @Test void setEmail() { + // given String email = "email"; + // when appUser.setEmail(email); + // then assertEquals(email, appUser.getEmail()); } @Test void setAvatarUrl() { + // given String avatarUrl = "avatarUrl"; + // when appUser.setAvatarUrl(avatarUrl); + // then assertEquals(avatarUrl, appUser.getAvatarUrl()); } @Test void setAppUserRole() { + // when appUser.setAppUserRole(AppUserRole.USER); + // then assertEquals(AppUserRole.USER, appUser.getAppUserRole()); } @Test void setLocked() { + // given Boolean locked = false; + // when appUser.setLocked(locked); + // then assertEquals(locked, appUser.getLocked()); } @Test void setEnabled() { + // given Boolean enabled = true; + // when appUser.setEnabled(enabled); + // then assertEquals(enabled, appUser.getEnabled()); } @Test void setExternalId() { + // given String externalId = "123"; + // when appUser.setExternalId(externalId); + // then assertEquals(externalId, appUser.getExternalId()); } @Test void setIdp() { + // given String idp = "github"; + // when appUser.setIdp(idp); + // then assertEquals(idp, appUser.getIdp()); } @@ -154,8 +205,11 @@ void setIdp() { @Test void isAccountNonLocked() { + // given Boolean locked = false; + // when appUser.setLocked(locked); + // then assertEquals(!locked, appUser.isAccountNonLocked()); } @Test @@ -163,4 +217,4 @@ void isAccountNonLocked() { @Test void testIsEnabled() { assertTrue(appUser.isEnabled()); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/AuthConfigPropertiesTest.java b/src/test/java/de/bonndan/nivio/security/AuthConfigPropertiesTest.java index 010107eb7..c75785a0f 100644 --- a/src/test/java/de/bonndan/nivio/security/AuthConfigPropertiesTest.java +++ b/src/test/java/de/bonndan/nivio/security/AuthConfigPropertiesTest.java @@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat; @ExtendWith(SpringExtension.class) -@SpringBootTest(classes = { ValidationAutoConfiguration.class }) +@SpringBootTest(classes = {ValidationAutoConfiguration.class}) @ExtendWith(MockitoExtension.class) @ActiveProfiles("test") class AuthConfigPropertiesTest { @@ -27,19 +27,23 @@ class AuthConfigPropertiesTest { @Test void defaultLogin() { + // given AuthConfigProperties props = new AuthConfigProperties(); + // when Set> validate = localValidatorFactoryBean.getValidator().validate(props); - + // then assertThat(validate).isEmpty(); assertThat(props.getLoginMode()).isEqualTo(SecurityConfig.LOGIN_MODE_NONE); } @Test void loginValidated() { + // given AuthConfigProperties props = new AuthConfigProperties(); + // when props.setLoginMode("foo"); Set> validate = localValidatorFactoryBean.getValidator().validate(props); - + // then assertThat(validate).isNotEmpty(); ConstraintViolation[] constraintViolations = (ConstraintViolation[]) validate.toArray(ConstraintViolation[]::new); assertThat(constraintViolations[0].getMessage()).isEqualTo("Login mode must be one of none|optional|required"); @@ -47,14 +51,16 @@ void loginValidated() { @Test void allowedOrigins() { + // given AuthConfigProperties props = new AuthConfigProperties(); + // when props.setLoginMode("required"); props.setAllowedOriginPatterns("http://*.foo.com;https://*.domain1.com:[8080,8081]"); - Set> validate = localValidatorFactoryBean.getValidator().validate(props); + // then assertThat(validate).isEmpty(); assertThat(props.getAllowedOriginPatterns()).hasSize(2) .contains("http://*.foo.com") .contains("https://*.domain1.com:[8080,8081]"); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserServiceTest.java b/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserServiceTest.java index 3e9da50ef..8d67157ab 100644 --- a/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserServiceTest.java +++ b/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserServiceTest.java @@ -5,7 +5,7 @@ import de.bonndan.nivio.appuser.AppUserRole; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.security.oauth2.core.user.OAuth2UserAuthority; @@ -28,7 +28,7 @@ class CustomOAuth2UserServiceTest { private Collection authorities; private CustomOAuth2User customOAuth2User; - @MockBean + @Autowired AppUserRepository appUserRepository; @BeforeEach @@ -51,11 +51,11 @@ public void setup() { @Test void fromGitHubUser() { - //given + // when when(oAuth2User.getAttribute("name")).thenReturn(name); customOAuth2User = CustomOAuth2UserService.fromGitHubUser(oAuth2User, "login", "name"); - //then + // then assertThat(customOAuth2User).isNotNull(); assertThat(customOAuth2User.getAlias()).isEqualTo(login); assertThat(customOAuth2User.getExternalId()).isEqualTo(externalId); @@ -65,11 +65,11 @@ void fromGitHubUser() { @Test void fromGitHubUserWithMissingNameFallsBackToLogin() { - //given + // when when(oAuth2User.getAttribute("name")).thenReturn(null); customOAuth2User = CustomOAuth2UserService.fromGitHubUser(oAuth2User, "login", "name"); - //then + // then assertThat(customOAuth2User.getName()).isEqualTo(login); } @@ -79,6 +79,8 @@ void saveUser() { // given customOAuth2User = CustomOAuth2UserService.fromGitHubUser(oAuth2User, "login", "name"); AppUser appUser = new AppUser(); + + // when appUser.setName(customOAuth2User.getName()); appUser.setAlias(customOAuth2User.getAlias()); appUser.setAvatarUrl(customOAuth2User.getAvatarUrl()); @@ -100,4 +102,4 @@ void saveUser() { } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserTest.java b/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserTest.java index a187dfef8..3cb97a39c 100644 --- a/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserTest.java +++ b/src/test/java/de/bonndan/nivio/security/CustomOAuth2UserTest.java @@ -79,4 +79,4 @@ void getAuthorities() { @Test void getIdp() { assertThat(customOAuth2User.getIdp()).isEqualTo(idp); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/LoginControllerCaseNoneTest.java b/src/test/java/de/bonndan/nivio/security/LoginControllerCaseNoneTest.java index 9ff957935..3acd5a2d0 100644 --- a/src/test/java/de/bonndan/nivio/security/LoginControllerCaseNoneTest.java +++ b/src/test/java/de/bonndan/nivio/security/LoginControllerCaseNoneTest.java @@ -26,4 +26,4 @@ void testShowLoginPageForNone() throws Exception { } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/LoginControllerCaseRequiredTest.java b/src/test/java/de/bonndan/nivio/security/LoginControllerCaseRequiredTest.java index 8938dcda6..635bb03fb 100644 --- a/src/test/java/de/bonndan/nivio/security/LoginControllerCaseRequiredTest.java +++ b/src/test/java/de/bonndan/nivio/security/LoginControllerCaseRequiredTest.java @@ -88,4 +88,4 @@ void securedSockets() { .get(1, SECONDS); }).isInstanceOf(ExecutionException.class).hasCauseExactlyInstanceOf(DeploymentException.class); } -} \ No newline at end of file +} diff --git a/src/test/java/de/bonndan/nivio/security/LoginControllerUnitTest.java b/src/test/java/de/bonndan/nivio/security/LoginControllerUnitTest.java index e2d72d5b1..91fba5001 100644 --- a/src/test/java/de/bonndan/nivio/security/LoginControllerUnitTest.java +++ b/src/test/java/de/bonndan/nivio/security/LoginControllerUnitTest.java @@ -52,4 +52,4 @@ void showLoginPage() { assertThat(model.getAttribute("brandingMessage")).isEqualTo("foo"); } -} \ No newline at end of file +} diff --git a/src/test/resources/example/example_four_groups.yml b/src/test/resources/example/example_four_groups.yml index f4419c0bb..72280ad15 100644 --- a/src/test/resources/example/example_four_groups.yml +++ b/src/test/resources/example/example_four_groups.yml @@ -12,12 +12,12 @@ groups: items: - identifier: user - name: AppUser + name: User type: humanuser group: input relations: - target: fe-react - description: AppUser inputs data into React Frontend + description: User inputs data into React Frontend - identifier: fe-react name: React