【问题标题】:How to set session timeout in ktor?如何在 ktor 中设置会话超时?
【发布时间】:2020-01-03 14:40:03
【问题描述】:

如何设置超时,如果没有用户活动,会话过期? 我正在寻找类似码头的东西:

ServletContextHandler webappContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
... 
webappContext.getSessionHandler().setMaxInactiveInterval(timeout_in_sec);

【问题讨论】:

    标签: ktor


    【解决方案1】:

    您必须自己实现,这取决于您的存储管理器。如果你看最简单的一个

    https://github.com/ktorio/ktor/blob/master/ktor-server/ktor-server-core/jvm/src/io/ktor/sessions/SessionStorageMemory.kt

    会话存储在并发映射中

    private val sessions = ConcurrentHashMap<String, ByteArray>()
    

    相反,您想要一些会使会话过期的东西。例如,您可以使用番石榴缓存 https://github.com/google/guava/wiki/CachesExplained

    
    
    private val engineCache: Cache<String, ByteArray> = CacheBuilder.newBuilder()
                .maximumSize(50)
                .expireAfterAccess(30, TimeUnit.MINUTES)
                .build()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-28
      • 2014-11-22
      • 2010-11-15
      • 2016-01-29
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多