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