Я использую весну с сессиями redis. Если я получаю доступ к сайту, я вижу, что сеансы добавляются в базу данных. Затем я запустил flushdb
в базе данных. Затем я пытаюсь получить доступ к сайту, и сеансы все еще живы (у меня одинаковый идентификатор сеанса.) Клавиши redis отличаются, но идентификаторы сеанса совпадают. Сохраняется ли сессия в другом месте, а не в redis? Ожидается ли это?Почему моя сессия все еще жива
Использование windows 64 bit redis 2.8.2400.
некоторые зависимости pom.
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.6.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
<!-- -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.3.RELEASE</version>
</dependency>
Relavent Фасоль
<beans:bean id="RedisHttpSessionConfiguration"
class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" />
<beans:bean
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:port="6379" />
некоторых web.xml
<listener>
<listener-class>com.mysite.listeners.sessionStarted</listener-class>
</listener>
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
функция управления для закрытия сессии
RequestMapping(value = "/closeSession", method = RequestMethod.GET)
public String closeSession(HttpSession session, HttpServletRequest request) {
logger.info("Closeing Session (greri002 for testing).");
session.invalidate();
//request.logout();
SecurityContextHolder.getContext().setAuthentication(null);
return "OK";
}
Вы используете пружинную защиту? какой сервер вы используете? – denov
imo - java config намного приятнее и xml config для весны. – denov