h1. Classy CAS Single sign-on server based on the "CAS protocol":http://www.jasig.org/cas/protocol and implemented in Sinatra. * Single sign-on server * "CAS protocol":http://www.jasig.org/cas/protocol compliant * Implemented with "Sinatra":http://www.sinatrarb.com/ * Uses "Redis":http://code.google.com/p/redis/ * Pairs great with "OmniAuth":https://github.com/intridea/omniauth "CAS client":https://github.com/intridea/omniauth/tree/master/oa-enterprise * Supports any "CAS protocol":http://www.jasig.org/cas/protocol compliant client from any language, framework, or platform (PHP, .NET, Java) On the client side, ClassyCAS pairs up nicely with "OmniAuth":https://github.com/intridea/omniauth and it's "CAS client implementation":https://github.com/intridea/omniauth/tree/master/oa-enterprise . However clients are not only limited to either RubyonRails or Sinatra apps, because the server is built on the "CAS protocol":http://www.jasig.org/cas/protocol any compliant client in any language or framework which adheres to the protocol is supported, thus ClassyCAS is also well to suited to environments where Single sign-on is desired but where the ecosystem of applications is heterogeneous in terms of platforms. h2. Demo on Heroku * "Site 1 Protected Content":http://casclientone.heroku.com/ * "Site 2 Protected Content":http://casclienttwo.heroku.com/ * "ClassyCAS Server":http://classycas.heroku.com/ Username is "test", password is "password". h2. Quick Start Demo
curl -O http://redis.googlecode.com/files/redis-2.0.4.tar.gz
tar xvzf redis-2.0.4.tar.gz
cd redis-2.0.4
make
sudo cp redis-server redis-cli redis-benchmark /usr/local/bin
git clone git@github.com:Econify/classy_cas_client_example.git first_client
cd first_client
bundle install
git clone git@github.com:Econify/classy_cas_client_example.git second_client
cd second_client
bundle install
development:
#first or second
site_name: second
other_site_url: http://0.0.0.0:3000
git clone git://github.com/Econify/ClassyCAS.git
bundle install
redis-server
ruby script/server
ruby script/server -p 3001
shotgun config.ru
http://127.0.0.1:9393/login?service=http://0.0.0.0:3000/auth/cas/callback
This url is for the "client demo app example":https://github.com/Econify/classy_cas_client_example.git, it could very be the href for a login link tag. A Callback url is the service parameter in this case http://0.0.0.0:3000/auth/cas/callback, this callback url can be anything you want simply by change the service parameter on the initial call to ClassyCAS.
h2. What's There
* "Sinatra":http://www.sinatrarb.com/ based. Classy.
* Uses "Redis":http://code.google.com/p/redis/ to store tickets. Fast!
* Lots of tests. The whole protocol isn't there yet, but "this test":http://github.com/AndrewO/ClassyCAS/blob/master/test/protocol/cas_server_test.rb is a good start on an executable spec for CAS 1.0/2.0.
h2. What's Missing
* Proxy authentication.
h2. Resources
* "ClassyCAS client example app":https://github.com/Econify/classy_cas_client_example
* "CAS":http://www.jasig.org/cas
* "Sinatra":http://www.sinatrarb.com/
* "Redis":http://code.google.com/p/redis/
* "OmniAuth":https://github.com/intridea/omniauth
* "OmniAuth CAS":https://github.com/intridea/omniauth/tree/master/oa-enterprise