Skip to content

Commit 38ff745

Browse files
authored
Merge pull request #21 from SentriusLLC/Issue17
Fixes Issue17
2 parents 1abcb87 + a3fc868 commit 38ff745

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

api/src/main/java/io/sentrius/sso/controllers/api/SystemApiController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public String setOption(HttpServletRequest request, HttpServletResponse response
149149
} else if (someFailed) {
150150
updateOption = MessagingUtil.SOME_SETTINGS_FAIL;
151151
}
152-
return "redirect:/sso/v1/settings?message=" + MessagingUtil.getMessageId(updateOption);
152+
return "redirect:/sso/v1/system/settings?message=" + MessagingUtil.getMessageId(updateOption);
153153

154154
}
155155

api/src/main/java/io/sentrius/sso/startup/ConfigurationApplicationTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public void afterStartup() throws IOException, GeneralSecurityException, JSchExc
8989
var hash = new String(digest.digest());
9090

9191
AtomicBoolean recreate = new AtomicBoolean(false);
92-
configurationOptionRepository.findByConfigurationName("yamlConfigurationFileHash")
92+
configurationOptionRepository.findLatestByConfigurationName("yamlConfigurationFileHash")
9393
.ifPresentOrElse(
9494
configurationOption -> {
9595
if (!hash.equals(configurationOption.getConfigurationValue())) {

api/src/test/java/io/sentrius/startup/PostStartupTaskTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,15 +79,15 @@ void testAfterStartupWithYamlConfiguration()
7979
mockConfigOption.setConfigurationName("yamlConfigurationFileHash");
8080
mockConfigOption.setConfigurationValue("oldHash");
8181

82-
Mockito.when(configurationOptionRepository.findByConfigurationName("yamlConfigurationFileHash"))
82+
Mockito.when(configurationOptionRepository.findLatestByConfigurationName("yamlConfigurationFileHash"))
8383
.thenReturn(Optional.of(mockConfigOption));
8484

8585
Mockito.when(userService.addUscer(ArgumentMatchers.any(User.class))).thenReturn(User.builder().id(1L).name("name").build());
8686
// Call the method
8787
postStartupTask.afterStartup();
8888

8989
// Verify interactions
90-
Mockito.verify(configurationOptionRepository).findByConfigurationName("yamlConfigurationFileHash");
90+
Mockito.verify(configurationOptionRepository).findLatestByConfigurationName("yamlConfigurationFileHash");
9191
Mockito.verify(configurationOptionRepository).save(mockConfigOption);
9292

9393
// Assertions
@@ -103,7 +103,7 @@ void testAfterStartupNoYamlConfiguration() throws IOException, GeneralSecurityEx
103103
postStartupTask.afterStartup();
104104

105105
// Verify no interactions with repositories
106-
Mockito.verify(configurationOptionRepository, Mockito.never()).findByConfigurationName(
106+
Mockito.verify(configurationOptionRepository, Mockito.never()).findLatestByConfigurationName(
107107
ArgumentMatchers.anyString());
108108
}
109109
}

core/src/main/java/io/sentrius/sso/core/config/ThreadSafeDynamicPropertiesService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ private void loadProperties() {
7979
public void updateProperty(String key, String value) throws IOException {
8080
lock.writeLock().lock();
8181
try{
82-
configurationOptionRepository.save(ConfigurationOption.builder().build());
82+
configurationOptionRepository.save(ConfigurationOption.builder().configurationName(key).configurationValue(null == value ? "" : value).build());
8383
} finally {
8484
lock.writeLock().unlock();
8585
}
@@ -89,7 +89,7 @@ public void updateProperty(String key, String value) throws IOException {
8989
public String getProperty(String key, String defaultValue) {
9090
lock.readLock().lock();
9191
try {
92-
var dbOption = configurationOptionRepository.findByConfigurationName(key);
92+
var dbOption = configurationOptionRepository.findLatestByConfigurationName(key);
9393
if (dbOption.isEmpty()) {
9494
return properties.getProperty(key, defaultValue);
9595
}

core/src/main/java/io/sentrius/sso/core/repository/ConfigurationOptionRepository.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@
33
import java.util.Optional;
44
import io.sentrius.sso.core.model.ConfigurationOption;
55
import org.springframework.data.jpa.repository.JpaRepository;
6+
import org.springframework.data.jpa.repository.Query;
7+
import org.springframework.data.repository.query.Param;
68

79
public interface ConfigurationOptionRepository extends JpaRepository<ConfigurationOption, Long> {
810

9-
Optional<ConfigurationOption> findByConfigurationName(String configurationName);
11+
@Query("SELECT c FROM ConfigurationOption c WHERE c.configurationName = :configurationName ORDER BY c.id DESC LIMIT 1")
12+
Optional<ConfigurationOption> findLatestByConfigurationName(@Param("configurationName") String configurationName);
1013
}

0 commit comments

Comments
 (0)