mirror of
https://github.com/keycloak/keycloak.git
synced 2026-01-10 15:32:05 -03:30
Show transport media for WebAuthn authenticators in Account console
Closes #10063 Signed-off-by: Adham Ahmed Hussein Mahrous <adhamahmad541@gmail.com>
This commit is contained in:
parent
50181816b6
commit
0c2226b4c4
@ -215,4 +215,5 @@ organizationList=List of organizations
|
||||
domains=Domains
|
||||
refresh=Refresh
|
||||
termsAndConditionsDeclined=You need to accept the Terms and Conditions to continue
|
||||
defaultLocale=Choose...
|
||||
defaultLocale=Choose...
|
||||
webauthn-info= Transport media: {{0}}
|
||||
@ -44,6 +44,7 @@ import org.keycloak.models.UserModel;
|
||||
import org.keycloak.models.WebAuthnPolicy;
|
||||
import org.keycloak.models.credential.WebAuthnCredentialModel;
|
||||
import org.keycloak.models.credential.dto.WebAuthnCredentialData;
|
||||
import org.keycloak.util.JsonSerialization;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
@ -57,6 +58,7 @@ import java.util.stream.Collectors;
|
||||
public class WebAuthnCredentialProvider implements CredentialProvider<WebAuthnCredentialModel>, CredentialInputValidator {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(WebAuthnCredentialProvider.class);
|
||||
private static final String WEBAUTHN_INFO = "webauthn-info";
|
||||
|
||||
private KeycloakSession session;
|
||||
|
||||
@ -303,5 +305,27 @@ public class WebAuthnCredentialProvider implements CredentialProvider<WebAuthnCr
|
||||
protected KeycloakSession getKeycloakSession() {
|
||||
return session;
|
||||
}
|
||||
@Override
|
||||
public CredentialMetadata getCredentialMetadata(WebAuthnCredentialModel credentialModel, CredentialTypeMetadata credentialTypeMetadata) {
|
||||
|
||||
CredentialMetadata credentialMetadata = new CredentialMetadata();
|
||||
|
||||
try {
|
||||
WebAuthnCredentialData credentialData = JsonSerialization.readValue(credentialModel.getCredentialData(), WebAuthnCredentialData.class);
|
||||
Set<String> transports = credentialData.getTransports();
|
||||
if (transports != null && !transports.isEmpty()) {
|
||||
String joinedTransports = String.join(", ", transports);
|
||||
credentialMetadata.setInfoMessage(WEBAUTHN_INFO, joinedTransports);
|
||||
|
||||
}
|
||||
|
||||
} catch (
|
||||
IOException e) {
|
||||
logger.warn("unable to deserialize model information, skipping messages", e);
|
||||
}
|
||||
|
||||
credentialMetadata.setCredentialModel(credentialModel);
|
||||
return credentialMetadata;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user