Apereo CAS загружает пользовательские атрибуты в два этапа и сохраняет их для освобождения атрибута

#single-sign-on #cas #jasig #apereo

#единый вход #кас #джасиг #аперео #cas #jasig #apereo

Вопрос:

В нашем защищенном приложении Apereo CAS 5.3.8 нам нужно отобразить после входа в систему экран, который показывает выпадающий список с некоторыми значениями, из которых пользователь должен выбрать один вариант. Экран должен отображаться только при соблюдении определенных условий, в зависимости от некоторых пользовательских атрибутов. В некоторых сценариях все необходимые нам атрибуты загружаются после входа в систему, но в других случаях нам нужно загрузить дополнительные в зависимости от выбора пользователя. Затем пользовательский выбор должен быть преобразован в некоторые другие пользовательские атрибуты, которые мы хотим сохранить в утверждении CAS, чтобы клиентское приложение могло получать доступ к пользовательским атрибутам и принимать решения на основе этих атрибутов.

Для отображения этого дополнительного экрана мы создали пользовательский многофакторный поставщик. Загруженные атрибуты передаются в PrincipalFactory реализацию.

Почти все работает нормально, за исключением той части, которая происходит после выбора пользователем из выпадающего списка. Вопрос в том, как я могу загрузить основные атрибуты в два этапа? Я попытался обновить объекты principal и authentication в моем пользовательском действии, которое запускается после выбора пользователя, но это не работает, он всегда сохраняет старого участника с атрибутами, загруженными сразу после входа в систему.

Я думаю, что проблема может быть связана с тем, что атрибуты передаются в PrincipalFactory и, вероятно, они записываются только один раз и становятся неизменяемыми. Я пытался использовать AuthenticationTransactionManager и a AuthenticationResultBuilder , но не смог добавить дополнительные вычисляемые атрибуты.

Любое руководство было бы высоко оценено.

Комментарии:

1. A смотрите тег jasig Я думаю, что вы не используете последнюю версию CAS, тогда какую версию CAS вы используете? CAS 3? CAS 4?

2. это Apereo CAS 5.3.8

3. О, тогда я предлагаю добавить тег apereo , этот проект больше не поддерживается jasig . Также было бы неплохо, если бы к вопросу была добавлена версия CAS.

4. Знаете ли вы об этом ? Я не эксперт cas, но я настроил released principal, правда, не в два этапа. Решением может быть создание файла cookie для вашего пользовательского действия после выбора из выпадающего списка, а затем чтение этого файла cookie в службе.

5. да, я знаю о выпуске атрибута, я уже делаю это. однако мне нужно сделать это дважды и добавить атрибуты, относящиеся ко второму шагу, поверх ранее загруженных.