109 info.setComponentTypes(
new HashMap<>());
110 LinkedHashMap<String, SpiInfoRepresentation> spiReps =
new LinkedHashMap<>();
112 List<Spi> spis =
new LinkedList<>(
session.getKeycloakSessionFactory().getSpis());
113 Collections.sort(spis,
new Comparator<Spi>() {
115 public int compare(Spi s1, Spi s2) {
116 return s1.getName().compareTo(s2.getName());
120 for (Spi spi : spis) {
121 SpiInfoRepresentation spiRep =
new SpiInfoRepresentation();
122 spiRep.setInternal(spi.isInternal());
124 List<String> providerIds =
new LinkedList<>(
session.listProviderIds(spi.getProviderClass()));
125 Collections.sort(providerIds);
127 Map<String, ProviderRepresentation> providers =
new HashMap<>();
129 if (providerIds != null) {
130 for (String name : providerIds) {
131 ProviderRepresentation provider =
new ProviderRepresentation();
132 ProviderFactory<?> pi =
session.getKeycloakSessionFactory().getProviderFactory(spi.getProviderClass(), name);
133 provider.setOrder(pi.order());
134 if (ServerInfoAwareProviderFactory.class.isAssignableFrom(pi.getClass())) {
135 provider.setOperationalInfo(((ServerInfoAwareProviderFactory) pi).getOperationalInfo());
137 if (pi instanceof ConfiguredProvider) {
138 ComponentTypeRepresentation rep =
new ComponentTypeRepresentation();
139 rep.setId(pi.getId());
140 ConfiguredProvider configured = (ConfiguredProvider)pi;
141 rep.setHelpText(configured.getHelpText());
142 List<ProviderConfigProperty> configProperties = configured.getConfigProperties();
143 if (configProperties == null) configProperties = Collections.EMPTY_LIST;
144 rep.setProperties(ModelToRepresentation.toRepresentation(configProperties));
145 if (pi instanceof ComponentFactory) {
146 rep.setMetadata(((ComponentFactory)pi).getTypeMetadata());
148 List<ComponentTypeRepresentation> reps = info.getComponentTypes().get(spi.getProviderClass().getName());
150 reps =
new LinkedList<>();
151 info.getComponentTypes().put(spi.getProviderClass().getName(), reps);
155 providers.put(name, provider);
158 spiRep.setProviders(providers);
160 spiReps.put(spi.getName(), spiRep);
162 info.setProviders(spiReps);
KeycloakSession session
Definition: ServerInfoAdminResource.java:81