Skip to content

Commit

Permalink
Merge pull request #380 from Consdata/IKC-402-inmemoery-app-start-fix
Browse files Browse the repository at this point in the history
IKC-402 Init database
  • Loading branch information
pbelke authored Sep 10, 2024
2 parents 119932c + 4c519bc commit cad0317
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,17 @@ public InMemoryUserPermissionsReloader(SimpMessagingTemplate eventSender, UserDe
public void reloadPermissions() {
super.reloadPermissions();
List.of(ADMIN_USERNAME, EDITOR_USERNAME, VIEWER_USERNAME, SUPERUSER_USERNAME).forEach(user -> {
try {
String[] fileContent = Files.readString(getPath(user)).split(";");
userDetailsService.updateUser(User.withUsername(user)
.password(String.format("{noop}%s", fileContent[0]))
.authorities(userRolesMapping.mapToKouncilRoles(Set.of(fileContent[1].split(","))))
.build());
} catch (IOException e) {
throw new KouncilRuntimeException(e);
Path path = getPath(user);
if (Files.exists(path)) {
try {
String[] fileContent = Files.readString(path).split(";");
userDetailsService.updateUser(User.withUsername(user)
.password(String.format("{noop}%s", fileContent[0]))
.authorities(userRolesMapping.mapToKouncilRoles(Set.of(fileContent[1].split(","))))
.build());
} catch (IOException e) {
throw new KouncilRuntimeException(e);
}
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
Expand All @@ -53,6 +54,7 @@
@RequiredArgsConstructor
@ConditionalOnProperty(prefix = "kouncil.auth", name = "active-provider", havingValue = "inmemory")
@EnableGlobalMethodSecurity(jsr250Enabled = true, securedEnabled = true, prePostEnabled = true)
@DependsOn({"userGroupsConfigReader"})
public class InMemoryWebSecurityConfig {

private final UserRolesMapping userRolesMapping;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import com.consdata.kouncil.config.security.UserGroupsConfigReader;
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
import com.consdata.kouncil.security.function.SystemFunctionsRepository;
import com.consdata.kouncil.security.group.UserGroupRepository;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -19,13 +22,17 @@

@ExtendWith(SpringExtension.class)
@WebMvcTest(value = AuthController.class)
@ContextConfiguration(classes = {AuthController.class, InMemoryWebSecurityConfig.class})
@ContextConfiguration(classes = {AuthController.class, InMemoryWebSecurityConfig.class, UserGroupsConfigReader.class})
class AuthControllerTest {

@Autowired
private MockMvc mockMvc;
@MockBean
private UserRolesMapping userRolesMapping;
@MockBean
private SystemFunctionsRepository systemFunctionsRepository;
@MockBean
private UserGroupRepository userGroupRepository;

@Test
void should_authenticate_user() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import com.consdata.kouncil.config.security.UserGroupsConfigReader;
import com.consdata.kouncil.config.security.inmemory.FirstTimeLoginController;
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
import com.consdata.kouncil.config.security.inmemory.InMemoryUserManager;
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
import com.consdata.kouncil.security.function.SystemFunctionsRepository;
import com.consdata.kouncil.security.group.UserGroupRepository;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Expand All @@ -27,13 +30,17 @@

@ExtendWith(SpringExtension.class)
@WebMvcTest(value = AuthController.class)
@ContextConfiguration(classes = {FirstTimeLoginController.class, InMemoryUserManager.class, InMemoryWebSecurityConfig.class})
@ContextConfiguration(classes = {FirstTimeLoginController.class, InMemoryUserManager.class, InMemoryWebSecurityConfig.class, UserGroupsConfigReader.class})
class FirstTimeLoginControllerInMemoryTest {

@Autowired
private MockMvc mockMvc;
@MockBean
private UserRolesMapping userRolesMapping;
@MockBean
private SystemFunctionsRepository systemFunctionsRepository;
@MockBean
private UserGroupRepository userGroupRepository;

@Test
@WithMockUser(username = "admin", roles = {"ADMIN"})
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
:host {
width: 100%;
}

0 comments on commit cad0317

Please sign in to comment.