Я новичок в весенней сессии и весенней безопасности.Я занимаюсь разработкой приложения для электронной коммерции.Мое приложение не будет входить в систему как пользователь. Поэтому, когда пользователь попадает в мое приложение, мне нужно создать сеанс для этого пользователя и всякий раз, когда пользователь добавляет товар в корзину, которую он должен сохранить в сеансе. На кассе я буду хранить эти элементы корзины вбазы данных. Я мог бы получить эту функциональность сервлетами, использующими HTTPsession, но, насколько я знаю, использование httpsession не является хорошей практикой. Так что я планирую реализовать это в весенней сессии и в весенней безопасности. Мой вопрос заключается в том, что у меня нет аутентифицированного пользователя, поэтому возможно ли это?для весенней безопасности, чтобы создать сеанс для анонимного пользователя. Я использую HeaderHttpSessionStrategy
Например, я вызываю «localhost: 8080 / token» из моего приложения, которое создает идентификатор сеанса и отправляет на мой client.i хранит ответидентификатор сеанса в моем локальном хранилище и планирование отправки этого идентификатора сеанса в виде X-Auth-токена моим заголовкам из следующего запроса. Если я делаю так, в моей конфигурации безопасности не настроена аутентификация, поскольку я не вошел в систему пользователя. Пока внедряю мою машинуМне нужно получить этот заголовок запроса и сохранить его в сеансе, чтобы сеанс сохранялся, а корзина сохранялась и извлекалась из сеанса.Будет ли это создавать мне новую сессию для каждого нового пользователя?. Или, если я не вошел в систему пользователя, это нормально для реализации HttpSession с использованием сервлета ?.Пожалуйста, дайте мне знать с этим кодом, хранится ли мой сеанс в базе данных redis или нет? Пожалуйста, предложите мне способ или пример для эффективной реализации моих функций.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private Environment env;
private static final String[] PUBLIC_MATCHERS = { "/css/**", "/js/**", "/image/**", "/book/**", "/user/**", "/**" };
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable().cors().disable().httpBasic().and().authorizeRequests().antMatchers(PUBLIC_MATCHERS)
.permitAll().anyRequest().anonymous();
}
@Bean
public HttpSessionStrategy httpSessionStrategy() {
return new HeaderHttpSessionStrategy();
}
}
HttpSessionConfig.java
@EnableRedisHttpSession
public class HttpSessionConfig {
@Bean
public LettuceConnectionFactory connectionFactory() {
return new LettuceConnectionFactory();
}
}