in fractions/keycloak-microprofile-jwt/src/main/java/org/wildfly/swarm/keycloak/mpjwt/runtime/KeycloakMicroprofileJwtArchivePreparer.java [70:119]
private InputStream getKeycloakJsonFromSystemProperties() {
final String thorntailPrefix = "thorntail.keycloak.secure-deployments.[" + archive.getName() + "].";
final String swarmPrefix = "swarm.keycloak.secure-deployments.[" + archive.getName() + "].";
final String credentialsSecretProperty = "credentials.secret.value";
Map<String, String> kcAdapterSystemProps = new LinkedHashMap<>();
Properties systemProps = System.getProperties();
for (Map.Entry<Object, Object> entry : systemProps.entrySet()) {
String key = entry.getKey().toString();
if (key.startsWith(thorntailPrefix)) {
kcAdapterSystemProps.put(key.substring(thorntailPrefix.length()),
entry.getValue().toString());
} else if (key.startsWith(swarmPrefix)) {
kcAdapterSystemProps.put(key.substring(swarmPrefix.length()),
entry.getValue().toString());
}
}
InputStream is = null;
if (!kcAdapterSystemProps.isEmpty()) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
JsonGenerator jg = new JsonFactory().createGenerator(out, JsonEncoding.UTF8);
jg.writeStartObject();
for (Map.Entry<String, String> entry : kcAdapterSystemProps.entrySet()) {
if (entry.getKey().equals(credentialsSecretProperty)) {
jg.writeFieldName("credentials");
jg.writeStartObject();
jg.writeFieldName("secret");
jg.writeString(entry.getValue());
jg.writeEndObject();
} else {
jg.writeFieldName(entry.getKey());
if (isBoolean(entry.getValue())) {
jg.writeBoolean(Boolean.valueOf(entry.getValue()));
} else if (isSimpleNumber(entry.getValue())) {
jg.writeNumber(Long.valueOf(entry.getValue()));
} else {
jg.writeString(entry.getValue());
}
}
}
jg.writeEndObject();
jg.close();
is = new ByteArrayInputStream(out.toByteArray());
} catch (IOException ex) {
log.warn("keycloak.json can not be auto-generated", ex);
}
}
return is;
}