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
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    void
    deleteSession(io.jooby.Context ctx, io.jooby.Session session)
     
    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(@NonNull String key)
      Creates a JSON Web Token session store. It uses a cookie token: SessionToken.SID.
      Parameters:
      key - Secret key.
    • JwtSessionStore

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

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

    • newSession

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

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

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

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

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

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