Мой одностраничный веб-приложение использует якоря для представления состояния в адресной строке браузера, например: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.
Ваша помощь очень ценится.