Чтобы дать некоторый контекст, я создаю PWA (Progressive Web App) для себя и некоторых друзей в качестве тестового проекта.Я использую базовую аутентификацию.
Поскольку это PWA, я хочу, чтобы он вел себя так же, как и другие приложения, что включает в себя отсутствие необходимости входить в систему каждые несколько дней, сохраняя пользователя вошедшим в систему. Отключение тайм-аута может быть не лучшим способом, поскольку это обеспечивает безопасность.риски, но сейчас это должно быть просто отлично.
Я уже пытался увеличить значение тайм-аута до высокого значения и использовать значение -1, как показано ниже.
server.servlet.session.timeout=9999999999
spring.session.timeout=9999999999
и
server.servlet.session.timeout=-1
spring.session.timeout=-1
Но оба не делаютработа.
Вот как я настроил свою безопасность:
protected void configure(final HttpSecurity http) throws Exception {
http
.headers().cacheControl().disable().and()
.authorizeRequests()
.antMatchers(HttpMethod.POST, "/api/user").permitAll()
.antMatchers("/api/*").authenticated()
.anyRequest().permitAll()
.and()
.cors()
.and()
.csrf()
.ignoringAntMatchers("/logout")
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.and()
.httpBasic()
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.clearAuthentication(true);
}
Как уже упоминалось, через несколько дней приложение все еще прекратит работу и выдаст мне ошибку 401 (даже если файлы cookie все еще существуют)), что означает, что пользователь должен снова войти в систему.
Кто-нибудь знает, как я могу сделать сеанс действительно длинным или неопределенным.И если это невозможно, какое другое решение я могу использовать для решения этой проблемы?