rails-session-0.1.2.0: Decrypt Ruby on Rails sessions in Haskell

Safe HaskellNone
LanguageHaskell2010

Web.Rails.Session

Contents

Synopsis

Decoding

decode :: Maybe Salt -> SecretKeyBase -> Cookie -> Maybe RubyObject Source #

Decode a cookie encrypted by Rails.

decodeEither :: Maybe Salt -> SecretKeyBase -> Cookie -> Either String RubyObject Source #

Decode a cookie encrypted by Rails and retain some error information on failure.

Decrypting

decrypt :: Maybe Salt -> SecretKeyBase -> Cookie -> Either String DecryptedData Source #

Decrypts a cookie encrypted by Rails. Use this if you are using a serialisation format other than Ruby's Marshal format.

Utilities

csrfToken :: RubyObject -> Maybe ByteString Source #

Helper function for looking up the csrf token in a cooie.

sessionId :: RubyObject -> Maybe ByteString Source #

Helper function for looking up the session id in a cookie.

lookupString :: ByteString -> RubyStringEncoding -> RubyObject -> Maybe ByteString Source #

Lookup string for a given key and throw away encoding information.

lookupFixnum :: ByteString -> RubyStringEncoding -> RubyObject -> Maybe Int Source #

Lookup integer for a given key.

Lifting weaker types into stronger types

data Cookie Source #

Wrapper around raw cookie.

mkCookie :: ByteString -> Cookie Source #

Lift a cookie into a richer type.

data Salt Source #

Wrapper around salt.

Instances

Eq Salt Source # 

Methods

(==) :: Salt -> Salt -> Bool #

(/=) :: Salt -> Salt -> Bool #

Ord Salt Source # 

Methods

compare :: Salt -> Salt -> Ordering #

(<) :: Salt -> Salt -> Bool #

(<=) :: Salt -> Salt -> Bool #

(>) :: Salt -> Salt -> Bool #

(>=) :: Salt -> Salt -> Bool #

max :: Salt -> Salt -> Salt #

min :: Salt -> Salt -> Salt #

Show Salt Source # 

Methods

showsPrec :: Int -> Salt -> ShowS #

show :: Salt -> String #

showList :: [Salt] -> ShowS #

mkSalt :: ByteString -> Salt Source #

Lift salt into a richer type.

mkSecretKeyBase :: ByteString -> SecretKeyBase Source #

Lifts secret into a richer type.