Междоменная аутентификация с Grails и Spring Security - PullRequest
2 голосов
/ 19 сентября 2011

Я работаю над приложением grails, которое будет работать под двумя доменными именами, двумя отдельными веб-серверами, использующими один и тот же сервер базы данных, поэтому все данные являются общими и одинаковыми для обоих доменов.Приложение одинаково для обоих доменов, только настройки serverURL отличаются от Config.groovy и файла css.Я использую плагин spring-security для аутентификации.

Короче говоря, мне нужно, когда пользователь входит в систему, чтобы увидеть domain1.com/account, пользователь должен иметь возможность перейти на domain2.com/account и при этом бытьвошли в систему, чтобы увидеть ту же информацию.

Все входы в систему выполняются не через вход через твиттер / фейсбук и не через функциональность OpenID, скорее учетные записи создаются в моем приложении с использованием Spring-Security.

Я не думаю, чтоЭто можно сделать с помощью файлов cookie, поскольку они относятся к конкретному домену, и нет возможности получить доступ к файлам cookie с несколькими доменами через веб-приложение, исправьте меня, если я ошибаюсь.

Одно из решений, о которых я думал, это попробоватьчтобы обеспечить репликацию сеанса между двумя веб-серверами, например, с использованием кластеризации tomcat и принудительной перезаписью URL-адреса при переключении домена, чтобы сеанс находился на другом сервере.Это решение, однако, является моим последним вариантом, так как информация о сеансе будет потеряна, если посетитель решит набрать domain2.com после аутентификации на domain1.com вместо того, чтобы щелкнуть ссылку переписанного URL.

Есть идеи, предложения?Спасибо

1 Ответ

1 голос
/ 20 сентября 2011

Одним из вариантов является использование какой-либо технологии единого входа, например CAS .Здесь есть даже плагин Grails / Spring для CAS здесь .

...