Я использовал пружинную загрузку, с защитой пружины и Ext Js в качестве внешнего интерфейсаЯ добавил этот кусок кода в качестве конфигурации для весенней безопасности.Это означает, что по истечении сеанса пользователь будет перенаправлен на указанный URL-адрес, верно?
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and()
.authorizeRequests().antMatchers("/", "/login/**").permitAll().and()
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.loginProcessingUrl("/userAuth")
.permitAll()
.and()
.logout()
.permitAll()
.and()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/**").permitAll();
http.csrf().disable();
http.headers().frameOptions().disable();
http.sessionManagement().maximumSessions(1).expiredUrl("/login?logout");
}
Каждый раз, когда мой веб-интерфейс отправляет ajax-запрос в spring, а пользователь потерял сеанс, spring поворачивает запросв запрос get / login? logout, как и следовало ожидать, но страница не перенаправляется.Все, что я вижу, - это страница входа в контент ответа на запрос, без какого-либо влияния на страницу, которую видит пользователь.
Почему это происходит?Я пропускаю здесь какую-либо конфигурацию или реализацию?
РЕДАКТИРОВАТЬ: Вот как выглядит мой Ext Js для запроса AJAX:
onAuthCheck: function (users) {
var result = Ext.Ajax.request({
url: '/Queue/requests/loginCheck',
method: 'POST',
async: false,
params: {
usersInfo: Ext.encode(users)
},
success: function (conn, response, options, eOpts) {
console.log(response)
console.log(conn.status);
if (conn.status === 401 || conn.status === 302) {
location.href='/login?logout';
}
},
failure: function (conn, response, options, eOpts) {
console.log(response)
console.log(conn.status)
if (conn.status === 401 || conn.status === 302) {
location.href='/login?logout';
}
}
})
return (Ext.JSON.decode(result.responseText, true).success);
},
EDIT2: Вот как выглядит мой запрос:У меня есть запрос со статусом 302, и я все еще получаю статус 200 в ответе AJAX на код JS.