GithubHelp home page GithubHelp logo

Middlewares' stack order about tg2 HOT 4 CLOSED

turbogears avatar turbogears commented on May 27, 2024
Middlewares' stack order

from tg2.

Comments (4)

amol- avatar amol- commented on May 27, 2024

environ contains the cache object before it gets pushed into the context. You will have to change the order of the middlewares by the way to make it available before the Auth.

#20 has never been tackled as since the introduction of the TGAuthMetadata it is actually pretty straightforward to use the get_user method to retrieve everything from a cache and store them in identtiy thus making the other two methods a noop

from tg2.

devilicecream avatar devilicecream commented on May 27, 2024

Yes, although I noticed that to change the order of the Auth and Cache middlewares is sort of painful, since the Cache middleware is attached with the add_core_middlewares method. Wouldn't be simpler to put an option in the app_cfg to allow changes in the middlewares' stack order?

Regarding #20, what you say works only with a stateful authentication. In case of a statless one, my usual approach is to validate the authentication data, making queries, in the Authenticator plugin.
Probably would be actually better to only actually make queries in the TGAuthMetadata.get_user() method as you say, but still that needs the cache manager to be created before the authentication middleware handles the request.

from tg2.

devilicecream avatar devilicecream commented on May 27, 2024

Also, the request environ is not actually passed to the TGAuthMetadata.get_user() method, meaning that, without a context, the only way I see to get the cache manager is to include the environ in the identity object.

from tg2.

amol- avatar amol- commented on May 27, 2024

As In TG2.3.5 most middleware have actually been moved to application wrappers this has been tackled in documentation in a way compatible with both current middleware stack and upcoming app wrappers: TurboGears/tg2docs@62140a3

from tg2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.