Хранение корзины покупателя для гостя с использованием весенней сессии и весенней безопасности - PullRequest
0 голосов
/ 02 декабря 2018

Я новичок в весенней сессии и весенней безопасности.Я занимаюсь разработкой приложения для электронной коммерции.Мое приложение не будет входить в систему как пользователь. Поэтому, когда пользователь попадает в мое приложение, мне нужно создать сеанс для этого пользователя и всякий раз, когда пользователь добавляет товар в корзину, которую он должен сохранить в сеансе. На кассе я буду хранить эти элементы корзины вбазы данных. Я мог бы получить эту функциональность сервлетами, использующими 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();
    }

}
...