Apereo CAS 6.0.x Передайте поле формы входа разрешенным атрибутам - PullRequest
1 голос
/ 09 марта 2020

Мне нужно добавить поле для входа в систему CAS 6.0.X (выбор языка), которое не используется для аутентификации пользователей, но оно мне нужно после входа в систему. Как я могу передать это поле, добавленное в форму, в данные, которые передаются клиентскому приложению в «основном» объекте.

1 Ответ

0 голосов
/ 11 марта 2020

В конце концов я достиг того, что мне было нужно. Мы переписали модуль поддержки jdb c, чтобы добавить проверки, и я поместил следующий код, который помогает мне получить параметры запроса.

HttpServletRequest request = ((ServletRequestAttributes) 
RequestContextHolder.currentRequestAttributes()).getRequest();
String[] fields = fieldsToPrincipal.split(",");
for(String field : fields2Principal) 
{
    dbFields.put( field.trim() , request.getParameter( field.trim() ) );
}

fieldsToPrincipal Это строка имен полей формы, которая Я хочу отправлять приложения через атрибуты «главной» карты.

Теперь в файлах свойств у меня есть 2 свойства, в которых я сообщаю имена полей. Свойство по умолчанию, которое сообщает вам, какие поля будут получены для основного и моего пользовательского свойства, где я указываю, какие поля будут получены из формы

cas.authn.jdb c .query [0] .principalAttributeList: USERID, USERNAME, LANGUAGE_SELECTED cas.custom.properties.jdb c .loginfields.to.principal = LANGUAGE_SELECTED

...