Хобрук: Ваш путь к мастерству в программировании

Междоменная аутентификация с помощью grails и Spring Security

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

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

Все входы не выполняются через вход в twitter / facebook или через функцию OpenID, скорее учетные записи создаются в моем приложении с использованием spring -security.

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

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

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


Ответы:


1

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

20.09.2011
  • Спасибо, это не то, что я искал. 24.09.2011
  • Новые материалы

    #093 | Моделирование вспышки эпидемии с помощью JavaScript — Часть 3
    TLDR: Я сделал симуляцию вспышки эпидемии, в которую можно поиграть здесь . Мой холст, моя сцена Мой HTML — это всего лишь один div с классом stage, и вот как я настроил на нем свой объект..

    numberToString.js (8kyu 16)
    Алгоритм кодовых войн Проблема Нам нужна функция, которая может преобразовать число в строку. 숫자를 문자열로 변환하는 함수를 작성해라. Решение 01 function numberToString(n) { return n.toString(); }..

    Лучшие практики для быстрого изучения языка программирования
    Изучение языка программирования может быть сложной задачей, но при правильном подходе определенно возможно быстро выучить язык программирования. Хорошее понимание языка программирования может..

    Использование данных из Adobe Analytics в предложениях Adobe Target
    Я уверен, что все видели эти всплывающие окна в интернет-магазинах, которые говорят что-то вроде « 15 человек просматривают этот товар прямо сейчас! » или « 105 человек из Мичигана купили это..

    Машинное обучение и его набор данных в CreateML
    Когда я впервые начал учиться в Apple Developer Academy, у меня был момент неуверенности в моем интересе к машинному обучению. Нужно ли мне сменить карьеру моей мечты с специалиста по данным на..

    Обучение требует воли
    Недавно я прочитал отличную статью Шейна Легга и Джоэла Венесса из DeepMind. http://arxiv.org/pdf/1109.5951v2.pdf В статье «универсальный интеллект» агента π определяется как: Поэтому..

    Безопасность по дизайну делает всех счастливыми
    Заложенная безопасность делает всех счастливыми Если вы никогда не смотрели Louis C.K. рассказать о том, как Все удивительно, и никто не счастлив ; побаловать себя. Сделайте это прямо..