Проблемы при реализации единого входа с расширением Spring Security CAS

Я пытаюсь использовать расширение Spring Security CAS для аутентификации пользователей в моих приложениях. Раньше было только одно приложение, поэтому SSO не было нужно. Теперь есть еще одно приложение, и я хочу, чтобы пользователь выполнил вход один раз и использовал все приложения без повторной аутентификации (в основном SSO). У меня есть куча таких вопросов -

  • Все приложения, которые у меня есть, являются частью одного контейнера Tomcat и будут обслуживаться через один домен. Я проверил Tomcat SSO Valve, но, похоже, нужна аутентификация на основе контейнера, я не совсем уверен, хочу ли я использовать это для аутентификации / авторизации. Я использую Spring Security на основе формы входа в систему. Мне действительно нужно что-то вроде Jasig CAS или это будет перебор?

Spring Security и CAS deployerContext Configuration - http://pastie.org/8408976 и http://pastie.org/8408967

  • Я настроил Spring Security CAS с сервером Jasig, и SSO, кажется, работает, так как для доступа к другому приложению достаточно войти в любое из приложений. Я изменил файл deployerConfigContext.xml, чтобы заменить inMemoryServiceRegistryDaoImpl на JPA / Hibernate. Но я всегда вижу строку ниже в моих журналах. Хотя таблицы были созданы (SERVICETICKET и т. Д.) В моей БД. Эти таблицы всегда пустые, когда я пытаюсь войти и выйти.

    2013-10-17 16:41:18,882 INFO [org.jasig.cas.services.DefaultServicesManagerImpl] - <Loaded 0 services.>

  • Когда я пытаюсь получить доступ к URL https://localhost/cas/services, он возвращает ошибку "Этот сайт имеет цикл перенаправления". и я вижу следующий фрагмент, повторяющийся n раз в журналах (с разными номерами билетов) - http://pastie.org/8408940

  • У меня нет служб REST или служб без сохранения состояния, обращающихся к аутентифицированным ресурсам, мне вообще нужны прокси-билеты?

Примечание: я использую Spring Security 3.1.4.RELEASE и CAS версии 3.5.2 сервера. Любые указатели будут полезны.

1 ответ

Решение
I set up Spring Security CAS with Jasig server and SSO seems to work
   as logging in to any of the applications suffices to access the other
   application. I've modified the deployerConfigContext.xml to replace
   the inMemoryServiceRegistryDaoImpl with JPA / Hibernate one. But I
   always see the below line in my logs. Though the tables have been
   created (SERVICETICKET and so on) in my db. These tables are always
   empty when I try logging in and out.
When I try to access URL `https://localhost/cas/services`, it returns an error "This website has a redirect loop". and I see the

фрагмент ниже повторяется n раз в логах (с разными номерами билетов)

Я разобрался с решением этой проблемы. Это происходило из-за того, что filterProcessesUrl в конфигурации сервера CAS содержал строку "acegi" (старое имя для Spring Security), которая не совпадала с "spring", поэтому возникла проблема. Модификация, которая помогла. Не уверен, почему старое имя было там жестко закодировано. Кроме того, он не взял эту строку из cas.properties, поэтому выяснить это было немного сложнее.

Я надеюсь получить ответы на другие вопросы.

Другие вопросы по тегам