diff --git a/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummyAuthenticationSessionModel.java b/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummyAuthenticationSessionModel.java index 593d0b9..03a613d 100644 --- a/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummyAuthenticationSessionModel.java +++ b/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummyAuthenticationSessionModel.java @@ -166,7 +166,7 @@ public ClientModel getClient() { @Override public String getAction() { - return null; + return Action.LOGGED_OUT.name(); } @Override diff --git a/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummySubjectCredentialManager.java b/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummySubjectCredentialManager.java index 10f5129..c493629 100644 --- a/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummySubjectCredentialManager.java +++ b/kc-ext/theme-preview/src/main/java/org/keycloak/ext/theme/DummySubjectCredentialManager.java @@ -3,10 +3,12 @@ import org.keycloak.credential.CredentialInput; import org.keycloak.credential.CredentialModel; import org.keycloak.models.SubjectCredentialManager; +import org.keycloak.models.credential.OTPCredentialModel; import org.keycloak.models.credential.RecoveryAuthnCodesCredentialModel; import org.keycloak.models.utils.RecoveryAuthnCodesUtils; import java.util.List; +import java.util.Objects; import java.util.stream.Stream; public class DummySubjectCredentialManager implements SubjectCredentialManager { @@ -48,10 +50,15 @@ public Stream getStoredCredentialsStream() { @Override public Stream getStoredCredentialsByTypeStream(String s) { List generatedRecoveryAuthnCodes = RecoveryAuthnCodesUtils.generateRawCodes(); - CredentialModel recoveryAuthnCodesCred = RecoveryAuthnCodesCredentialModel.createFromValues( - generatedRecoveryAuthnCodes, - System.currentTimeMillis(), - null); + CredentialModel recoveryAuthnCodesCred = null; + if (Objects.equals(s, "otp")) { + recoveryAuthnCodesCred = OTPCredentialModel.createTOTP(generatedRecoveryAuthnCodes.get(0), 8, 30, "HmacSHA1"); + } else { + recoveryAuthnCodesCred = RecoveryAuthnCodesCredentialModel.createFromValues( + generatedRecoveryAuthnCodes, + System.currentTimeMillis(), + null); + } return Stream.of(recoveryAuthnCodesCred); }