Module io.jooby.jwt
Package io.jooby.jwt

Class JwtSessionStore

java.lang.Object
io.jooby.jwt.JwtSessionStore
All Implemented Interfaces:
io.jooby.SessionStore

public class JwtSessionStore extends Object implements io.jooby.SessionStore
A HTTP cookie session store using JSON Web Token. Usage:

 {
   String key = "256 bit key"
   setSessionStore(new JwtSession(key));
 }
 
It uses HMAC-SHA-256 for signing the cookie. Secret key and cookie option can be specify programmatically or in your application configuration file.

This session store delegates to SessionStore.signed(SessionToken, Function, Function) using JSON Web Token library.

Since:
2.2.0
Author:
edgar
  • Nested Class Summary

    Nested classes/interfaces inherited from interface io.jooby.SessionStore

    io.jooby.SessionStore.InMemory
  • Field Summary

    Fields inherited from interface io.jooby.SessionStore

    DEFAULT_TIMEOUT, UNSUPPORTED
  • Constructor Summary

    Constructors
    Constructor
    Description
    JwtSessionStore(io.jooby.SessionToken token, String key)
    Creates a JSON Web Token session store.
    JwtSessionStore(io.jooby.SessionToken token, SecretKey key)
    Creates a JSON Web Token session store.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    deleteSession(io.jooby.Context ctx, io.jooby.Session session)
     
    @Nullable io.jooby.Session
    findSession(io.jooby.Context ctx)
     
    io.jooby.Session
    newSession(io.jooby.Context ctx)
     
    void
    renewSessionId(io.jooby.Context ctx, io.jooby.Session session)
     
    void
    saveSession(io.jooby.Context ctx, io.jooby.Session session)
     
    void
    touchSession(io.jooby.Context ctx, io.jooby.Session session)
     

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JwtSessionStore

      public JwtSessionStore(io.jooby.SessionToken token, String key)
      Creates a JSON Web Token session store. Session token is usually a SessionToken.signedCookie(Cookie), SessionToken.header(String) or combination of both.
      Parameters:
      token - Session token.
      key - Secret key.
    • JwtSessionStore

      public JwtSessionStore(io.jooby.SessionToken token, SecretKey key)
      Creates a JSON Web Token session store. Session token is usually a SessionToken.signedCookie(Cookie), SessionToken.header(String) or combination of both.
      Parameters:
      token - Session token.
      key - Secret key.
  • Method Details

    • newSession

      public io.jooby.Session newSession(io.jooby.Context ctx)
      Specified by:
      newSession in interface io.jooby.SessionStore
    • findSession

      public @Nullable io.jooby.Session findSession(io.jooby.Context ctx)
      Specified by:
      findSession in interface io.jooby.SessionStore
    • deleteSession

      public void deleteSession(io.jooby.Context ctx, io.jooby.Session session)
      Specified by:
      deleteSession in interface io.jooby.SessionStore
    • touchSession

      public void touchSession(io.jooby.Context ctx, io.jooby.Session session)
      Specified by:
      touchSession in interface io.jooby.SessionStore
    • saveSession

      public void saveSession(io.jooby.Context ctx, io.jooby.Session session)
      Specified by:
      saveSession in interface io.jooby.SessionStore
    • renewSessionId

      public void renewSessionId(io.jooby.Context ctx, io.jooby.Session session)
      Specified by:
      renewSessionId in interface io.jooby.SessionStore