Поток пользовательской регистрации keyCloak выходит из строя с помощью «KC-Services0013: Неудачная аутентификация: java.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Поток пользовательской регистрации keyCloak выходит из строя с помощью «KC-Services0013: Неудачная аутентификация: java.

Сообщение Anonymous »

Я следую за этим руководством и пытаюсь создать свой пользовательский поток регистрации в KeyCloak, используя две формы и пользовательские шаблоны. Ниже я предоставляю код завода аутентификатора для первой формы. Вторая форма использует один и тот же код с единственными изменениями, которые возникают, являются метод Provider_id , getDisplayType () и тип возврата render () , который является form.createform ("register2.ftl"); . Версия keyCloak, которую я использую, - это 24.0.1.
Я имею:
  • Создать мое приложение и скопировал файл JAR в поставщики folder
  • Добавлен мой пользовательский. bin/kc.bat start-dev-debug
  • Используется-debug для разоблачения порта отладки, а затем использовать точки останова в моем приложении
public class FirstCustomFormAuthenticatorFactory implements FormAuthenticatorFactory, FormAuthenticator {

private static final String PROVIDER_ID = "register-form1";
private static final AuthenticationExecutionModel.Requirement[] REQUIREMENT_CHOICES = {
AuthenticationExecutionModel.Requirement.REQUIRED
};

@Override
public String getDisplayType() {
return "Registration Form 1";
}

@Override
public String getReferenceCategory() {
return "";
}

@Override
public boolean isConfigurable() {
return false;
}

@Override
public AuthenticationExecutionModel.Requirement[] getRequirementChoices() {
return REQUIREMENT_CHOICES;
}

@Override
public boolean isUserSetupAllowed() {
return false;
}

@Override
public String getHelpText() {
return "";
}

@Override
public List getConfigProperties() {
return List.of();
}

@Override
public FormAuthenticator create(KeycloakSession keycloakSession) {
return this;
}

@Override
public void init(Config.Scope scope) {

}

@Override
public void postInit(KeycloakSessionFactory keycloakSessionFactory) {

}

@Override
public void close() {

}

@Override
public String getId() {
return PROVIDER_ID;
}

@Override
public Response render(FormContext context, LoginFormsProvider form) {
RegisterBean rb = new RegisterBean(new MultivaluedHashMap(), context.getSession());
form.setAttribute("register", rb);
return form.createForm("register.ftl");
}
}

< /code>
Сервер KeyCloak начинается без каких -либо ошибок. После этого:
  • Я перехожу к http: // localhost: 8080/admin/myrealm/console
  • Я начинаю регистрационный поток первой формы, введя учетные данные, необходимые
, когда отправляя форму.KC-SERVICES0013: Failed authentication: java.lang.NullPointerException: Cannot invoke "org.keycloak.authentication.FormAuthenticator.render(org.keycloak.authentication.FormContext, org.keycloak.forms.login.LoginFormsProvider)" because "this.formAuthenticator" is null
at org.keycloak.authentication.FormAuthenticationFlow.renderForm(FormAuthenticationFlow.java:307)
at org.keycloak.authentication.FormAuthenticationFlow.processFlow(FormAuthenticationFlow.java:285)
at org.keycloak.authentication.DefaultAuthenticationFlow.processSingleFlowExecutionModel(DefaultAuthenticationFlow.java:377)
at org.keycloak.authentication.DefaultAuthenticationFlow.processFlow(DefaultAuthenticationFlow.java:246)
at org.keycloak.authentication.DefaultAuthenticationFlow.processAction(DefaultAuthenticationFlow.java:133)
at org.keycloak.authentication.AuthenticationProcessor.authenticationAction(AuthenticationProcessor.java:987)
at org.keycloak.services.resources.LoginActionsService.processFlow(LoginActionsService.java:364)
at org.keycloak.services.resources.LoginActionsService.processRegistration(LoginActionsService.java:724)
at org.keycloak.services.resources.LoginActionsService.registerRequest(LoginActionsService.java:780)
at org.keycloak.services.resources.LoginActionsService.processRegister(LoginActionsService.java:758)
at org.keycloak.services.resources.LoginActionsService$quarkusrestinvoker$processRegister_707378c0de357d574c0a2e1d6056afe7606ab5ff.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:857)
< /code>
Я не совсем уверен, что вызывает проблему, как видно в моих журналах. У вас есть какие -либо предложения, что я делаю не так?

Подробнее здесь: https://stackoverflow.com/questions/789 ... authentica
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»