spring-session为啥使用阿里云redis不能获取到session

小99 发布于 2017/06/23 10:15
阅读 414
收藏 0

是用spring session配合redis完成了session共享的配置,本地环境和测试环境都是用的自己搭的redis,共享没问题,本地用的ip,测试环境用的域名。

但是上了生产环境,使用了阿里云的云redis,就获取不到session了,我用redis客户端查看,spring:session是确实存进入了的。

 

各位大神帮看看是不是我有哪个地方没有想到导致的啊?

spring-session.xml   主配置文件会引入

<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
       default-autowire="byName">


    <util:constant static-field="org.springframework.session.data.redis.config.ConfigureRedisAction.NO_OP"/>
    <!-- 将session放入redis -->
    <context:annotation-config/>
    <bean id="redisHttpSessionConfiguration"
          class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <property name="maxInactiveIntervalInSeconds" value="1200"/>
        <property name="cookieSerializer" ref="defaultCookieSerializer"/>
    </bean>
    <bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg index="0" ref="poolConfig"></constructor-arg>
    </bean>

    <!-- 设置Cookie domain 和 名称 -->
    <bean id="defaultCookieSerializer" class="org.springframework.session.web.http.DefaultCookieSerializer">
        <property name="domainName" value=".xx.com"/>  此处xx是我的域名
        <property name="cookiePath" value="/"/>
        <!--<property name="domainNamePattern" value="^.+?\\.(\\w+\\.[a-z]+)$"/>-->
    </bean>
</beans>

web.xml

这个放到了CharacterEncodingFilter下面,所有filter的上面

	<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>

 

pom.xml

    <dependency>
	    <groupId>org.springframework.data</groupId>
	    <artifactId>spring-data-redis</artifactId>
	    <version>1.7.2.RELEASE</version>
	</dependency>
    <dependency>
	    <groupId>redis.clients</groupId>
	    <artifactId>jedis</artifactId>
	    <version>2.8.0</version>
	</dependency>

 

redis的配置文件就不贴了,那个应该没问题

 

 

加载中
0
狂野的镖客
狂野的镖客

你确定一下线上环境的 redis 版本和你 client 端的是否兼容。

小99
小99
好,我确认一下,非常感谢
返回顶部
顶部