Spring аутентификация безопасности в поддоменах

У меня есть веб-сайт, на котором используются поддомены с подстановочными знаками. Субдомены могут быть любыми, но субдомен присутствует всегда (по умолчанию это «www»). Я хочу пройти аутентификацию в каждом поддомене при входе в систему.

Когда я аутентифицируюсь в abc.example.com, файл cookie JSESSIONID помещается в abc.example.com. Если я перейду на xyz.example.com, он не найдет cookie, поэтому я выйду из системы. Я также использую функцию «запомнить меня», она тоже должна работать.

Что я пробовал до сих пор:

  1. размещение файла cookie в родительском домене (не мог понять, как это сделать)
  2. копирование cookie для поддомена (не знаю, как это сделать)

Может ли кто-нибудь указать мне правильное направление?


person acsadam0404    schedule 05.10.2018    source источник


Ответы (1)


Мне пришлось поместить cookie-файл «запомнить меня» в верхний домен. Сделано, установив домен cookie и отключив кеш запросов:

String rememberMeCookieDomain = ".mydomain.com"
http.rememberMe().rememberMeCookieDomain(remembermeCookieDomain).rememberMeCookieName(REMEMBERME_COOKIE_NAME).tokenRepository(tokenRepository()).tokenValiditySeconds(4 * SECONDS_IN_WEEK);

Завершающий "." необходимо в домене cookie, чтобы поддомены могли получить доступ к cookie верхнего уровня. Если вы используете tomcat, вам нужно включить устаревший процессор файлов cookie, чтобы это работало:

Как изменить обработчик файлов cookie на LegacyCookieProcessor в Tomcat 8

person acsadam0404    schedule 18.10.2018