Difference between revisions of "EPrints4 Core Roadmap"
(Created page with '=EPrints4 Core Development= Trying to divide the work into smaller tasks (and questions where relevant). ==Request Handler / Page Controllers== This deals with how HTTP reques…') |
(→Request Handler / Page Controllers) |
||
Line 6: | Line 6: | ||
This deals with how HTTP requests are handled by EPrints: when a request is made by a client (curl, browser..) a number of headers/parameters must be processed (e.g. Accept, Content-Type, EPrints' cookies, auth etc). This is the entry point of any web requests to the system. The main module is EPrints::Apache::Handler (formerly known as Apache::Rewrite). | This deals with how HTTP requests are handled by EPrints: when a request is made by a client (curl, browser..) a number of headers/parameters must be processed (e.g. Accept, Content-Type, EPrints' cookies, auth etc). This is the entry point of any web requests to the system. The main module is EPrints::Apache::Handler (formerly known as Apache::Rewrite). | ||
+ | |||
+ | * Basic security aspects | ||
+ | ** detect invalid requests/URL paths (e.g. containing a dot '.') | ||
* Low-level filters for processing of: | * Low-level filters for processing of: | ||
Line 15: | Line 18: | ||
** Repository object init (with language selection, via cookie/default lang) | ** Repository object init (with language selection, via cookie/default lang) | ||
** Protocol (HTTP, HTTPS?) | ** Protocol (HTTP, HTTPS?) | ||
− | |||
− | |||
− | |||
* Low-level redirects or custom actions via Trigger | * Low-level redirects or custom actions via Trigger | ||
* Call for Controller(s) to handle the request (e.g. CRUD if /id/..., UI, storage (file delivery) etc.) | * Call for Controller(s) to handle the request (e.g. CRUD if /id/..., UI, storage (file delivery) etc.) | ||
+ | |||
+ | Filters must be called using Trigger(s) or similar mechanism to avoid having hard-coded modules in the Request handler. It is then easy to select, add, remove filters at run-time. |
Revision as of 14:45, 6 February 2014
EPrints4 Core Development
Trying to divide the work into smaller tasks (and questions where relevant).
Request Handler / Page Controllers
This deals with how HTTP requests are handled by EPrints: when a request is made by a client (curl, browser..) a number of headers/parameters must be processed (e.g. Accept, Content-Type, EPrints' cookies, auth etc). This is the entry point of any web requests to the system. The main module is EPrints::Apache::Handler (formerly known as Apache::Rewrite).
- Basic security aspects
- detect invalid requests/URL paths (e.g. containing a dot '.')
- Low-level filters for processing of:
- Cookies (eprints_session, eprints_lang)
- URL encoding
- specific HTTP headers: Accept, Content-Type, Content-Length, Content-Range, Content-MD5 (?), ETag (?)
- System initialisation:
- Repository object init (with language selection, via cookie/default lang)
- Protocol (HTTP, HTTPS?)
- Low-level redirects or custom actions via Trigger
- Call for Controller(s) to handle the request (e.g. CRUD if /id/..., UI, storage (file delivery) etc.)
Filters must be called using Trigger(s) or similar mechanism to avoid having hard-coded modules in the Request handler. It is then easy to select, add, remove filters at run-time.