У меня есть метод configure () WebSecurityConfigurerAdapter
http.authorizeRequests().antMatchers("/static/**").permitAll().anyRequest().authenticated().and()
.formLogin().loginPage("/login")
// Redirection after login
.defaultSuccessUrl("/home", true).permitAll().and().logout()
// logout link. Check if there is no conflict with SAML
.logoutRequestMatcher(new AntPathRequestMatcher("/saml/logout")).deleteCookies("JSESSIONID")
.invalidateHttpSession(true).logoutSuccessUrl("/").permitAll();
Как перенаправить зарегистрированного пользователя на /home
, если пользователь пытается получить доступ к /login
?
PS - Мой код контроллера
@RequestMapping(method = RequestMethod.GET, value = {"/login"})
public String getIndexPage() {
return LOGIN_PAGE;
}
@RequestMapping(method = RequestMethod.GET, value = {"/"})
public String getHomePage() {
return "redirect:/home";
}
@MehrajMalik, но что, если он явно попытается получить доступ к /login
? То, что вы сказали, уже сделано
что будет после входа в систему? Я имею в виду, не должна ли отображаться домашняя страница или что-то в этом роде?
@MehrajMalik да. Показывает домашнюю страницу. Однако, если пользователь вошел в систему и получает доступ к /login
, он может увидеть страницу входа. Если я перенаправлю на /home
, они застрянут в бесконечном цикле
затем при входе в систему сначала проверьте, входит ли пользователь уже в систему или нет. Если да, то не входите в систему и просто перенаправляйте на / home.
Пользователь не должен видеть страницу входа в систему, в которую он уже вошел.
@MehrajMalik, как мне это сделать?
@MehrajMalik Я добавил код контроллера. Это настраиваемая страница.
Возможный дубликат Spring MVC - проверка, вошел ли пользователь уже через Spring Security?
при успешном входе в систему перенаправьте запрос на
/home
.