Comments (4)
@tubbo Thanks for the suggestion, I've updated the middleware check logic accordingly.
from redis-actionpack.
This seems due to the fact that ActionDispatch::Session::RedisStore
is actually a subclass of Rack::Session::Redis, not ActionDispatch::Session::AbstractStore.
This line right here should return true
because the middleware is indeed a session store which follows the entire API, but it's testing whether it's a direct subclass of the AbstractStore, which it is not, thus it fails.
The solution here is to extract the common functionality from Rack::Session::Redis
into modules, allowing both Rack::Session::Redis
and ActionDispatch::Session::AbstractStore
to share the same functionality. I'll make an issue on redis-store/redis-rack that accompanies this one.
from redis-actionpack.
from redis-actionpack.
Looking at Dalli's implementation of Rack::Session, I believe the problem has more to do with how RailsAdmin
is choosing to figure out which of the middleware is your session store. Instead of testing whether the middleware inherits from some base class, RailsAdmin
could be looking for a middleware with the class name "ActionDispatch::Session::#{camelized_session_store_name_from_rails_config}"
, and then it wouldn't matter what the inheritance chain of that middleware was. Additionally, there's nothing preventing two session stores from being in the Rails middleware chain, technically, so this fix doesn't actually solve for all edge cases.
I don't think there's anything to be done in redis-actionpack, and instead the issue should be raised as to how rails-admin is testing for session store middleware in the chain. Gonna close this unless you feel otherwise.
from redis-actionpack.
Related Issues (19)
- can't use domain: :all HOT 1
- 5.0.0 relies on prereleases HOT 2
- Fix deprecation warnings after Rails 5 upgrade
- Would you mind release `redis-actionpack` to rubygems.org HOT 4
- Use signed session id in cookies instead of plain text HOT 4
- Release to rubygems.org? :) HOT 2
- broken session key deletion in 5.2.0 HOT 5
- Support namespace option HOT 5
- Recursive Documentation for Rails HOT 3
- Incompatible with Redis 4.2.0 gem when expire_after is nil — "unknown keywords" HOT 3
- Ability to add the user_id to redis key when available HOT 2
- Session is not found on the next request when 'signed: true' HOT 1
- ActionController::InvalidAuthenticityToken in Rails 7 HOT 3
- New release for Rails 7 support HOT 2
- Add License information to Gemspec HOT 1
- Passing ssl_params in session_store not working HOT 1
- Rails5 HOT 1
- domain :all is not working. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from redis-actionpack.