Skip to content
This repository has been archived by the owner on Oct 23, 2019. It is now read-only.
/ lorica Public archive

[Archived. Carleton University Library will be using Alma/Primo starting December 2019.] Authenticating proxy for the Summon API.

License

Notifications You must be signed in to change notification settings

cu-library/lorica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lorica

Build Status Go Report Card

An authenticating proxy for the Summon API.

The Summon API has two problems which make it difficult to use with client-side javascript applications:

  • It does not support CORS.
  • It requires authentication.

Similar to work done by Jonathan Rochkind and others, this proxy addresses those issues.

  • It supports CORS requests, including properly handling preflight OPTIONS requests.
  • It authorizes requests to the API on behalf of the client.

Requests to Lorica will be authorized and sent to the Summon API. For example, if Lorica is running on localhost at port 8877, accessing:

http://localhost:8877/2.0.0/search/ping

will return the response from

http://api.summon.serialssolutions.com/2.0.0/search/ping

By default, Lorica runs with a rate limiter, to disuade malicious users from scraping the Summon API using the provided credentials.

Lorica is designed with http://12factor.net/ in mind.

Lorica: An authenticating proxy for the Summon API

  -accessid string
        Access ID
  -address string
        Address for the server to bind on. (default ":8877")
  -allowedorigins string
        A list of allowed origins for CORS, delimited by the ; character. To allow any origin to connect, use *.
  -checkproxyheaders
        Have the rate limiter use the IP address from the X-Forwarded-For and X-Real-IP header first. You may need this if you are running Lorica behind a proxy.
  -loglevel string
        The maximum log level which will be logged. error < warn < info < debug < trace. For example, trace will log everything, info will log info, warn, and error. (default "warn")
  -maxrequests int
        The maximum number of requests accepted from one client per one second interval. (default 1)
  -ratelimit
        Enable and disable rate limiting. (default true)
  -secretkey string
        Secret Key
  -summonapi string
        Summon API URL. (default "http://api.summon.serialssolutions.com")
  -timeout int
        The number of seconds to wait for a response from Summon. (default 10)
  The possible environment variables:
  LORICA_ACCESSID
  LORICA_ADDRESS
  LORICA_ALLOWEDORIGINS
  LORICA_CHECKPROXYHEADERS
  LORICA_LOGLEVEL
  LORICA_MAXREQUESTS
  LORICA_RATELIMIT
  LORICA_SECRETKEY
  LORICA_SUMMONAPI
  LORICA_TIMEOUT

About

[Archived. Carleton University Library will be using Alma/Primo starting December 2019.] Authenticating proxy for the Summon API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages