Loading src/main/java/org/eclipse/openk/portal/common/UserCacheTimerTask.java +8 −0 Original line number Diff line number Diff line Loading @@ -21,9 +21,17 @@ public class UserCacheTimerTask extends TimerTask { LOGGER.debug("UserCacheTimerTask started"); try { JwtToken token = JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW()); if( token == null ) { LOGGER.error("Login for getKeyCloakUsersFromToken() failed for User:"+ BackendConfig.getInstance().getKeycloakAdmin()); return; } List<KeyCloakUser> allUsersWithRoles = getKeyCloakUsersFromToken(token); if( allUsersWithRoles.isEmpty()) { LOGGER.warn("getKeyCloakUsersFromToken provided empty list!"); } UserCache.getInstance().setKeyCloakUsers(allUsersWithRoles); } catch (PortalInternalServerError portalInternalServerError) { Loading src/test/java/org/eclipse/openk/portal/common/UserCacheTimerTaskTest.java +62 −0 Original line number Diff line number Diff line package org.eclipse.openk.portal.common; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import static org.easymock.EasyMock.expect; import static org.eclipse.openk.portal.common.JsonGeneratorBase.getGson; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import org.eclipse.openk.portal.auth2.model.JwtToken; import org.eclipse.openk.portal.auth2.model.KeyCloakRole; Loading Loading @@ -62,4 +65,63 @@ public class UserCacheTimerTaskTest extends ResourceLoaderBase { assertTrue(keyCloakUsersResult.get(0).getRealmRoles().get(0).equals("elogbook-superuser")); assertTrue(keyCloakUsersResult.get(0).getRealmRoles().get(6).equals("elogbook-access")); } @Test public void testGetKeyCloakUsers_EmptyToken() throws Exception { List<KeyCloakUser> compList = new ArrayList<>(); UserCache.getInstance().setKeyCloakUsers(compList); String jsonKeyCloakRoles = super.loadStringFromResource("testKeyCloakRoles.json"); Type listTypeKeyCloakRole = new TypeToken<List<KeyCloakRole>>(){}.getType(); List<KeyCloakRole> keyCloakRolesList = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakRoles, listTypeKeyCloakRole); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(null); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertTrue(UserCache.getInstance().getKeyCloakUsers().isEmpty()); } @Test public void testGetKeyCloakUsers_null() throws Exception { List<KeyCloakUser> compList = new ArrayList<>(); UserCache.getInstance().setKeyCloakUsers(compList); String jsonKeyCloakRoles = super.loadStringFromResource("testKeyCloakRoles.json"); Type listTypeKeyCloakRole = new TypeToken<List<KeyCloakRole>>(){}.getType(); List<KeyCloakRole> keyCloakRolesList = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakRoles, listTypeKeyCloakRole); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(null); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertTrue(UserCache.getInstance().getKeyCloakUsers().isEmpty()); } @Test public void testGetKeyCloakUsersFromToken_ListEmpty() throws Exception { String jsonKeyCloakUser = super.loadStringFromResource("testKeyCloakUsers.json"); Type listTypeKeyCloakUser = new TypeToken<List<KeyCloakUser>>(){}.getType(); List<KeyCloakUser> keyCloakUsersListOrg = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakUser, listTypeKeyCloakUser); UserCache.getInstance().setKeyCloakUsers(keyCloakUsersListOrg); String json = super.loadStringFromResource("JWTAdmin.json"); JwtToken jwt = getGson().fromJson(json, JwtToken.class); List<KeyCloakUser> keyCloakUsersList = new ArrayList<>(); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(jwt); expect(JwtHelper.getUsers(jwt, BackendConfig.getInstance().getMaxLoadUsers())).andReturn(keyCloakUsersList); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertEquals(keyCloakUsersList.size(), UserCache.getInstance().getKeyCloakUsers().size()); } } Loading
src/main/java/org/eclipse/openk/portal/common/UserCacheTimerTask.java +8 −0 Original line number Diff line number Diff line Loading @@ -21,9 +21,17 @@ public class UserCacheTimerTask extends TimerTask { LOGGER.debug("UserCacheTimerTask started"); try { JwtToken token = JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW()); if( token == null ) { LOGGER.error("Login for getKeyCloakUsersFromToken() failed for User:"+ BackendConfig.getInstance().getKeycloakAdmin()); return; } List<KeyCloakUser> allUsersWithRoles = getKeyCloakUsersFromToken(token); if( allUsersWithRoles.isEmpty()) { LOGGER.warn("getKeyCloakUsersFromToken provided empty list!"); } UserCache.getInstance().setKeyCloakUsers(allUsersWithRoles); } catch (PortalInternalServerError portalInternalServerError) { Loading
src/test/java/org/eclipse/openk/portal/common/UserCacheTimerTaskTest.java +62 −0 Original line number Diff line number Diff line package org.eclipse.openk.portal.common; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertNull; import static junit.framework.TestCase.assertTrue; import static org.easymock.EasyMock.expect; import static org.eclipse.openk.portal.common.JsonGeneratorBase.getGson; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import org.eclipse.openk.portal.auth2.model.JwtToken; import org.eclipse.openk.portal.auth2.model.KeyCloakRole; Loading Loading @@ -62,4 +65,63 @@ public class UserCacheTimerTaskTest extends ResourceLoaderBase { assertTrue(keyCloakUsersResult.get(0).getRealmRoles().get(0).equals("elogbook-superuser")); assertTrue(keyCloakUsersResult.get(0).getRealmRoles().get(6).equals("elogbook-access")); } @Test public void testGetKeyCloakUsers_EmptyToken() throws Exception { List<KeyCloakUser> compList = new ArrayList<>(); UserCache.getInstance().setKeyCloakUsers(compList); String jsonKeyCloakRoles = super.loadStringFromResource("testKeyCloakRoles.json"); Type listTypeKeyCloakRole = new TypeToken<List<KeyCloakRole>>(){}.getType(); List<KeyCloakRole> keyCloakRolesList = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakRoles, listTypeKeyCloakRole); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(null); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertTrue(UserCache.getInstance().getKeyCloakUsers().isEmpty()); } @Test public void testGetKeyCloakUsers_null() throws Exception { List<KeyCloakUser> compList = new ArrayList<>(); UserCache.getInstance().setKeyCloakUsers(compList); String jsonKeyCloakRoles = super.loadStringFromResource("testKeyCloakRoles.json"); Type listTypeKeyCloakRole = new TypeToken<List<KeyCloakRole>>(){}.getType(); List<KeyCloakRole> keyCloakRolesList = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakRoles, listTypeKeyCloakRole); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(null); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertTrue(UserCache.getInstance().getKeyCloakUsers().isEmpty()); } @Test public void testGetKeyCloakUsersFromToken_ListEmpty() throws Exception { String jsonKeyCloakUser = super.loadStringFromResource("testKeyCloakUsers.json"); Type listTypeKeyCloakUser = new TypeToken<List<KeyCloakUser>>(){}.getType(); List<KeyCloakUser> keyCloakUsersListOrg = JsonGeneratorBase.getGson().fromJson(jsonKeyCloakUser, listTypeKeyCloakUser); UserCache.getInstance().setKeyCloakUsers(keyCloakUsersListOrg); String json = super.loadStringFromResource("JWTAdmin.json"); JwtToken jwt = getGson().fromJson(json, JwtToken.class); List<KeyCloakUser> keyCloakUsersList = new ArrayList<>(); expect(JwtHelper.login(BackendConfig.getInstance().getKeycloakAdmin(), BackendConfig.getInstance().getKeycloakPW())).andReturn(jwt); expect(JwtHelper.getUsers(jwt, BackendConfig.getInstance().getMaxLoadUsers())).andReturn(keyCloakUsersList); PowerMock.replayAll(); task.run(); PowerMock.verifyAll(); assertEquals(keyCloakUsersList.size(), UserCache.getInstance().getKeyCloakUsers().size()); } }