Весенняя сессия jdb c - Как добавить несколько HttpSessionIdResolver для одного приложения - PullRequest
0 голосов
/ 31 марта 2020

У меня проблема с введением нескольких HttpSessionIdResolver для одного приложения Spring.

Для обычного веб-приложения я хотел бы использовать CookieHttpSessionIdResolver
Для API отдыха я бы go для URL-адреса HeaderHttpSessionIdResolver и Rest API будет выглядеть как "/ api / **"

Внутренне Spring устанавливает bean-компонент и использует этот bean-компонент для всех запросов (в этом случае HeaderHttpSessionIdResolver и мой веб-сайт перестали работать, потому что я не устанавливал заголовок X-Auth-Token для каждого запроса), но я хотел бы переопределить его.
Может ли кто-нибудь запросить помоги мне.

Спасибо.

@EnableJdbcHttpSession(maxInactiveIntervalInSeconds = 3600)
public class SessionConfig extends AbstractHttpSessionApplicationInitializer{

@Autowired
@Qualifier("userDatabase")
private DataSource dataSource;

@Bean
public DataSource dataSource() {
    return dataSource;
}

@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

@Bean(value = "httpSessionIdResolver")
public HttpSessionIdResolver httpSessionIdResolver() {
    return HeaderHttpSessionIdResolver.xAuthToken(); 
}

@Bean(value = "cookieHttpSessionIdResolver")
public HttpSessionIdResolver cookieHttpSessionIdResolver() {
    return new CookieHttpSessionIdResolver();
}
}

1 Ответ

0 голосов
/ 01 апреля 2020

Я переопределил весеннюю сессию, чтобы включить как приготовление ie, так и сессию на основе заголовка. Теперь он работает нормально.

В настоящее время я проверяю URL, который содержит / api / *, и если он содержит, я использую другой основанный на заголовке сеанс мудрого повара ie.

...