Spring Security: отключить страницу входа, когда сеанс действителен - PullRequest
0 голосов
/ 06 мая 2019

Мне удалось успешно внедрить Spring Security в моем приложении, используя пользовательскую страницу входа. Однако я хочу, чтобы после успешного входа в систему, когда пользователь нажимал кнопку «Назад» в браузере по своему выбору, он не перенаправлял его обратно на страницу входа, а на домашнюю страницу.

Примечание: Функция выхода из системы работает нормально, что, когда пользователь успешно выходит из системы, он будет перенаправлен на страницу успешного выхода из системы. Но когда он нажмет кнопку «Назад», он будет перенаправлен не на предыдущую страницу, а на страницу входа.

Вот код, отвечающий за мою конфигурацию входа в систему:

   @Override
     protected void configure(HttpSecurity http) throws Exception {
       http
        .csrf().disable()
        .authorizeRequests().antMatchers("/login").permitAll()
        .anyRequest().authenticated()
        .and()
        .formLogin()
        .loginPage("/login").permitAll()
        .defaultSuccessUrl("/") //I tried adding this line hoping this could help, but to no avail...
        .and()
        .logout().invalidateHttpSession(true)
        .clearAuthentication(true)
        .logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
        .logoutSuccessUrl("/logout-success").permitAll();   
}

А это мой главный контроллер:

@Controller
public class MainController {

  @RequestMapping("/")
  public String home() {
    return "home.jsp"; 
  }

  @RequestMapping("/login")
  public String login() {
    return "login.jsp";
  }

  @RequestMapping("/logout-success")
  public String logout() {
    return "logout.jsp";
  }
}

1 Ответ

0 голосов
/ 06 мая 2019

По моему мнению, вы должны отключить кнопку назад браузера вместо того, чтобы вносить изменения в Spring Security. Spring security отлично работает здесь в соответствии с рекомендациями по безопасности. Вы можете разместить следующий код javascript в разделе заголовка страницы, чтобы отключить кнопку возврата.

<script type="text/javascript" >
   function preventBack(){window.history.forward();}
    setTimeout("preventBack()", 0);
    window.onunload=function(){null};
</script>

Ссылочный URL: https://www.aspsnippets.com/Articles/Disable-Browser-Back-Button-Functionality-using-JavaScript.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...