У меня есть два отдельных веб-приложения на Java, запущенные на моем локальном компьютере в отдельных экземплярах Tomcat 9 через мою IntelliJ IDE. Один находится на порту 8080, другой - на порту 8081. Оба используют Spring (5.1.4) + Spring Security (3.2.5), и я повторно использовал большую часть кода между двумя приложениями для их запуска и работы.
Проблема, с которой я сталкиваюсь, заключается в том, что если я успешно войду в Приложение A (: 8080), то открою новую вкладку браузера в Приложении B (: 8081) и не выполню попытку входа в систему, если я обновлю Приложение AВкладка, которая также теперь вышла из системы.
Какой параметр конфигурации должен быть уникальным для двух приложений, чтобы они не перехватывали друг друга? Точно так же я хотел бы иметь возможность входить в оба одновременно в одном сеансе браузера без помех ...
Вот мой конфиг веб-безопасности - оба в значительной степени идентичны, ЗА ИСКЛЮЧЕНИЕМ значения ключа RememberMe:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/secure/**")
.access("hasRole('MEMBER')")
.and()
.formLogin()
.loginPage("/Login")
.failureUrl("/Login?error=true")
.defaultSuccessUrl("/Master")
.usernameParameter("username")
.passwordParameter("password")
.loginProcessingUrl("/j_spring_security_check")
.permitAll()
.and()
.logout()
.invalidateHttpSession(true)
.logoutUrl("/j_spring_security_logout")
.logoutSuccessUrl("/Login?logout=true")
.and()
.csrf()
.and()
.rememberMe()
.key("UNIQUE_KEY_APP_XYZ")
.and()
.userDetailsService(userDetailsService())
.exceptionHandling()
.accessDeniedPage("/Login?expired=true")
.and()
.sessionManagement()
.maximumSessions(5)
.expiredUrl("/Login?expired=true");
if (this.enableHttps) {
http.requiresChannel().anyRequest().requiresSecure();
}
}
Мои классы web.xml и dispatcher-servlet.xml довольно просты, но могут включать их при необходимости. Из параметров запуска сервера IntelliJ Tomcat мне тоже ничего не стоит.
Стоит отметить, что они используют один и тот же каталог приложений Tomcat / home ...
Любая помощь или указатели приветствуются.
РЕДАКТИРОВАТЬ:Новое Откровение:
Если я запускаю Приложение A с контекстом Приложения по умолчанию ("/") и Приложение B с отдельным контекстом ("/ SecondApp"), вышеупомянутая проблема вообще не возникает,То есть я могу получить доступ к приложению A по адресу localhost: 8080 / и приложению B по адресу localhost: 8081 / SecondApp, и теперь у меня нет этой проблемы с сессией. Я думаю, что обновленный вопрос будет, как я могу запустить их обоих на localhost: 808X / без вышеуказанной поведенческой проблемы сессии?
Полагаю, это больше проблема Tomcat, чем проблема Spring?