J'ai un problème avec la session de printemps pour permettre à plusieurs sessions dans un même navigateur. J'utilise MapSessionRepository pour stocker des sessions et CookieHttpSessionStrategy. Avec cette configuration, tout fonctionne bien.nul HttpSessionManager avec HeaderHttpSessionStrategy en session de printemps
On m'a demandé de changer CookieHttpSessionStrategy à HeaderHttpSessionStrategy. Maintenant, je reçois une exception NullPointerException lorsque j'essaie d'obtenir HttpSessionManager à partir de la requête.
C'est ma config précédente (I'ts travail):
@Configuration
@ComponentScan(basePackages = { "com.company.name" }, excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = { "com.company.name.web*" }))
@EnableScheduling
@EnableAspectJAutoProxy
@EnableCaching
@EnableSpringHttpSession
public class Config {
....
....
@Bean
public MapSessionRepository sessionRepository() {
return new MapSessionRepository();
}
@Bean
public HttpSessionStrategy httpSessionStrategy() {
return new CookieHttpSessionStrategy();
}
}
Ceci est mon nouvelle config:
@Configuration
@ComponentScan(basePackages = { "com.company.name" }, excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX, pattern = { "com.company.name.web*" }))
@EnableScheduling
@EnableAspectJAutoProxy
@EnableCaching
@EnableSpringHttpSession
public class Config {
....
....
@Bean
public MapSessionRepository sessionRepository() {
return new MapSessionRepository();
}
@Bean
public HttpSessionStrategy httpSessionStrategy() {
return new HeaderHttpSessionStrategy();
}
}
je reçois l'objet SessionManager avec:
//Se obtiene el manager de sesiones de spring session
HttpSessionManager sessionManager = (HttpSessionManager) httpRequest.getAttribute(HttpSessionManager.class.getName());
Lorsque j'utilise la stratégie d'en-tête, il n'y a pas org.springframework.session.web.http.HttpSe Attribut ssionManager sur demande. Est-ce que je fais quelque chose de mal? J'ai pensé que je pourrais changer ma stratégie en renvoyant simplement un objet HeaderHttpSessionStrategy ou en implémentant une nouvelle stratégie personnalisée.
Merci pour votre aide!
Pourquoi êtes-vous même le 'l'obtention HttpSessionManager' comme ça? Si vous en avez besoin injectent juste ... –