This is a simple OAuth 2 provider that is designed to be used as a primary
authentication provider for a Clojure Ring app.

I am a relative Clojure novice, but have am very experienced in OAuth.
Please help give feedback on use of idiomatic clojure.

It currently handles OAuth2 bearer authentication and interactive
authentication.

By interactive authentication I mean, it can be used for primary end user
authentication by sticking a token in a session. This means that you could
eventually provide google/facebook like session overviews and log off
remote sessions.

The following bearer tokens are implemented:

* Authorization header
http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-08#section-2.1
* Form encoded body parameter
http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-08#section-2.2
* URI query field
http://tools.ietf.org/html/draft-ietf-oauth-v2-bearer-08#section-2.3
* Non standard http cookie ('access_token') for use in interactive
applications
* Non standard session ('access_token') for use in interactive applications

Authorization response types:

* Authorization Code Grant
http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.1
* Implicit Grant
http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.2

Currently the following Grant types are supported:

* Authorization Code Grant
http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.1
* Client Credential Grant
http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.4
* Resource Owner Password Credential Grant
http://tools.ietf.org/html/draft-ietf-oauth-v2-25#section-4.3

Currently it supports Redis and in memory for tokens, apps and users. There
is a very easy protocol to implement to add further stores. I will probably
add a separate one for korma and for datomic. These will be released as
separate projects.

For an interactive demo of it:

  lein run -m clauth.demo

I am working on a demo app that I will deploy on heroku.

P
-- 
http://agree2.com - Reach Agreement!
http://stakeventures.com - My blog about startups and agile banking

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to