Skip to content

Commit cad0317

Browse files
authored
Merge pull request #380 from Consdata/IKC-402-inmemoery-app-start-fix
IKC-402 Init database
2 parents 119932c + 4c519bc commit cad0317

File tree

5 files changed

+33
-11
lines changed

5 files changed

+33
-11
lines changed

kouncil-backend/src/main/java/com/consdata/kouncil/config/security/inmemory/InMemoryUserPermissionsReloader.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,17 @@ public InMemoryUserPermissionsReloader(SimpMessagingTemplate eventSender, UserDe
4343
public void reloadPermissions() {
4444
super.reloadPermissions();
4545
List.of(ADMIN_USERNAME, EDITOR_USERNAME, VIEWER_USERNAME, SUPERUSER_USERNAME).forEach(user -> {
46-
try {
47-
String[] fileContent = Files.readString(getPath(user)).split(";");
48-
userDetailsService.updateUser(User.withUsername(user)
49-
.password(String.format("{noop}%s", fileContent[0]))
50-
.authorities(userRolesMapping.mapToKouncilRoles(Set.of(fileContent[1].split(","))))
51-
.build());
52-
} catch (IOException e) {
53-
throw new KouncilRuntimeException(e);
46+
Path path = getPath(user);
47+
if (Files.exists(path)) {
48+
try {
49+
String[] fileContent = Files.readString(path).split(";");
50+
userDetailsService.updateUser(User.withUsername(user)
51+
.password(String.format("{noop}%s", fileContent[0]))
52+
.authorities(userRolesMapping.mapToKouncilRoles(Set.of(fileContent[1].split(","))))
53+
.build());
54+
} catch (IOException e) {
55+
throw new KouncilRuntimeException(e);
56+
}
5457
}
5558
});
5659
}

kouncil-backend/src/main/java/com/consdata/kouncil/config/security/inmemory/InMemoryWebSecurityConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3232
import org.springframework.context.annotation.Bean;
3333
import org.springframework.context.annotation.Configuration;
34+
import org.springframework.context.annotation.DependsOn;
3435
import org.springframework.security.authentication.AuthenticationManager;
3536
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
3637
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
@@ -53,6 +54,7 @@
5354
@RequiredArgsConstructor
5455
@ConditionalOnProperty(prefix = "kouncil.auth", name = "active-provider", havingValue = "inmemory")
5556
@EnableGlobalMethodSecurity(jsr250Enabled = true, securedEnabled = true, prePostEnabled = true)
57+
@DependsOn({"userGroupsConfigReader"})
5658
public class InMemoryWebSecurityConfig {
5759

5860
private final UserRolesMapping userRolesMapping;

kouncil-backend/src/test/java/com/consdata/kouncil/security/AuthControllerTest.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
66
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
77

8+
import com.consdata.kouncil.config.security.UserGroupsConfigReader;
89
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
10+
import com.consdata.kouncil.security.function.SystemFunctionsRepository;
11+
import com.consdata.kouncil.security.group.UserGroupRepository;
912
import org.junit.jupiter.api.Test;
1013
import org.junit.jupiter.api.extension.ExtendWith;
1114
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,13 +22,17 @@
1922

2023
@ExtendWith(SpringExtension.class)
2124
@WebMvcTest(value = AuthController.class)
22-
@ContextConfiguration(classes = {AuthController.class, InMemoryWebSecurityConfig.class})
25+
@ContextConfiguration(classes = {AuthController.class, InMemoryWebSecurityConfig.class, UserGroupsConfigReader.class})
2326
class AuthControllerTest {
2427

2528
@Autowired
2629
private MockMvc mockMvc;
2730
@MockBean
2831
private UserRolesMapping userRolesMapping;
32+
@MockBean
33+
private SystemFunctionsRepository systemFunctionsRepository;
34+
@MockBean
35+
private UserGroupRepository userGroupRepository;
2936

3037
@Test
3138
void should_authenticate_user() throws Exception {

kouncil-backend/src/test/java/com/consdata/kouncil/security/FirstTimeLoginControllerInMemoryTest.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,12 @@
99
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
1010
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
1111

12+
import com.consdata.kouncil.config.security.UserGroupsConfigReader;
1213
import com.consdata.kouncil.config.security.inmemory.FirstTimeLoginController;
13-
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
1414
import com.consdata.kouncil.config.security.inmemory.InMemoryUserManager;
15+
import com.consdata.kouncil.config.security.inmemory.InMemoryWebSecurityConfig;
16+
import com.consdata.kouncil.security.function.SystemFunctionsRepository;
17+
import com.consdata.kouncil.security.group.UserGroupRepository;
1518
import java.nio.file.Files;
1619
import java.nio.file.Path;
1720
import java.nio.file.Paths;
@@ -27,13 +30,17 @@
2730

2831
@ExtendWith(SpringExtension.class)
2932
@WebMvcTest(value = AuthController.class)
30-
@ContextConfiguration(classes = {FirstTimeLoginController.class, InMemoryUserManager.class, InMemoryWebSecurityConfig.class})
33+
@ContextConfiguration(classes = {FirstTimeLoginController.class, InMemoryUserManager.class, InMemoryWebSecurityConfig.class, UserGroupsConfigReader.class})
3134
class FirstTimeLoginControllerInMemoryTest {
3235

3336
@Autowired
3437
private MockMvc mockMvc;
3538
@MockBean
3639
private UserRolesMapping userRolesMapping;
40+
@MockBean
41+
private SystemFunctionsRepository systemFunctionsRepository;
42+
@MockBean
43+
private UserGroupRepository userGroupRepository;
3744

3845
@Test
3946
@WithMockUser(username = "admin", roles = {"ADMIN"})
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
:host {
2+
width: 100%;
3+
}

0 commit comments

Comments
 (0)