Получить объект запроса в AbstractJdbcUsernamePasswordAuthenticationHandler - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть CAS 6.0.1, и я расширил AbstractJdbcUsernamePasswordAuthenticationHandler, чтобы он соответствовал моей БД, и все работает нормально.

У меня есть новое требование в основном добавить своего рода "отдел" на мою страницу входа,Я думаю, что у меня есть 2 варианта, либо добавить его в виде пары имя / значение в URL, либо, поскольку это POST, добавить скрытое поле в форму, в дополнение к j_username и j_password.

Но как в любом случае получить это значение в моей реализации AuthenticationHandler?

1 Ответ

0 голосов
/ 24 февраля 2019

Если вы просто хотите получить доступ к объекту запроса в свободной форме, вы можете использовать:

HttpServletRequest request = ((ServletRequestAttributes)
      RequestContextHolder.currentRequestAttributes()).getRequest();

или использовать сам CAS:

HttpServletRequest request = 
      HttpRequestUtils.getHttpServletRequestFromRequestAttributes();

Это позволяет вам проверять такие параметры, какdepartment свободно.Если вы хотите, чтобы эти параметры действительно были привязаны к переданному объекту credential, который содержит имя пользователя / пароль и т. Д., То вам потребуется довольно сильно изменить веб-поток, чтобы включить эти поля в учетные данныеобъект, изменение веб-потока для обработки привязки и т. д. Я думаю, что на данный момент выше может показаться более простым.

...