mirror of
https://github.com/Xevion/banner.git
synced 2025-12-06 01:14:22 -06:00
37 lines
1.7 KiB
Markdown
37 lines
1.7 KiB
Markdown
# Banner
|
|
|
|
All notes on the internal workings of the Banner system by Ellucian.
|
|
|
|
## Sessions
|
|
|
|
All notes on the internal workings of Sessions in the Banner system.
|
|
|
|
- Sessions are generated on demand with a random string of characters.
|
|
- The format `{5 random characters}{milliseconds since epoch}`
|
|
- Example: ``
|
|
- Sessions are invalidated after 30 minutes, but may change.
|
|
- This delay can be found in the original HTML returned, find `meta[name="maxInactiveInterval"]` and read the `content` attribute.
|
|
- This is read at runtime (in the browser, by javascript) on initialization.
|
|
- Multiple timers exist, one is for the Inactivity Timer.
|
|
- A dialog will appear asking the user to continue their session.
|
|
- If they click the button, the session will be extended via the keepAliveURL (see `meta[name="keepAliveURL"]`).
|
|
- The `keepAliveURL` does not seem to care whether the session is or was ever valid, it will always return a 200 OK with `I am Alive` as the content.
|
|
- When searching with an invalid session (or none at all, as the case may be), the server will return 200 OK, but with an empty result response structure.
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"totalCount": 0,
|
|
"data": null, // always an array, even if empty
|
|
"pageOffset": 0, //
|
|
"pageMaxSize": 10,
|
|
"sectionsFetchedCount": 0,
|
|
"pathMode": "registration", // normally "search"
|
|
"searchResultsConfigs": null, // normally an array
|
|
"ztcEncodedImage": null // normally a static string in base64
|
|
}
|
|
```
|
|
|
|
- This is only the handling for the search endpoint, more research is required to see how other endpoints handle invalid/expired sessions.
|
|
- TODO: How is `pathMode` affected by an expired session, rather than an invalid/non-existent one?
|