Приложения Grails с включенными CAS

#authentication #grails #authorization #cas

#аутентификация #grails #авторизация #cas

Вопрос:

Коллеги-разработчики grails, помогите мне найти самый простой способ выполнить следующее. Итак, у меня есть Tomcat с включенными CAS, который используется всеми размещенными веб-приложениями. Одним из таких веб-приложений является приложение grails.

Что касается файлов в папке веб-приложения этого приложения grails, они просто могут видеть request.getRemoteUser(), как и ожидалось.

Что касается grails-app (например, для получения имени пользователя в контроллерах), насколько я понимаю, я должен предпринять некоторые дополнительные шаги.

Мой вопрос — какой самый простой способ добиться этого? С моей точки зрения, просто пытаясь решить эту проблему любыми способами, я могу пересылать запросы на контроллеры из части веб-приложения, но это извращает. Или я могу установить плагин grails CAS, но это означает, что я просто удваиваю конфигурации, поскольку я уже настраиваю web.xml .

Или я могу (могу ли я?) Как-то использовать для этих целей springSecurityService?

Но какой самый элегантный способ получить имя пользователя в приложении grails, когда, как и для веб-приложений, уже есть работающие CAS?

Ответ №1:

Есть несколько разных способов справиться с этим:

  1. Используйте spring-security-core с spring-security-cas; но, как вы говорите, это добавляет второй уровень CAS
  2. Доступ к информации о пользователе через request.remoteUser, как и в любом другом веб-приложении
  3. настройте PreAuthenticatedAuthenticationProvider и RequestHeaderAuthenticationFilter, чтобы заставить spring-security доверять заголовкам запросов, настроенным на tomcat; есть некоторая информация о настройке этого на http://dickersonshypotheticalblog.blogspot.com/2011/05/grails-spring-security-using.html

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

1. ну, дело в том, что я вообще не вижу request.remoteUser в контроллерах grails, вот почему я задал этот вопрос.