SpringSession が (クラスター) セッション共有の問題を解決するための 3 つの方法

1. 同一ドメイン名の同一プロジェクト(クラスタ環境)でセッション共有を実現

同じプロジェクトに複数の Tomcat をデプロイするとクラスターになります

Tomcat設定のポート番号は9100です。

Tomcat設定のポート番号は9200です。

applicationContext-session.xml はコア コードを構成します。

<!--spring session的配置类-->
<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        
</bean>

2. 同じドメイン名を持つ異なるプロジェクトのセッション共有を実現

Tomcat設定のポート番号は9100です。

Tomcat設定のポート番号は9200です。

applicationContext-session.xml はコア コードを構成します。Cookieを同じ / ルート ディレクトリに設定します。

<!--spring session的配置类-->
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <!--设置cookie的存放方式-->
        <property name="cookieSerializer" ref="defaultCookieSerializer"/>
    </bean>

    <!--设置cookie的存放方式具体实现-->
    <bean id="defaultCookieSerializer" class="org.springframework.session.web.http.DefaultCookieSerializer">
        <!--设置cookie的路径为 / 根路径:解决同域名不同项目的session共享问题-->
        <property name="cookiePath" value="/"/>
    </bean>

3. 同じルートドメイン名、異なる第 2 レベルのサブドメイン名でセッション共有を実現

Tomcat設定のポート番号は9100です。

Tomcat設定のポート番号は9200です。

applicationContext-session.xml はコア コードを構成します。同じ Cookie パス (同じプロジェクトは無視されます)、同じルート ドメイン名を設定します: web.com

<!--spring session的配置类-->
    <bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <!--设置cookie的存放方式-->
        <property name="cookieSerializer" ref="defaultCookieSerializer"/>
    </bean>

    <!--设置cookie的存放方式具体实现-->
    <bean id="defaultCookieSerializer" class="org.springframework.session.web.http.DefaultCookieSerializer">
        <!--设置cookie的路径为 / 根路径:解决同域名不同项目的session共享问题-->
        <property name="cookiePath" value="/"/>
        <!--同一个根域名,不同的二级子域名:
        解决session共享问题:第一步:设置同一个cookie的根路径
        第二步:设置同一个根域名,第三步:修改本地的hosts文件-->
        <property name="domainName" value="web.com"/>
    </bean>

ローカルホストファイルを変更する

最初のアクセスパス: http://www.web.com:9100/p2p/setSession 

2 番目のアクセス パス: http://beijing.web.com:9200/shop/getSession

概要: 同じセッションがパスとドメイン名に関連しているかどうかを区別する

おすすめ

転載: blog.csdn.net/DDDM456/article/details/124428047