У меня два разных приложения, скажем A
и. Оба используют Spring Security с одинаковой конфигурацией. Вот моя ситуация:
Я вхожу в свое A
приложение. Все нормально работает. Но когда я вхожу в свое B
приложение (у него тот же IP, но другой ПОРТ) на другой вкладке в том же браузере, я вижу эти строки (ниже), и меня выкидывает из приложения A
, что означает, что я больше не аутентифицирован в Это.
DEBUG 2013-05-20 13: 42: 43 969 [http-8080-2] org.springframework.security.web.FilterChainProxy $ VirtualFilterChain: /webapp/backoffice/index.jsp на позиции 2 из 12 в дополнительной цепочке фильтров; фильтр активации: 'SecurityContextPersistenceFilter'
DEBUG 2013-05-20 13:42: 43,969 [http-8080-2] org.springframework.security.web.context.HttpSessionSecurityContextRepository: HttpSession в настоящее время не существует
DEBUG 2013-05-20 13: 42: 43 969 [http-8080-2] org.springframework.security.web.context.HttpSessionSecurityContextRepository: Нет SecurityContext был доступен из HttpSession: null. Будет создан новый.
- Я использую
HttpSessionSecurityContextRepository
как SecurityContextRepository. - Я включил SessionMigration в целях безопасности.
- Я использую ConcurrentSessionFilter, чтобы предотвратить вход в систему через два или более устройств.
Но я не понимаю, почему при входе в мое B
приложение удаляется HttpSession из A
приложения? (Или, может быть, происходит что-то еще)
Я хочу знать, имеют ли эти приложения что-то общее в браузере.
Когда меня спрашивают об их IP / ПОРТАХ, вы должны знать, что их IP-адреса одинаковы (оба localhost), но у них разные порты.
A)
localhost: 8080 / dtts / backoffice B)
localhost: 8081 / dtts / backoffice РЕШЕНО
Проблема заключалась в том, что для каждого
URL/Path
был уникальный JSESSIONID
. Оба моих приложения используют URL:localhost
и Path:dtts
. Поэтому второй JSESSIONID
заменяет первый.
localhost
), но у них разные порты (A
использует 8080, аB
использует 8081) - person Matin Kh   schedule 22.05.2013