rubycas-server 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.txt +1 -186
- data/History.txt +247 -0
- data/Manifest.txt +27 -2
- data/PostInstall.txt +3 -0
- data/Rakefile +4 -60
- data/bin/rubycas-server +2 -2
- data/bin/rubycas-server-ctl +0 -0
- data/casserver.db +0 -0
- data/casserver.log +792 -0
- data/casserver_db.log +88 -0
- data/config/hoe.rb +76 -0
- data/config/requirements.rb +15 -0
- data/config.example.yml +130 -6
- data/lib/casserver/authenticators/base.rb +20 -0
- data/lib/casserver/authenticators/client_certificate.rb +46 -0
- data/lib/casserver/authenticators/google.rb +54 -0
- data/lib/casserver/authenticators/ldap.rb +70 -40
- data/lib/casserver/authenticators/ntlm.rb +88 -0
- data/lib/casserver/authenticators/open_id.rb +22 -0
- data/lib/casserver/authenticators/sql.rb +66 -1
- data/lib/casserver/authenticators/sql_md5.rb +19 -0
- data/lib/casserver/authenticators/test.rb +5 -1
- data/lib/casserver/cas.rb +97 -22
- data/lib/casserver/controllers.rb +95 -34
- data/lib/casserver/environment.rb +16 -9
- data/lib/casserver/models.rb +38 -10
- data/lib/casserver/version.rb +1 -1
- data/lib/casserver/views.rb +38 -22
- data/lib/casserver.rb +13 -9
- data/lib/rubycas-server/version.rb +1 -0
- data/lib/rubycas-server.rb +1 -1
- data/lib/themes/notice.png +0 -0
- data/lib/themes/simple/logo.png +0 -0
- data/misc/basic_cas_single_signon_mechanism_diagram.png +0 -0
- data/misc/basic_cas_single_signon_mechanism_diagram.svg +652 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/script/txt2html +82 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/tasks/website.rake +17 -0
- data/website/index.html +40 -0
- data/website/index.txt +3 -0
- data/website/javascripts/rounded_corners_lite.inc.js +285 -0
- data/website/stylesheets/screen.css +138 -0
- data/website/template.html.erb +40 -0
- metadata +45 -33
- data/test/test_cas.rb +0 -33
- data/test/test_casserver.rb +0 -125
data/CHANGELOG.txt
CHANGED
@@ -1,186 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
* Much of the supporting functionality that makes RubyCAS-Server
|
4
|
-
act as a well-behaved Linux service has been abstracted out
|
5
|
-
into its own library. This new library is called Picnic and is
|
6
|
-
now a gem dependency for RubyCAS-Server. You can find out more about
|
7
|
-
it at http://code.google.com/p/camping-picnic/.
|
8
|
-
* The logout action will now accept a 'destination' parameter in lieu of
|
9
|
-
'service'. This means that if a 'destination' parameter is given with
|
10
|
-
some URL, the logout action will show the login form, allowing the user
|
11
|
-
to immedietly log back in to the service specified by 'destination'.
|
12
|
-
* The logout action will now accept a 'url' parameter. If given, the logout
|
13
|
-
page will show a message indicating that the CAS session has been terminated
|
14
|
-
and instructing the user to click on a link to follow the given URL. If the
|
15
|
-
'url' parameter is given, the login form will NOT be shown on the logout
|
16
|
-
page (see above).
|
17
|
-
* When an authentication failure occurs (because the user submitted
|
18
|
-
invalid credentials or the login ticket is missing), the server
|
19
|
-
now returns a 401 (Unauthorized) response instead of 200.
|
20
|
-
* An encryption-enabled version of the SQL authenticator is now
|
21
|
-
available. For more info have a look at:
|
22
|
-
http://code.google.com/p/rubycas-server/wiki/UsingTheSQLEncryptedAuthenticator
|
23
|
-
* Better compatibility with Oracle databases. The database migration
|
24
|
-
no longer tries to create tables with long names when long
|
25
|
-
table names are not supported by the underlying database connector
|
26
|
-
(issue #15).
|
27
|
-
* The server now automatically removes leading and trailing whitespace from
|
28
|
-
the username entered by users. Passwords however are left intact, with no
|
29
|
-
whitespace removed.
|
30
|
-
* The server can now be configured to automatically downcase the
|
31
|
-
username entered by users (dowcase_username option). So if a user
|
32
|
-
enters "JSmith", the system will convert it to "jsmith" if the
|
33
|
-
downcase_username option is set to true.
|
34
|
-
* The server can now be made to bind to a specific address. See the
|
35
|
-
:bind_address option in the config.example.yml file.
|
36
|
-
* Fixed bug with ActiveRecord 2.0.2 where service tickets were not
|
37
|
-
being given a type (issue #37).
|
38
|
-
|
39
|
-
=== 0.5.1 :: 2007-12-20
|
40
|
-
|
41
|
-
* Tickets generated by the server should now be a lot more secure.
|
42
|
-
The random string generator used for generating tickets now uses
|
43
|
-
Crypt::ISAAC. Tickets have also been extended in length; STs, PTs
|
44
|
-
and LTs can now extend up to 32 characters, and PGTs and PGT-IOUs
|
45
|
-
up to 64.
|
46
|
-
|
47
|
-
=== 0.5.0 :: 2007-09-20
|
48
|
-
|
49
|
-
* Gateway requests should now be handled correctly. When the request to the
|
50
|
-
login page is made with gateway=true as one of the parameters, the CAS
|
51
|
-
server will immediately redirect back to the target service along with
|
52
|
-
a service ticket if an SSO session exists for the user (or without a
|
53
|
-
service ticket if there is no pre-existing SSO session).
|
54
|
-
Note that if you are using RubyCAS-Client and want gatewaying, you will
|
55
|
-
need to upgrade it to 1.1.0 as gatewaying was broken in prior versions.
|
56
|
-
* If gateway=true is specified as part of the logout URI, the server will
|
57
|
-
log the user out and immediately redirect them back to the specified
|
58
|
-
service. In other words, you can now do "gatewayed logouts" as well
|
59
|
-
as logins.
|
60
|
-
* A login ticket can now be remotely requested from the server by placing
|
61
|
-
a POST request to '/loginTicket'.
|
62
|
-
* The login view can now be made to return only the login form. This is
|
63
|
-
done by adding the 'onlyLoginForm' parameter to the '/login' request.
|
64
|
-
Optionally, a 'submitToURI' parameter can be supplied to force the login
|
65
|
-
form to submit to the given URI (otherwise the server will try to figure
|
66
|
-
out the full URI to its own login controller). This functionality may be
|
67
|
-
useful when you want to embed the login form in some external page, as
|
68
|
-
an IFRAME otherwise.
|
69
|
-
* Custom views can now be used to override the default Markaby templates
|
70
|
-
by specifying a 'custom_views_file' option in the configuration. See
|
71
|
-
custom_views.example.rb. [jzylks]
|
72
|
-
* Table names have been shortened to work with Oracle. A migration has
|
73
|
-
been added that should do the shortening for you the first time you run
|
74
|
-
this new RubyCAS-Server version.
|
75
|
-
* Multiple authenticators can now be specified. During authentication,
|
76
|
-
credentials are presented to the first authenticator, then the second,
|
77
|
-
and so on, until the user is validated by any one authenticator or fails
|
78
|
-
validation for all of them. [jzylks]
|
79
|
-
* When using webrick, you can now run with SSL disabled by omitting the
|
80
|
-
ssl_cert and ssl_key parameters.
|
81
|
-
* Changed incorrect MySQL example database configuration -- option should
|
82
|
-
be 'host:' not 'server:' (issue #22).
|
83
|
-
|
84
|
-
=== 0.4.2 :: 2007-07-26
|
85
|
-
|
86
|
-
* The LDAP/AD authenticator has been largely re-written. The code is a bit
|
87
|
-
cleaner now, and should work better with non-Active Directory LDAP servers
|
88
|
-
(although this has yet to be tested since I don't have access to a non-AD
|
89
|
-
LDAP server).
|
90
|
-
* The validate() method in your authenticators now receives a :service element
|
91
|
-
(in addition to :username, and :password). This is simply the service
|
92
|
-
url (if any) specified in the user's CAS request. If you call
|
93
|
-
read_standard_credentials(credentials) at the top of your validator, the value
|
94
|
-
will also be available as @service along with @username and @password.
|
95
|
-
* By request, a :username_prefix option has been added to the ldap
|
96
|
-
configuration. If entered, this string will be automatically prefixed to
|
97
|
-
the username entered by the user.
|
98
|
-
* A bug having to do with handling authenticator errors has been fixed.
|
99
|
-
Any authenticator error messages should now be correctly shown on the
|
100
|
-
login page.
|
101
|
-
* Minor improvements to error messages having to do with login tickets.
|
102
|
-
They're a bit more prescriptive now, explaining to the user what steps
|
103
|
-
they should take to correct the error.
|
104
|
-
|
105
|
-
=== 0.4.1 :: 2007-06-07
|
106
|
-
|
107
|
-
* This release restores compatiblity with older versions of rubygems
|
108
|
-
(pre-0.9.0). To achieve this, we alias the 'gem' method to the old
|
109
|
-
'require_gem' if 'gem' is not already defined.
|
110
|
-
* rubycas-server-ctl will now quiety delete an orphaned .pid file
|
111
|
-
instead complaining loudly and refusing to start up.
|
112
|
-
* Fixed minor bug in rubycas-server-ctl that sometimes incorrectly reported
|
113
|
-
startup problems when in fact the server had started just fine.
|
114
|
-
|
115
|
-
|
116
|
-
=== 0.4.0 :: 2007-06-05
|
117
|
-
|
118
|
-
* Added rubycas-server-ctl script for controlling daemonized server.
|
119
|
-
* rubygems-0.9.0 or later is now required.
|
120
|
-
* Added system startup script to be used in /etc/init.d on Linux systems.
|
121
|
-
* Authenticator can now be loaded from an external file using the 'source'
|
122
|
-
configuration option.
|
123
|
-
* Better preemptive detection of startup problems with mongrel.
|
124
|
-
* User now sees an error message if the service URI is not a valid URI (i.e.
|
125
|
-
if it's not URI-encoded or otherwise malformed).
|
126
|
-
|
127
|
-
|
128
|
-
=== 0.3.0 :: 2007-03-29
|
129
|
-
|
130
|
-
* Fixed glaring security problem with LDAP/AD Authenticator where under some
|
131
|
-
circumstances blank passwords were accepted as valid.
|
132
|
-
* Autocomplete has been turned off on the password field for better security.
|
133
|
-
In the future we may allow autocomplete to be re-enabled using a
|
134
|
-
configuration setting.
|
135
|
-
* When the user visits the login page and is already authenticated (i.e. they
|
136
|
-
have a valid ticket granting cookie), a message is shown at the top
|
137
|
-
indicating that they are already logged in.
|
138
|
-
* sqlite3-ruby is no longer required by the gem as a dependency. The user
|
139
|
-
must now install it manually prior to installing rubycas-server. The
|
140
|
-
building of sqlite3 native extensions appears to be somewhat flakey
|
141
|
-
and probably defeats the original purpose of using it (which was
|
142
|
-
to have a CAS server up and running with no additional DB configuration).
|
143
|
-
We will use MySQL as the default database adapter instead, since it does
|
144
|
-
not require additional libraries and many users will have a MySQL server
|
145
|
-
already available.
|
146
|
-
* Fixed bug that was causing all proxy-granting tickets to be deleted whenever
|
147
|
-
any user logged out. Only the PGTs for the user that is logging out are now
|
148
|
-
being deleted.
|
149
|
-
* Trailing slashes in service URLs are now ignored when validating service
|
150
|
-
and proxy tickets (e.g. "http://www.google.com" and "http://www.google.com/"
|
151
|
-
are now considered to be the same service URL).
|
152
|
-
* Authenticators now raise AuthenticatorError exceptions when encountering
|
153
|
-
a problem/error. This makes it easier to send feedback to the user.
|
154
|
-
However, other exceptions should still be raised when errors ought
|
155
|
-
not be recoverable (i.e. programming errors).
|
156
|
-
* Fixed serious vulnerability in LDAP authenticator where under some
|
157
|
-
cirumstances the user could just enter '*' as their username to match
|
158
|
-
any username. The LDAP authenticator will now refuse to process logins
|
159
|
-
with usernames that contain the characters * ( ) \ / and the NULL
|
160
|
-
character \0.
|
161
|
-
* Views are no longer xhtml-validated. Markaby's auto-validation was turned
|
162
|
-
off to allow for use of the autocomplete property on inputs, since this is
|
163
|
-
the only viable way of turning off password storage in IE and Firefox at
|
164
|
-
the page level.
|
165
|
-
* You can now limit the maximum length of a login session by setting the
|
166
|
-
expire_sessions config setting to true.
|
167
|
-
* Fixed some minor bugs in the login view.
|
168
|
-
|
169
|
-
|
170
|
-
=== 0.2.0 :: 2007-03-20
|
171
|
-
|
172
|
-
* ruby-casserver now behaves more like a real command-line app, accepting
|
173
|
-
various command line arguments including -h (help), -v (version), -c (use
|
174
|
-
an alternate config.yml), and -d (daemonize, when using webrick or mongrel
|
175
|
-
mode).
|
176
|
-
* Special characters in CAS XML responses are now properly encoded into XML
|
177
|
-
entities
|
178
|
-
* CAS XML responses are no longer auto-indented... Markaby's indentation
|
179
|
-
seemed to be causing problems with the PHP CAS client.
|
180
|
-
* Misc minor bug fixes/cleanup.
|
181
|
-
|
182
|
-
|
183
|
-
=== 0.1.0 :: 2007-03-01
|
184
|
-
|
185
|
-
* First public release.
|
186
|
-
|
1
|
+
See History.txt
|
data/History.txt
ADDED
@@ -0,0 +1,247 @@
|
|
1
|
+
=== 0.7.0 :: 2008-11-04
|
2
|
+
|
3
|
+
* New functionality:
|
4
|
+
* Implemented single-sign-out functionality as specified in CAS 3.3. See
|
5
|
+
http://www.ja-sig.org/wiki/display/CASUM/Single+Sign+Out.
|
6
|
+
* It is now possible to configure Authenticators to return extra attributes
|
7
|
+
to CAS clients alongside the username. For an example of how to do this see
|
8
|
+
the included SQL authenticator. Also have a look at:
|
9
|
+
http://groups.google.com/group/rubycas-server/browse_thread/thread/5eade3793cb590e9
|
10
|
+
Note that extra attributes of type other than String or Numeric are serialized
|
11
|
+
into YAML format before being sent along to the client.
|
12
|
+
* Added an MD5-password version of the SQL authenticator for Drupal and any other
|
13
|
+
database that stores its passwords in hashed form (thanks malcolmm).
|
14
|
+
* Added new Google authenticator for authenticating against Google/GMail
|
15
|
+
accounts.
|
16
|
+
|
17
|
+
* Changes to existing functionality:
|
18
|
+
* Service URIs are now automatically normalized. For example, if the service
|
19
|
+
URI given to the server has a 'ticket' parameter, the ticket will now be
|
20
|
+
automatically stripped. This is to avert any possible issues raised by
|
21
|
+
misbehaving CAS clients (the CAS ticket should never be part of the service
|
22
|
+
URI). Same goes for other CAS-related parameters like 'service', 'renew',
|
23
|
+
and 'gateway'. Additionally, the trailing '/' and '?' characters are
|
24
|
+
automatically stripped from URLs, since, for example, "http://google.com/"
|
25
|
+
is almost certainly equivalent to "http://google.com".
|
26
|
+
* The expire_sessions config variable is now respected -- ticket granting
|
27
|
+
ticket cookies are set with an expiry datetime, so that the SSO session
|
28
|
+
is effectively terminated once the ticket_granting_ticket_expiry period
|
29
|
+
is reached.
|
30
|
+
* If present, the HTTP_X_FORWARDED_FOR header is used for recording the
|
31
|
+
client's address. This is useful when the server is running behind a reverse
|
32
|
+
proxy, but it should not be considered authoritative since it can be
|
33
|
+
easily spoofed.
|
34
|
+
* The 'service' field in the 'casserver_st' table has been changed from
|
35
|
+
VARCHAR(255) to TEXT in order to accomodate service URIs longer than 255
|
36
|
+
characters (fixes issue #46).
|
37
|
+
* The CAS XML responses are no longer whitespace-formatted (i.e. Markaby's
|
38
|
+
auto-indentation has been turned off). Apparently the whitespace was
|
39
|
+
causing problems with mod_auth_cas. See:
|
40
|
+
http://groups.google.com/group/rubycas-server/browse_thread/thread/e482fe09999b73d3
|
41
|
+
* When used without pre-authentication, the LDAP authenticator now tries to
|
42
|
+
bind by searching for the given username in the LDAP directory based on the
|
43
|
+
configured username_attribute. Prior to this change the authenticator
|
44
|
+
attempted to bind with the LDAP server by assuming that the username credential
|
45
|
+
matches the user's CN. This is no longer the case.
|
46
|
+
* CAS responses to invalid requests (for example where required parameters
|
47
|
+
are missing or incorrect) will now have HTTP status code 422. Internal server
|
48
|
+
errors (where the server rather than the client is at fault) have error 500.
|
49
|
+
Previously most responses had error code 200, regardless of their contents.
|
50
|
+
|
51
|
+
* Bug fixes
|
52
|
+
* Fixed logout action to work properly with ActiveRecord 2.1 (eager loading behaviour
|
53
|
+
was changed upstream forcing a change to the way we look for ProxyGrantingTickets
|
54
|
+
to delete on logout).
|
55
|
+
* When running under Mongrel, the USR2 signal should now restart the server as
|
56
|
+
expected -- however currently this only works when the server is running
|
57
|
+
in the foregaround. When daemonized, USR2 will shut down the server without
|
58
|
+
restarting (see issue #58).
|
59
|
+
* Fixed activerecord/activesupport gem load problems, hopefully once and for all
|
60
|
+
(however picnic-0.7.0 is now required).
|
61
|
+
|
62
|
+
=== 0.6.0 :: 2008-03-28
|
63
|
+
|
64
|
+
* Much of the supporting functionality that makes RubyCAS-Server
|
65
|
+
act as a well-behaved Linux service has been abstracted out
|
66
|
+
into its own library. This new library is called Picnic and is
|
67
|
+
now a gem dependency for RubyCAS-Server. You can find out more about
|
68
|
+
it at http://code.google.com/p/camping-picnic/.
|
69
|
+
* The logout action will now accept a 'destination' parameter in lieu of
|
70
|
+
'service'. This means that if a 'destination' parameter is given with
|
71
|
+
some URL, the logout action will show the login form, allowing the user
|
72
|
+
to immedietly log back in to the service specified by 'destination'.
|
73
|
+
* The logout action will now accept a 'url' parameter. If given, the logout
|
74
|
+
page will show a message indicating that the CAS session has been terminated
|
75
|
+
and instructing the user to click on a link to follow the given URL. If the
|
76
|
+
'url' parameter is given, the login form will NOT be shown on the logout
|
77
|
+
page (see above).
|
78
|
+
* When an authentication failure occurs (because the user submitted
|
79
|
+
invalid credentials or the login ticket is missing), the server
|
80
|
+
now returns a 401 (Unauthorized) response instead of 200.
|
81
|
+
* An encryption-enabled version of the SQL authenticator is now
|
82
|
+
available. For more info have a look at:
|
83
|
+
http://code.google.com/p/rubycas-server/wiki/UsingTheSQLEncryptedAuthenticator
|
84
|
+
* Better compatibility with Oracle databases. The database migration
|
85
|
+
no longer tries to create tables with long names when long
|
86
|
+
table names are not supported by the underlying database connector
|
87
|
+
(issue #15).
|
88
|
+
* The server now automatically removes leading and trailing whitespace from
|
89
|
+
the username entered by users. Passwords however are left intact, with no
|
90
|
+
whitespace removed.
|
91
|
+
* The server can now be configured to automatically downcase the
|
92
|
+
username entered by users (dowcase_username option). So if a user
|
93
|
+
enters "JSmith", the system will convert it to "jsmith" if the
|
94
|
+
downcase_username option is set to true.
|
95
|
+
* The server can now be made to bind to a specific address. See the
|
96
|
+
:bind_address option in the config.example.yml file.
|
97
|
+
* Fixed bug with ActiveRecord 2.0.2 where service tickets were not
|
98
|
+
being given a type (issue #37).
|
99
|
+
|
100
|
+
=== 0.5.1 :: 2007-12-20
|
101
|
+
|
102
|
+
* Tickets generated by the server should now be a lot more secure.
|
103
|
+
The random string generator used for generating tickets now uses
|
104
|
+
Crypt::ISAAC. Tickets have also been extended in length; STs, PTs
|
105
|
+
and LTs can now extend up to 32 characters, and PGTs and PGT-IOUs
|
106
|
+
up to 64.
|
107
|
+
|
108
|
+
=== 0.5.0 :: 2007-09-20
|
109
|
+
|
110
|
+
* Gateway requests should now be handled correctly. When the request to the
|
111
|
+
login page is made with gateway=true as one of the parameters, the CAS
|
112
|
+
server will immediately redirect back to the target service along with
|
113
|
+
a service ticket if an SSO session exists for the user (or without a
|
114
|
+
service ticket if there is no pre-existing SSO session).
|
115
|
+
Note that if you are using RubyCAS-Client and want gatewaying, you will
|
116
|
+
need to upgrade it to 1.1.0 as gatewaying was broken in prior versions.
|
117
|
+
* If gateway=true is specified as part of the logout URI, the server will
|
118
|
+
log the user out and immediately redirect them back to the specified
|
119
|
+
service. In other words, you can now do "gatewayed logouts" as well
|
120
|
+
as logins.
|
121
|
+
* A login ticket can now be remotely requested from the server by placing
|
122
|
+
a POST request to '/loginTicket'.
|
123
|
+
* The login view can now be made to return only the login form. This is
|
124
|
+
done by adding the 'onlyLoginForm' parameter to the '/login' request.
|
125
|
+
Optionally, a 'submitToURI' parameter can be supplied to force the login
|
126
|
+
form to submit to the given URI (otherwise the server will try to figure
|
127
|
+
out the full URI to its own login controller). This functionality may be
|
128
|
+
useful when you want to embed the login form in some external page, as
|
129
|
+
an IFRAME otherwise.
|
130
|
+
* Custom views can now be used to override the default Markaby templates
|
131
|
+
by specifying a 'custom_views_file' option in the configuration. See
|
132
|
+
custom_views.example.rb. [jzylks]
|
133
|
+
* Table names have been shortened to work with Oracle. A migration has
|
134
|
+
been added that should do the shortening for you the first time you run
|
135
|
+
this new RubyCAS-Server version.
|
136
|
+
* Multiple authenticators can now be specified. During authentication,
|
137
|
+
credentials are presented to the first authenticator, then the second,
|
138
|
+
and so on, until the user is validated by any one authenticator or fails
|
139
|
+
validation for all of them. [jzylks]
|
140
|
+
* When using webrick, you can now run with SSL disabled by omitting the
|
141
|
+
ssl_cert and ssl_key parameters.
|
142
|
+
* Changed incorrect MySQL example database configuration -- option should
|
143
|
+
be 'host:' not 'server:' (issue #22).
|
144
|
+
|
145
|
+
=== 0.4.2 :: 2007-07-26
|
146
|
+
|
147
|
+
* The LDAP/AD authenticator has been largely re-written. The code is a bit
|
148
|
+
cleaner now, and should work better with non-Active Directory LDAP servers
|
149
|
+
(although this has yet to be tested since I don't have access to a non-AD
|
150
|
+
LDAP server).
|
151
|
+
* The validate() method in your authenticators now receives a :service element
|
152
|
+
(in addition to :username, and :password). This is simply the service
|
153
|
+
url (if any) specified in the user's CAS request. If you call
|
154
|
+
read_standard_credentials(credentials) at the top of your validator, the value
|
155
|
+
will also be available as @service along with @username and @password.
|
156
|
+
* By request, a :username_prefix option has been added to the ldap
|
157
|
+
configuration. If entered, this string will be automatically prefixed to
|
158
|
+
the username entered by the user.
|
159
|
+
* A bug having to do with handling authenticator errors has been fixed.
|
160
|
+
Any authenticator error messages should now be correctly shown on the
|
161
|
+
login page.
|
162
|
+
* Minor improvements to error messages having to do with login tickets.
|
163
|
+
They're a bit more prescriptive now, explaining to the user what steps
|
164
|
+
they should take to correct the error.
|
165
|
+
|
166
|
+
=== 0.4.1 :: 2007-06-07
|
167
|
+
|
168
|
+
* This release restores compatiblity with older versions of rubygems
|
169
|
+
(pre-0.9.0). To achieve this, we alias the 'gem' method to the old
|
170
|
+
'require_gem' if 'gem' is not already defined.
|
171
|
+
* rubycas-server-ctl will now quiety delete an orphaned .pid file
|
172
|
+
instead complaining loudly and refusing to start up.
|
173
|
+
* Fixed minor bug in rubycas-server-ctl that sometimes incorrectly reported
|
174
|
+
startup problems when in fact the server had started just fine.
|
175
|
+
|
176
|
+
|
177
|
+
=== 0.4.0 :: 2007-06-05
|
178
|
+
|
179
|
+
* Added rubycas-server-ctl script for controlling daemonized server.
|
180
|
+
* rubygems-0.9.0 or later is now required.
|
181
|
+
* Added system startup script to be used in /etc/init.d on Linux systems.
|
182
|
+
* Authenticator can now be loaded from an external file using the 'source'
|
183
|
+
configuration option.
|
184
|
+
* Better preemptive detection of startup problems with mongrel.
|
185
|
+
* User now sees an error message if the service URI is not a valid URI (i.e.
|
186
|
+
if it's not URI-encoded or otherwise malformed).
|
187
|
+
|
188
|
+
|
189
|
+
=== 0.3.0 :: 2007-03-29
|
190
|
+
|
191
|
+
* Fixed glaring security problem with LDAP/AD Authenticator where under some
|
192
|
+
circumstances blank passwords were accepted as valid.
|
193
|
+
* Autocomplete has been turned off on the password field for better security.
|
194
|
+
In the future we may allow autocomplete to be re-enabled using a
|
195
|
+
configuration setting.
|
196
|
+
* When the user visits the login page and is already authenticated (i.e. they
|
197
|
+
have a valid ticket granting cookie), a message is shown at the top
|
198
|
+
indicating that they are already logged in.
|
199
|
+
* sqlite3-ruby is no longer required by the gem as a dependency. The user
|
200
|
+
must now install it manually prior to installing rubycas-server. The
|
201
|
+
building of sqlite3 native extensions appears to be somewhat flakey
|
202
|
+
and probably defeats the original purpose of using it (which was
|
203
|
+
to have a CAS server up and running with no additional DB configuration).
|
204
|
+
We will use MySQL as the default database adapter instead, since it does
|
205
|
+
not require additional libraries and many users will have a MySQL server
|
206
|
+
already available.
|
207
|
+
* Fixed bug that was causing all proxy-granting tickets to be deleted whenever
|
208
|
+
any user logged out. Only the PGTs for the user that is logging out are now
|
209
|
+
being deleted.
|
210
|
+
* Trailing slashes in service URLs are now ignored when validating service
|
211
|
+
and proxy tickets (e.g. "http://www.google.com" and "http://www.google.com/"
|
212
|
+
are now considered to be the same service URL).
|
213
|
+
* Authenticators now raise AuthenticatorError exceptions when encountering
|
214
|
+
a problem/error. This makes it easier to send feedback to the user.
|
215
|
+
However, other exceptions should still be raised when errors ought
|
216
|
+
not be recoverable (i.e. programming errors).
|
217
|
+
* Fixed serious vulnerability in LDAP authenticator where under some
|
218
|
+
cirumstances the user could just enter '*' as their username to match
|
219
|
+
any username. The LDAP authenticator will now refuse to process logins
|
220
|
+
with usernames that contain the characters * ( ) \ / and the NULL
|
221
|
+
character \0.
|
222
|
+
* Views are no longer xhtml-validated. Markaby's auto-validation was turned
|
223
|
+
off to allow for use of the autocomplete property on inputs, since this is
|
224
|
+
the only viable way of turning off password storage in IE and Firefox at
|
225
|
+
the page level.
|
226
|
+
* You can now limit the maximum length of a login session by setting the
|
227
|
+
expire_sessions config setting to true.
|
228
|
+
* Fixed some minor bugs in the login view.
|
229
|
+
|
230
|
+
|
231
|
+
=== 0.2.0 :: 2007-03-20
|
232
|
+
|
233
|
+
* ruby-casserver now behaves more like a real command-line app, accepting
|
234
|
+
various command line arguments including -h (help), -v (version), -c (use
|
235
|
+
an alternate config.yml), and -d (daemonize, when using webrick or mongrel
|
236
|
+
mode).
|
237
|
+
* Special characters in CAS XML responses are now properly encoded into XML
|
238
|
+
entities
|
239
|
+
* CAS XML responses are no longer auto-indented... Markaby's indentation
|
240
|
+
seemed to be causing problems with the PHP CAS client.
|
241
|
+
* Misc minor bug fixes/cleanup.
|
242
|
+
|
243
|
+
|
244
|
+
=== 0.1.0 :: 2007-03-01
|
245
|
+
|
246
|
+
* First public release.
|
247
|
+
|
data/Manifest.txt
CHANGED
@@ -1,18 +1,30 @@
|
|
1
1
|
CHANGELOG.txt
|
2
|
+
History.txt
|
2
3
|
LICENSE.txt
|
3
4
|
Manifest.txt
|
5
|
+
PostInstall.txt
|
4
6
|
README.txt
|
5
7
|
Rakefile
|
6
8
|
bin/rubycas-server
|
7
9
|
bin/rubycas-server-ctl
|
10
|
+
casserver.db
|
11
|
+
casserver.log
|
12
|
+
casserver_db.log
|
8
13
|
config.example.yml
|
14
|
+
config/hoe.rb
|
15
|
+
config/requirements.rb
|
9
16
|
custom_views.example.rb
|
10
17
|
lib/casserver.rb
|
11
18
|
lib/casserver/authenticators/active_directory_ldap.rb
|
12
19
|
lib/casserver/authenticators/base.rb
|
20
|
+
lib/casserver/authenticators/client_certificate.rb
|
21
|
+
lib/casserver/authenticators/google.rb
|
13
22
|
lib/casserver/authenticators/ldap.rb
|
23
|
+
lib/casserver/authenticators/ntlm.rb
|
24
|
+
lib/casserver/authenticators/open_id.rb
|
14
25
|
lib/casserver/authenticators/sql.rb
|
15
26
|
lib/casserver/authenticators/sql_encrypted.rb
|
27
|
+
lib/casserver/authenticators/sql_md5.rb
|
16
28
|
lib/casserver/authenticators/test.rb
|
17
29
|
lib/casserver/cas.rb
|
18
30
|
lib/casserver/conf.rb
|
@@ -24,6 +36,7 @@ lib/casserver/utils.rb
|
|
24
36
|
lib/casserver/version.rb
|
25
37
|
lib/casserver/views.rb
|
26
38
|
lib/rubycas-server.rb
|
39
|
+
lib/rubycas-server/version.rb
|
27
40
|
lib/themes/cas.css
|
28
41
|
lib/themes/notice.png
|
29
42
|
lib/themes/ok.png
|
@@ -36,10 +49,17 @@ lib/themes/urbacon/login_box_bg.png
|
|
36
49
|
lib/themes/urbacon/logo.png
|
37
50
|
lib/themes/urbacon/theme.css
|
38
51
|
lib/themes/warning.png
|
52
|
+
misc/basic_cas_single_signon_mechanism_diagram.png
|
53
|
+
misc/basic_cas_single_signon_mechanism_diagram.svg
|
39
54
|
resources/init.d.sh
|
55
|
+
script/console
|
56
|
+
script/destroy
|
57
|
+
script/generate
|
58
|
+
script/txt2html
|
40
59
|
setup.rb
|
41
|
-
|
42
|
-
|
60
|
+
tasks/deployment.rake
|
61
|
+
tasks/environment.rake
|
62
|
+
tasks/website.rake
|
43
63
|
vendor/isaac_0.9.1/LICENSE
|
44
64
|
vendor/isaac_0.9.1/README
|
45
65
|
vendor/isaac_0.9.1/TODO
|
@@ -48,3 +68,8 @@ vendor/isaac_0.9.1/crypt/ISAAC.rb
|
|
48
68
|
vendor/isaac_0.9.1/isaac.gemspec
|
49
69
|
vendor/isaac_0.9.1/setup.rb
|
50
70
|
vendor/isaac_0.9.1/test/TC_ISAAC.rb
|
71
|
+
website/index.html
|
72
|
+
website/index.txt
|
73
|
+
website/javascripts/rounded_corners_lite.inc.js
|
74
|
+
website/stylesheets/screen.css
|
75
|
+
website/template.html.erb
|
data/PostInstall.txt
ADDED
data/Rakefile
CHANGED
@@ -1,60 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
3
|
-
|
4
|
-
|
5
|
-
require 'rake/packagetask'
|
6
|
-
require 'rake/gempackagetask'
|
7
|
-
require 'rake/rdoctask'
|
8
|
-
require 'rake/contrib/rubyforgepublisher'
|
9
|
-
require 'fileutils'
|
10
|
-
require 'hoe'
|
11
|
-
include FileUtils
|
12
|
-
require File.join(File.dirname(__FILE__), 'lib', 'casserver', 'version')
|
13
|
-
|
14
|
-
AUTHOR = ["Matt Zukowski", "Jason Zylks"] # can also be an array of Authors
|
15
|
-
EMAIL = ["matt at roughest dot net"]
|
16
|
-
DESCRIPTION = "Provides single sign on for web applications using the CAS protocol."
|
17
|
-
GEM_NAME = "rubycas-server" # what ppl will type to install your gem
|
18
|
-
RUBYFORGE_PROJECT = "rubycas-server" # The unix name for your project
|
19
|
-
HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
|
20
|
-
|
21
|
-
DEPS = [
|
22
|
-
['activesupport', '>= 1.4.0'],
|
23
|
-
['activerecord', '>=1.15.3'],
|
24
|
-
['picnic', '>=0.6.3']
|
25
|
-
]
|
26
|
-
|
27
|
-
|
28
|
-
NAME = "rubycas-server"
|
29
|
-
REV = nil
|
30
|
-
#REV = `svn info`[/Revision: (\d+)/, 1] rescue nil
|
31
|
-
VERS = ENV['VERSION'] || (CASServer::VERSION::STRING + (REV ? ".#{REV}" : ""))
|
32
|
-
CLEAN.include ['**/.*.sw?', '*.gem', '.config']
|
33
|
-
RDOC_OPTS = ['--quiet', '--title', "RubyCAS-Server #{VERS} Documentation",
|
34
|
-
"--opname", "index.html",
|
35
|
-
"--line-numbers",
|
36
|
-
"--main", "README",
|
37
|
-
"--inline-source"]
|
38
|
-
|
39
|
-
class Hoe
|
40
|
-
def extra_deps
|
41
|
-
@extra_deps.reject { |x| Array(x).first == 'hoe' }
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
# Generate all the Rake tasks
|
46
|
-
# Run 'rake -T' to see list of generated tasks (from gem root directory)
|
47
|
-
hoe = Hoe.new(GEM_NAME, VERS) do |p|
|
48
|
-
p.author = AUTHOR
|
49
|
-
p.description = DESCRIPTION
|
50
|
-
p.email = EMAIL
|
51
|
-
p.summary = DESCRIPTION
|
52
|
-
p.url = HOMEPATH
|
53
|
-
p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT
|
54
|
-
p.test_globs = ["test/**/test_*.rb"]
|
55
|
-
p.clean_globs = CLEAN #An array of file patterns to delete on clean.
|
56
|
-
|
57
|
-
# == Optional
|
58
|
-
p.extra_deps = DEPS
|
59
|
-
p.spec_extras = {:executables => ['rubycas-server', 'rubycas-server-ctl']}
|
60
|
-
end
|
1
|
+
require 'config/requirements'
|
2
|
+
require 'config/hoe' # setup Hoe + all gem configuration
|
3
|
+
|
4
|
+
Dir['tasks/**/*.rake'].each { |rake| load rake }
|
data/bin/rubycas-server
CHANGED
data/bin/rubycas-server-ctl
CHANGED
File without changes
|
data/casserver.db
ADDED
Binary file
|