У меня есть приложение JSF с JAAS, работающее отлично. Аутентификация производится по ID пользователя и паролю. LoginModule выполняет аутентификацию и создание Принципов пользователя.
Теперь я обновляю приложение, чтобы разрешить пользователям входить в систему с любого из их предварительно зарегистрированных и подтвержденных электронных писем.
Еще раз LoginModule выполняет аутентификацию и создание Принципов пользователя в соответствии с ИД пользователя владельца электронной почты.
Взаимосвязь таблиц не такая уж причудливая:
EmailTable (N) - (1) UserTable (1) - (N) UserRoles
Но даже после выполнения аутентификации и создания Принципов пользователя в приложении JSF выходные данные # {request.remoteUser} или # {request.userPrincipal.name} по-прежнему будут являться пользовательским электронным письмом, введенным на странице входа, а не ID пользователя, и авторизация на внутренних страницах не работает.
Пожалуйста, чего мне не хватает?