rails-session 0.1.2.0 → 0.1.3.0
raw patch · 4 files changed
+14/−6 lines, 4 filesdep +hspecdep ~base16-bytestringnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: hspec
Dependency ranges changed: base16-bytestring
API changes (from Hackage documentation)
- Web.Rails3.Session: lookupUserIds :: (Num a) => RubyObject -> Maybe (NonEmpty a)
+ Web.Rails3.Session: lookupUserIds :: Num a => RubyObject -> Maybe (NonEmpty a)
Files
- CHANGELOG.md +5/−0
- rails-session.cabal +3/−2
- src/Web/Rails3/Session.hs +4/−3
- test/Spec.hs +2/−1
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.1.3.0++- Update to newer GHC version.+- Switch from TravisCI to GitHub Actions.+ ## 0.1.2.0 - Add Rails3 support.
rails-session.cabal view
@@ -1,5 +1,5 @@ name: rails-session-version: 0.1.2.0+version: 0.1.3.0 synopsis: Decrypt Ruby on Rails sessions in Haskell description: Please see README.md homepage: http://github.com/iconnect/rails-session#readme@@ -32,7 +32,7 @@ , string-conv >= 0.1 , vector >= 0.10.12.3 , bytestring- , base16-bytestring+ , base16-bytestring >= 1.0.1.0 , containers if impl(ghc < 8.0) build-depends: semigroups@@ -46,6 +46,7 @@ build-depends: base , bytestring , filepath+ , hspec , semigroups , rails-session , ruby-marshal
src/Web/Rails3/Session.hs view
@@ -94,9 +94,10 @@ >>= Marshal.decodeEither where extractChecksum :: Either String (Digest SHA1)- extractChecksum = maybeToEither- "[Rails3 Cookie] Illegal checksum in cookie. Wasn't able to extract a valid HMAC checksum out of it."- (Hash.digestFromByteString $ fst $ (B16.decode hexChecksum))+ extractChecksum = do+ decoded <- B16.decode hexChecksum+ maybeToEither "[Rails3 Cookie] Illegal checksum in cookie. Wasn't able to extract a valid HMAC checksum out of it."+ (Hash.digestFromByteString decoded) compareChecksum :: Digest SHA1 -> Either String ByteString compareChecksum checksum = if (computedChecksum == checksum) then (Right $ B64.decodeLenient b64) else (Left "[Rails3 Cookie] Checksum doesn't match")
test/Spec.hs view
@@ -9,7 +9,8 @@ import Data.Vector (fromList) import System.IO.Unsafe (unsafePerformIO) import Test.Tasty (defaultMain, testGroup)-import Test.Tasty.Hspec (describe, it, shouldBe, shouldSatisfy, testSpec, Spec)+import Test.Tasty.Hspec (testSpec)+import Test.Hspec (describe, it, shouldBe, shouldSatisfy, Spec) import Web.Rails.Session import qualified Web.Rails3.Session as R3 import qualified Data.List.NonEmpty as NE