zoukankan      html  css  js  c++  java
  • Spring Security学习笔记(三)

    之前提到过认证后怎么存放用户信息,令牌token是一种方式,session是另一种方式,这里介绍使用spring session data redis存储httpSession

    添加了以上依赖后,我们可以创建Spring Boot 配置。Spring Boot 已经做好了大部分的配置工作,我们只需要做如下配置:

    spring.session.store-type=redis # Session store type.

    Spring Boot 会自动添加一个@EnableRedisHttpSessionannotation,从而创建了一个springSessionRepositoryFilter。该filter做的事就是将HttpSession转为Spring Session。这里Spring Session 持久化到redis中。

    Spring Boot会自动创建一个RedisConnnectionFactory将Spring Session 连接到本地端口6379的Redis Server。在产品环境,你需要确保连接到产品环境的redis server。那么,可以做如下配置:

    spring.redis.host=localhost # Redis server host.
    spring.redis.password= # Login password of the redis server.
    spring.redis.port=6379 # Redis server port.

    更多的配置可以参考:https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/htmlsingle/#boot-features-session

    我们没有使用tomcat的HttpSession,而是将session持久化到redis。当Spring Security的SecurityContextPersistenceFilter将SecurityContext保存到HttpSession时,spring session将该值保存到Redis。

    例如你请求login api,登陆成功之后,可以使用redis-cli查看redis中保存到session值:
    登陆前

    登陆后

    当一个新的HttpSession创建了,Spring Session 创建一个名为SESSION的cookie存在浏览器,该值是session_id。
    你可以移除session,然后再请求权限保护的api,会返回403。
    del spring:session:sessions:7e75811b-8711-4202-ba85-1a0a8142362a

    代码repo: https://github.com/Rying/twitter-clone.git

    branch:

  • 相关阅读:
    poj3635(最短路)
    poj 3041( 最大匹配)
    poj 3522(生成树)
    poj 1904(强连通分量)
    poj 2446(二分匹配)
    poj 2400(最小权匹配)
    poj 2175(费用流消圈)
    poj 1256(搜索)
    poj 2195(最小费用流)
    poj 3613(最短路)
  • 原文地址:https://www.cnblogs.com/holiday2000/p/9698214.html
Copyright © 2011-2022 走看看