Skip to content

Commit 6a40743

Browse files
committed
Some refactoring and enhancements
Some refactoring and enhancements Vital changes for Rails integration 1) Add validation tests (+ error class in order to pass) 2) Fixed login ticket lifetime bug (maximum_unused_login_ticket_lifetime was not used in login ticket validation) 3) Add remember_me functionality in the core 4) Change how service tickets are generated. Now each service tickets inherits from TicketGrantingTicket in a way to imitate activerecord's belongs_to/has_many. 5) Other minor improvements 6) Tested with rubycas-server-rails engine Fix exception for activerecord adapter Add rake to gemfile Remove duplicate gem Add rspec to gemfile method overloading in setup hash or file Update README.md Update to rspec 3.1, fix tests, add circleci wip Update to rspec 3.1, fix tests add more specific gem versions add ruby-version for circleci update ruby version in circle.yml remove .ruby-version file Update README.md Enhance adapter pattern Extract memory adapter to another gem Add basic adapter api update version relax rake and bundler dependencies Remove in_memory adapter wip add rubycas-server-memory as test dependency in bundler refactor module methods, fix tests move module-based tickets generation api to Generations module transform validations/generations to instance methods fix tests let instead of instance vars minor changes bump version Update README.md remove root dir method fix tests User masters gemfile
1 parent ea7e7a6 commit 6a40743

25 files changed

+513
-400
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
*.gem
22
*.rbc
3+
log
34
.bundle
45
.config
56
.yardoc
@@ -16,3 +17,4 @@ test/tmp
1617
test/version_tmp
1718
tmp
1819
*.DS_Store
20+
*.db

.ruby-gemset

Lines changed: 0 additions & 1 deletion
This file was deleted.

README.md

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,60 @@
11
rubycas-server-core
22
===================
3-
[![Build Status](https://travis-ci.org/rubycas/rubycas-server-core.png)](https://travis-ci.org/rubycas/rubycas-server-core)
4-
The core logic for handling CAS requests independent of any particular storage or web presentation technology.
3+
[![Circle CI](https://circleci.com/gh/vasilakisfil/rubycas-server-core.svg?style=svg)](https://circleci.com/gh/vasilakisfil/rubycas-server-core)
54

5+
The core logic for handling CAS requests independent of any particular storage or web presentation technology.
66

77
## Requirements
88

99
* ruby 2.1.x
1010

11+
## Adapters
12+
Currently available adapters are:
13+
* [rubycas-server-activerecord](https://github.com/kollegorna/rubycas-server-activerecord)
14+
* [rubycas-server-memory](https://github.com/vasilakisfil/rubycas-server-memory)
15+
16+
If you want to create a new adapter check these 2 adapters how they are implemented. Essentially you need to implement the following methods for each ticket:
17+
18+
```ruby
19+
20+
class XXXTicket
21+
def initialize(options = {})
22+
end
23+
24+
#deprecated
25+
def self.find_by_ticket(ticket)
26+
#returns the ticket based on the ticket id
27+
#it will be removed soon
28+
end
29+
30+
def self.find_by(opts = {})
31+
#returns the ticket based on the constraints in the hash (activerecord-style)
32+
end
33+
34+
def save!
35+
#saves the ticket in the storage
36+
#throws an exception in case of an error
37+
end
38+
39+
def save
40+
#saves the ticket in the storage
41+
end
42+
43+
def consumed?
44+
#returns true if ticket is already consumed
45+
end
46+
47+
def consume!
48+
#consumes the ticket
49+
end
50+
51+
def expired?(max_lifetime = 100)
52+
#checks if the ticket is already expired
53+
end
54+
55+
end
56+
```
57+
1158
## Contributing
1259

1360
1. Fork it

circle.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
machine:
2+
ruby:
3+
version: 2.1.2

lib/rubycas-server-core.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
require "logger"
22
require "r18n-core"
33
require "rubycas-server-core/version"
4+
require "rubycas-server-core/error"
45
require "rubycas-server-core/authenticator"
56
require "rubycas-server-core/settings"
67
require "rubycas-server-core/database"
78
require "rubycas-server-core/util"
8-
require "rubycas-server-core/tickets"
9+
require "rubycas-server-core/tickets/generations"
910
require "rubycas-server-core/tickets/validations"
11+
require "rubycas-server-core/tickets"
1012

1113
module RubyCAS
1214
module Server

lib/rubycas-server-core/adapters/in_memory.rb

Lines changed: 0 additions & 21 deletions
This file was deleted.

lib/rubycas-server-core/adapters/in_memory/login_ticket.rb

Lines changed: 0 additions & 45 deletions
This file was deleted.

lib/rubycas-server-core/adapters/in_memory/proxy_granting_ticket.rb

Lines changed: 0 additions & 38 deletions
This file was deleted.

lib/rubycas-server-core/adapters/in_memory/proxy_ticket.rb

Lines changed: 0 additions & 50 deletions
This file was deleted.

lib/rubycas-server-core/adapters/in_memory/service_ticket.rb

Lines changed: 0 additions & 56 deletions
This file was deleted.

0 commit comments

Comments
 (0)