2014-08-27 2 views
0

Мой одностраничный веб-приложение использует якоря для представления состояния в адресной строке браузера, например:Spring JavaConfig форма Войти с якорями

http://localhost:8080/webapp/index.html#/item/123 

Это делает это состояние закладки-состоянии. Но пользователи, которые не прошедшие проверку, будут перенаправлены на форму входа Spring Security, а затем проверку подлинности, а затем перенаправляется на исходную страницу следующим образом:

http://localhost:8080/webapp/index.html 

Это не то, что я хочу, как он только что потерял #anchor, и таким образом, закладка.

Я не смог найти решение и не думаю, что полностью понимаю внутреннюю работу Spring Security, которая способствует этому нежелательному поведению.

Я думаю, что следующее суть моей конфигурации безопасности:

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http.csrf().disable() 
    .authorizeRequests() 
     .antMatchers(UNSECURED_RESOURCES).anonymous() 
     .anyRequest().hasRole(KnownRole.USER.name()) 

    .and().formLogin() 
     .loginPage("/backend/authentication/login.htm") 
     .defaultSuccessUrl("/frontend/app/index.html") 
     .permitAll() 

    .and().logout() 
     .logoutUrl("/logout") 
     .logoutSuccessHandler(logoutSuccessHandler()).permitAll() 

    .and().httpBasic() 

    .and().addFilter(concurrentSessionFilter()) 
     .addFilter(usernamePasswordAuthenticationFilter()) 
     .sessionManagement().sessionAuthenticationStrategy(sessionAuthenticationStrategy()); 

Spring 4.0.4.RELEASE, Spring Security 3.2.3-RELEASE.

Ваша помощь очень ценится.

ответ

0

Я решил реализовать это, используя following example code. Мне потребовалось некоторое время, чтобы понять, что якоря, по-видимому, связаны с клиентами. Я видел это решение, прежде чем задал этот вопрос здесь, но в то время, когда я не хотел покупать его, нужно было иметь дело с клиентской стороной, с некоторым Javascript. Решение работает хорошо, почти дословно, как показано на приведенной выше ссылке (хотя я немного переписал ее по собственному желанию).

Смежные вопросы