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

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

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

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

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

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

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


person shabunc    schedule 20.10.2011    source источник


Ответы (1)


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

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