keycloak-aplcache
Changes
forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js 2(+1 -1)
forms/common-themes/src/main/resources/theme/base/admin/resources/partials/server-info-providers.html 2(+1 -1)
Details
diff --git a/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js b/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
index 8ad8ae6..810aef7 100755
--- a/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
+++ b/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
@@ -549,7 +549,7 @@ module.controller('ClientDetailCtrl', function($scope, realm, client, $route, se
"bearer-only"
];
- $scope.protocols = Object.keys(serverInfo.providers['login-protocol'].providers);
+ $scope.protocols = Object.keys(serverInfo.providers['login-protocol'].providers).sort();
$scope.signatureAlgorithms = [
"RSA_SHA1",
diff --git a/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/server-info-providers.html b/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/server-info-providers.html
index 6f8bbb4..aa95b50 100755
--- a/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/server-info-providers.html
+++ b/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/server-info-providers.html
@@ -28,7 +28,7 @@
</tr>
</thead>
<tbody>
- <tr data-ng-repeat="spi in (providers | orderBy:'name' | filter:search)">
+ <tr data-ng-repeat="spi in (providers | filter:search)">
<td>{{spi.name}}</td>
<td>
<div data-ng-repeat="(providerName, provider) in spi.providers">
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/info/ServerInfoAdminResource.java b/services/src/main/java/org/keycloak/services/resources/admin/info/ServerInfoAdminResource.java
index 8223556..fd0afc9 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/info/ServerInfoAdminResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/info/ServerInfoAdminResource.java
@@ -60,12 +60,27 @@ public class ServerInfoAdminResource {
}
private void setProviders(ServerInfoRepresentation info) {
- Map<String, SpiInfoRepresentation> spis = new HashMap<>();
+ LinkedHashMap<String, SpiInfoRepresentation> spiReps = new LinkedHashMap<>();
+
+ List<Spi> spis = new LinkedList<>();
for (Spi spi : ServiceLoader.load(Spi.class)) {
+ spis.add(spi);
+ }
+ Collections.sort(spis, new Comparator<Spi>() {
+ @Override
+ public int compare(Spi s1, Spi s2) {
+ return s1.getName().compareTo(s2.getName());
+ }
+ });
+
+ for (Spi spi : spis) {
SpiInfoRepresentation spiRep = new SpiInfoRepresentation();
spiRep.setInternal(spi.isInternal());
spiRep.setSystemInfo(ServerInfoAwareProviderFactory.class.isAssignableFrom(spi.getProviderFactoryClass()));
- Set<String> providerIds = session.listProviderIds(spi.getProviderClass());
+
+ List<String> providerIds = new LinkedList<>(session.listProviderIds(spi.getProviderClass()));
+ Collections.sort(providerIds);
+
Map<String, ProviderRepresentation> providers = new HashMap<>();
if (providerIds != null) {
@@ -79,9 +94,9 @@ public class ServerInfoAdminResource {
}
spiRep.setProviders(providers);
- spis.put(spi.getName(), spiRep);
+ spiReps.put(spi.getName(), spiRep);
}
- info.setProviders(spis);
+ info.setProviders(spiReps);
}
private void setThemes(ServerInfoRepresentation info) {
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
index 33ead31..dc49661 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
@@ -299,7 +299,6 @@ public class AdminAPITest {
@Test
public void testServerInfo() {
-
String token = createToken();
final String authHeader = "Bearer " + token;
ClientRequestFilter authFilter = new ClientRequestFilter() {
@@ -314,45 +313,21 @@ public class AdminAPITest {
Map<?, ?> response = target.request().accept("application/json").get(Map.class);
- Assert.assertNotNull(response);
- Assert.assertEquals(Version.VERSION, response.get("version"));
- Assert.assertNotNull(response.get("serverTime"));
- Assert.assertNotNull(response.get("providers"));
- Assert.assertNotNull(response.get("themes"));
- Assert.assertNotNull(response.get("enums"));
-
- // System.out.println(response);
-
- }
-
- @Test
- public void testServerInfoPage() {
-
- String token = createToken();
- final String authHeader = "Bearer " + token;
- ClientRequestFilter authFilter = new ClientRequestFilter() {
- @Override
- public void filter(ClientRequestContext requestContext) throws IOException {
- requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, authHeader);
- }
- };
- Client client = ClientBuilder.newBuilder().register(authFilter).build();
- UriBuilder authBase = UriBuilder.fromUri("http://localhost:8081/auth");
- WebTarget target = client.target(AdminRoot.adminBaseUrl(authBase).path("serverinfopage"));
- Map<?, ?> response = target.request().accept("application/json").get(Map.class);
+ System.out.println(response.keySet().toString());
Assert.assertNotNull(response);
- Assert.assertEquals(Version.VERSION, response.get("version"));
- Assert.assertNotNull(response.get("serverTime"));
Assert.assertNotNull(response.get("providers"));
- Assert.assertNotNull(response.get("serverStartupTime"));
+ Assert.assertNotNull(response.get("themes"));
+ Assert.assertNotNull(response.get("enums"));
Assert.assertNotNull(response.get("memoryInfo"));
Assert.assertNotNull(response.get("systemInfo"));
-
- // System.out.println(response);
+ Map<?, ?> systemInfo = (Map<?, ?>) response.get("systemInfo");
+ Assert.assertEquals(Version.VERSION, systemInfo.get("version"));
+ Assert.assertNotNull(systemInfo.get("serverTime"));
+ Assert.assertNotNull(systemInfo.get("uptime"));
}
}