Spring+redis+shiroセッション共有を実現
環境:
Springバージョン4.3.5.RELEASE
redisバージョンRedis-x 64-3.2.1100、redis-windowバージョンのインストールについては、WindowsインストールRedisを参照してください.
コード:
redisプロパティファイル:
Spring-redisプロファイル:
web.xml、spring session共有フィルタを追加する必要があります:
質問1、ドメイン名のピットについて
1、ポータルサイトでhttp://127.0.0.1...バックグラウンドシステムを訪問した時、意外にもsessionを獲得できないことを発見して、長い間探してやっともとのバックグラウンドがジャンプする時書いたのがhttp://localhost...道理によってhttp://localhost127.0.0.1ですか、でもだめです.127.0.0.1を使うなら、もう一つも127.0.0.1でなければなりません.localhostであれば、反対側でsessionは取得できません.2つのプロジェクトのドメイン名は一致しなければならないが、後で資料を調べてネット上でトップドメイン名は一致しなければならないと言った.のこれでこの穴は埋めました...
2,私达はsessionの実体クラスを保存して必ずシーケンス化しなければならなくて、Serializableインタフェースを実现するだけでOKで、へへへ、ここまで私はOKだと思って、意外にもまた1つの间违いに出会って、私の両侧のプログラムの実体クラスのシーケンス番号が一致しないことを提示します...シーケンス番号にprivate static final long serialVersionUID=6347820138758523572 Lを付けることもできます.これでこの穴も埋めました...
3、他のツールでセッションを管理していなければ、上の2時にできていればいいです.しかし私のバックグラウンドシステムはshiroを使ってユーザーの権限を管理して、このようにバックグラウンドシステムはshiroがsessionを管理することを使って、ポータルシステムはshiroのjarがなくて逆シーケンス化の失敗の誤りが現れます....解決策は、ポータルにshiro-webのjarパッケージを付けることでOKです.
Springバージョン4.3.5.RELEASE
redisバージョンRedis-x 64-3.2.1100、redis-windowバージョンのインストールについては、WindowsインストールRedisを参照してください.
コード:
redisプロパティファイル:
redis_hostname=localhost
redis_port=6379
redis_pwd= ...
Spring-redisプロファイル:
spring.xmlはspring-redisを導入する必要がある.xmlとプロパティファイル、spring-redisを別の方法でロードします.xml無視:
classpath:config/jdbc.properties
classpath:config/redis.properties
web.xml、spring session共有フィルタを追加する必要があります:
springSessionRepositoryFilter
org.springframework.web.filter.DelegatingFilterProxy
springSessionRepositoryFilter
/*
の2つのプロジェクトの上の配置はすべて同じで、ここまで基本的に终わって、共有したいsessionの名前が一致することを覚えていればいいだけで、しかしまだいくつかの穴が待っています....質問1、ドメイン名のピットについて
1、ポータルサイトでhttp://127.0.0.1...バックグラウンドシステムを訪問した時、意外にもsessionを獲得できないことを発見して、長い間探してやっともとのバックグラウンドがジャンプする時書いたのがhttp://localhost...道理によってhttp://localhost127.0.0.1ですか、でもだめです.127.0.0.1を使うなら、もう一つも127.0.0.1でなければなりません.localhostであれば、反対側でsessionは取得できません.2つのプロジェクトのドメイン名は一致しなければならないが、後で資料を調べてネット上でトップドメイン名は一致しなければならないと言った.のこれでこの穴は埋めました...
2,私达はsessionの実体クラスを保存して必ずシーケンス化しなければならなくて、Serializableインタフェースを実现するだけでOKで、へへへ、ここまで私はOKだと思って、意外にもまた1つの间违いに出会って、私の両侧のプログラムの実体クラスのシーケンス番号が一致しないことを提示します...シーケンス番号にprivate static final long serialVersionUID=6347820138758523572 Lを付けることもできます.これでこの穴も埋めました...
3、他のツールでセッションを管理していなければ、上の2時にできていればいいです.しかし私のバックグラウンドシステムはshiroを使ってユーザーの権限を管理して、このようにバックグラウンドシステムはshiroがsessionを管理することを使って、ポータルシステムはshiroのjarがなくて逆シーケンス化の失敗の誤りが現れます....解決策は、ポータルにshiro-webのjarパッケージを付けることでOKです.