Тестовый проект SpringBoot.
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").authenticated()
.anyRequest().permitAll()
.and()
.formLogin()
.loginPage("/signin")
.permitAll()
.failureUrl("/signin?error=1")
.loginProcessingUrl("/authenticate")
.and()
.logout()
.logoutUrl("/logout")
.permitAll()
.logoutSuccessUrl("/signin?logout")
.and()
.rememberMe()
.rememberMeServices(rememberMeServices())
.key("remember-me-key");
}
Т.е. при обращении к /admin
должно перекинуть на /signin
, где пользователь заполняет форму, а при проверка авторизации осуществляется спрингом по урл /authenticate
.
Вот ровно так работает до деплоя на томкат. После деплоя - адрес проекта получается вида http://localhost:9080/project/
, и теперь все эти урлы, участвующие в авторизации, должны работать относительно адреса проекта.
Но как бы не так. Форма авторизации отправляется на http://localhost:9080/authenticate
, а не на http://localhost:9080/project/authenticate
. Как это пофиксить? не прописывать же имя проекта в шаблоне формы?