2015-06-15 3 views
0

Я разработал собственный модуль аутентификации, выполнив команду example и установив ее в область верхнего уровня. OpenAM 11.0.0.OpenAM: невозможно войти в систему с помощью настраиваемого модуля аутентификации

enter image description here

Затем я открываю тестовую страницу для моего модуля аутентификации. enter image description here

Войти завершается с ошибкой «комбинация Логин/пароль неверен.»

Однако, если открыть /openam после появления этого сообщения об ошибке, это говорит, что я вошел в.

enter image description here

Вот process код AMLoginModule

public int process(Callback[] callbacks, int state) throws LoginException 
{ 

    if (debug.messageEnabled()) 
    { 
     debug.message("Authentication module process() is called. state: " + state); 
    } 


    switch (state) 
    { 

     case STATE_BEGIN: 
     // No time wasted here - simply modify the UI and 
     // proceed to next state 
     substituteUIStrings(); 
     return STATE_AUTH; 

     case STATE_AUTH: 
     return ISAuthConstants.LOGIN_SUCCEED; 

     case STATE_ERROR: 
     return STATE_ERROR; 
     default: 
     throw new AuthLoginException("invalid state"); 

    } 

} 

Вы можете видеть любое имя пользователя/пароль принимается. Журнал отладки показывает, что модуль вызывается правильно.

[[email protected] debug]# tail /openam/openam/debug/em 
em:06/15/2015 06:58:20:462 AM UTC: Thread[http-bio-8080-exec-4,5,main] 
Authentication module process() is called. state: 1 
em:06/15/2015 06:58:20:540 AM UTC: Thread[http-bio-8080-exec-4,5,main] 
Authentication module process() is called. state: 2 
em:06/15/2015 06:58:27:501 AM UTC: Thread[http-bio-8080-exec-4,5,main] 
Authentication module init() is called 
em:06/15/2015 06:58:27:507 AM UTC: Thread[http-bio-8080-exec-4,5,main] 
Authentication module process() is called. state: 1 
em:06/15/2015 06:58:27:625 AM UTC: Thread[http-bio-8080-exec-4,5,main] 
Authentication module process() is called. state: 2 

Пожалуйста, почему я вижу ошибку «комбинация Логин/пароль неверен.» в тестовой странице?

+0

Определения обратного вызова и схема обслуживания были бы хорошими, чтобы увидеть – MrPotes

+0

Привет, пост обновлен –

+0

XUI делает вызов REST конечной точке идентификации в конце (см. Вывод средств разработчика) ... не приятно .. Я знаю. вывод консоли предполагает, что OpenAM не может получить профиль пользователя из сконфигурированных хранилищ данных, и это, похоже, является проблемой. Вы можете сначала попробовать с устаревшим UI –

ответ

0

Проблема в том, что у вас нет профиля пользователя для входа. Вам необходимо указать имя пользователя в своем хранилище данных, которое вы передадите в конструктор SampleAuthPrincipal("username").

@Override 
public Principal getPrincipal() { 
    return new SampleAuthPrincipal("username"); 
} 

Это должно решить вашу проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^