Upgrade phpCAS
[piwik-CASLogin.git] / CAS / docs / ChangeLog
1 Changes in version 1.3.2
2 Security Fixes:
3    * CVE-2012-5583 Missing CN validation of CAS server certificate [#58] (Joachim Fritschi)
4
5 Bug Fixes:
6    * Fix broken character encoding in Greek and French [#40] (Joachim Fritschi)
7    * Minor error corrections in a few example files [] (Joachim Fritschi)
8    * Remove erroneous break statement [#44] (jbittel)
9    * Use X-Forwarded-Port [#45] (Andrew Kirkpatrick)
10    * Stop autoloader using set_include_path [#51/#52] (drysdaleb)
11    * Fix undefined property in the rebroadcast code [#47] (Joachim Fritschi)
12
13 Improvement:
14    * Enable getCookies on a proxied sevices [#56] (Adam Franco)
15  
16 Changes in version 1.3.1
17 Bug Fixes:
18    * Readd PEAR support to the package [#30]  (Joachim Fritschi)
19    * fix a __autoload conflicts in the autoloader [#36] (Joachim Fritschi)
20    * fix PEAR code style errors [25] (Joachim Fritschi)
21    * properly unset variables during checkAuthenticate[#35] (Joachim Fritschi)
22
23 Changes in version 1.3.0
24 Improvements:
25    * enable single sign-out when session has already started [#29] (Benvii)
26
27 Changes in version 1.3.0RC1
28
29 Bug Fixes:
30    * the saml logout url should be parsed urlencoded [#24] (dlineate)
31    * fix a proxy mode bug introduced in a previous comitt [#16] (Adam Franco)
32    * Fix include_path order so that the phpCAS path takes precedence [#13] (Adam Franco)
33    * fix invalid characters in the php session naming [#17] (Joachim Fritschi)
34    * fix an initialisation problem introduced in the PGT storage [18] (Daniel Frett)
35    * make sure the PGTStorage object is initialized if a user is utilizing the createTable method [#4] (Daniel Frett)
36    * Fix error message in phpCAS::setCacheTimesForAuthRecheck() [PHPCAS-132/#1] (Bradley Froehle)
37    * Always return attributes in utf8 [PHPCAS-102]
38    * Fix warning during debugging if debug is set to false [PHPCAS-123] (Sean Watkins)
39
40 New Features:
41     * Add a script to create the PGT db table in proxy mode [#11] (Joachim Fritschi)
42     * Switch to the Apache License [#5] (Adam Franco, Joachim Fritschi)
43     * Move to github and add all necessary file to package [#12] (Adam Franco)
44     * New build process for github [#12] (Adam Franco)
45     * Update unit tests to work with the lastest phpunit version [PHPCAS-128] (Adam Franco)
46     * Refacatoring of the protocol decision making to allow validation of proxied usage [PHPCAS-69] (Joachim Fritschi, Adam Franco)
47     * Rebroadcast of logout and pgtiou to support clustered phpcas [PHPCAS-100] (Matthew Selwood, Adam Franco)
48
49 Improvements:
50     * Improved cookie handling [] (Adam Franco
51     * Indent, format and user name guidelines of PEAR [#14] (Joachim Fritschi)
52     * Add a class autoloading feature [PHPCAS-125/#8] (Joachim Fritschi)
53     * Remove global variables [PHPCAS-126] (Adam Franco)
54     * Implementation of an exception framework to allow gracefull termination [PHPCAS-109] (Joachim Fritschi)
55     
56 Security Fixes:
57     * CVE-2012-1104 validate proxied usage of a service [PHPCAS-69] (Joachim Fritschi, Adam Franco)
58     * CVE-2012-1105 change the default PGT save path to the session storage path and set proper permissions [#22] (Joachim Fritschi)
59
60 Changes in version 1.2.2
61
62 Bug Fixes:
63     * Improve compatibility with php < 5.3 for E_USER_DEPRECATED [PHPCAS-116] (Hugh Eaves)
64
65 Changes in version 1.2.2RC1
66
67 Bug Fixes:
68     * CASClient::getURL() cannot be private [PHPCAS-103] (Joachim Fritschi)
69     * CASClient::getServerServiceValidateURL() doesn't respect existing query strings [PHPCAS-104] (Bradley Froehle, Joachim Fritschi)
70     * CASClient::retrievePT() must be a public function [PHPCAS-107] (Joachim Fritschi)
71     * Expose setNoClearTicketsFromUrl() to the client [PHPCAS-108]  (Joachim Fritschi)
72     * Remove the PGT filestorage in xml format that is not implemented [PHPCAS-112] (Joachim Fritschi)
73     * Fix compatibility of the PGT db storage interface with postgres [PHPCAS-113] (Joachim Fritschi)
74
75 Improvement
76     * Support for proxied POST requests. [PHPCAS-90] (Adam Franco)
77     * Add missing example for the new pgt-db storage [PHPCAS-101] (Joachim Fritschi)
78     * CASClient::getServerLoginURL(): Don't cache gateway/renew parameters [PHPCAS-105] (Bradley Froehle)
79     * fix parsing of cookies with special symbols in their values [PHPCAS-106] (Joachim Fritschi)
80     * Removal of the debug_backtrace hack for php4 [PHPCAS-110] (Joachim Fritschi)
81     * Clean up the naming structure of the classes [PHPCAS-111] (Joachim Fritschi)
82     * Better debug log output format [PHPCAS-114] (Joachim Fritschi)
83     * Many more examples and one central config. Improved code documentation [PHPCAS-86] (Joachim Fritschi, Adam Franco)
84
85 Changes in version 1.2.1
86    * None
87
88 Changes in version 1.2.1RC1
89 Improvements
90    * add support for storing PGTs in a database [PHPCAS-94] (Daniel Frett)
91     
92 Bug Fixes
93    * phpCAS::setDebug(FALSE) should stop logging [PHPCAS-95] (Joachim Fritschi)
94    * fix checkAuthenticate return value documentation [PHPCAS-92] (Joachim Fritschi)
95    * fix PGTStorage contructor name [PHPCAS-93] (Daniel Frett)
96    * fix the PHPCAS_SERVICE_NOT_AVAILABLE constant [PHPCAS-91] (Daniel Frett)
97    * fix redirection with multiple proxies in HTTP_X_FORWARDED_HOST [PHPCAS-98] (Joachim Fritschi)
98    * fix some undefinde variable warnings in debug mode [PHPCAS-96] (Joachim Fritschi)
99
100 Changes in version 1.2.0
101    * None
102    
103 Changes in version 1.2.0RC2
104 Improvements
105    * add callback hooks during authentication and single sign-out [PHPCAS-76] (Adam Franco)
106
107 Changes in version 1.2.0RC1
108 Improvements
109    * add hasAttribute($key) and getAttribute($key) [PHPCAS-43] (Adam Franco)
110    * add unit tests for cas 2.0 attribute support [PHPCAS-88] (Adam Franco)
111    * expose the proxy chain through the phpcas interface [PHPCAS-89] (Adam Franco)
112    * add deprecation messages to the logout functions with an url parameter [PHPCAS-85] (Joachim Fritschi)
113
114 Bug Fixes
115         * fix  public/private modifier for some functions [PHPCAS-87] (Joachim Fritschi)
116
117 Changes in version 1.2.0-beta1
118
119 Bug Fixes
120   * fix redirection behind a proxy. [PHPCAS-78] (Alex Barker)
121   * remove the bogus setCasServerCert() function and clean up the curl ssl settings [PHPCAS-84] (Joachim Fritschi)
122   
123 Improvements
124    * mark the logout functions with an url parameter a deprecated [PHPCAS-85] (Joachim Fritschi)
125    * add public/private modifier for all vars and functions [PHPCAS-77] (Joachim Fritschi)
126    * add a testing framwork that implement on and offline testing capabilities [PHPCAS-66] (Adam Franco)
127    * add RFC compliant cookie storage for the proxy() mode. [PHPCAS-54] (Adam Franco)
128    * removal of the domxml compatibility lib [PHPCAS-72] (Matthew Brooks, Joachim Fritschi)
129    * add support for attributes for the cas_2.0 protocol [PHPCAS-43] (Joachim Fritschi, Adam Franco)
130    * removal of unused code and comments [PHPCAS-63] (Joachim Fritschi)
131    * fix static function warnings for php 5.x [PHPCAS-46] (Joachim Fritschi)
132    
133 Changes in version 1.1.3
134   Bug Fixes
135    * removal of the non functional pgt-db backend [PHPCAS-65] (Joachim Fritschi)
136
137 Changes in version 1.1.3RC1
138  Security Issue
139     * CVE-2010-3690 phpCAS: XSS during a proxy callback [PHPCAS-80] (Joachim Fritschi)
140     * CVE-2010-3691 phpCAS: prevent symlink attacks during a proxy callback [PHPCAS-80] (Joachim Fritschi)
141     * CVE-2010-3692 phpCAS: directory traversal during a proxy callback [PHPCAS-80] (Joachim Fritschi)
142
143  Bug Fixes
144    * fix missing $this in domxml-php4-to-php5 [PHPCAS-73] (Iñaki Arenaza)
145    * fix broken redirection with safari [PHPCAS-79] (Alex Barker)
146    * fix missing exit() call during ticket validation [PHPCAS-76] (Igor Blanco,Joachim Fritschi)
147    * fix a notice because REQUEST_URL is not defined on IIS [PHPCAS-81] (Iñaki Arenaza)
148    * fix a typo in pgt-db.php [PHPCAS-75] (Julien Cochennec)
149  
150  Improvements
151    * upgrade domxml-php4-to-php5 to the newest version [PHPCAS-74] (Joachim Fritschi)
152
153 Changes in version 1.1.2
154    * None
155    
156 Changes in version 1.1.2RC2
157  Bug Fixes
158     * Prevent domxml-php4-to-php5 to be inclueded twice [PHPCAS-48] (Brad Krane)
159
160 Changes in version 1.1.2RC1
161 Security Issue
162     * Fix a session hijacking hole CVE-2010-2795 [PHPCAS-61] (Joachim Fritschi)
163     * callbackurl in proxy mode should be urlencoded CVE-2010-2796 [PHPCAS-67] (Joachim Fritschi)
164
165  Improvement
166     * Debuglog contains phpCAS version information [PHPCAS-62] (Joachim Fritschi)
167     
168  Bug Fixes   
169     * Fix warnings for SAML responses without attributes [PHPCAS-59] (Joachim Fritschi)
170     * Fix duplicate SAML debug output [PHPCAS-64] (Joachim Fritschi)
171     * Providing a new ST/PT/SA during an authenticated session will be ignored 
172       and a warning will be issued to the debug log. [PHPCAS-61] (Joachim Fritschi)
173     * fix 2 undefinded variable notices in serviceWeb() [PHPCAS-68] (Joachim Fritschi)
174
175 Changes in version 1.1.1
176 Improvement
177     * On Single Sign Out destroy any existing application session before deleting the phpcas session [PHPCAS-58] (Joachim Fritschi)
178     
179 Changes in version 1.1.1RC2
180 Bug fixes
181     * Fix bug in handling urls containing parameters without values [PHPCAS-57] (Joe Lencioni)
182     * New XSS patch for PHPCAS-52 that was undone in r48507 [PHPCAS-57] (Joachim Fritschi)
183
184 Changes in version 1.1.1RC1
185 Bug fixes
186     * Fix bug in restoring an existing session [PHPCAS-55] (Joachim Fritschi)
187     
188 Changes in version 1.1.0
189 Improvement
190     * Replace deprecated split() with explode(). [PHPCAS-42] (Joe Lencioni)
191
192 Changes in version 1.1.0RC8
193 Bug fixes
194     * Add additional comments regarding the use of serviceValidate and proxyValdiate [PHPCAS-44] (Joachim Fritschi)
195     * Revert all changes made to the ticket parsing in r47347 r48210 [PHPCAS-44] (Joachim Fritschi)
196     * Fix warning when destroying uninitialized session [PHPCAS-53] (Yann Richard,Joachim Fritschi)
197
198 Changes in version 1.1.0RC7
199 Security fixes
200     * Fix XSS Vulnerability. Sanatize parameters before using the url submitted by a client [PHPCAS-52] (Joachim Fritschi)
201     
202 Changes in version 1.1.0RC6
203 Bug fixes
204     * restore any possible old session before renaming the session [PHPCAS-50] (Joachim Fritschi)
205
206 Changes in version 1.1.0RC5
207 Bug fixes
208     * fixed don't destroy existing sessions unless needed, more debug output [PHPCAS-50] (Joachim Fritschi)
209
210 Changes in version 1.1.0RC4
211 Bug fixes
212
213     * fixed use PHP4 functions to parse saml11 attributes [PHPCAS-51] (Joachim Fritschi)
214
215 Changes in version 1.1.0RC3
216 Bug fixes
217
218     * added a check for missing params [PHPCAS-42] (Joachim Fritschi)
219
220 Changes in version 1.1.0RC2
221 New features
222
223     * added custom validation Urls [PHPCAS-45] (Joachim Fritschi).
224
225 Bug fixes
226
227     * fixed PGT DB storage parameter list [PHPCAS-47] (Paul Merchant, Jr.)
228     * fixed parsing of STs [PHPCAS-44] (Joachim Fritschi)
229     * fixed session initialisation [PHPCAS-50] (Joachim Fritschi)
230     * fixed urls with than one query parameter [PHPCAS-42] (Caio Chassot)
231
232 Changes in version 1.1.0RC1
233 New features
234
235     * added SAML support [PHPCAS-40] (Brian Long and Matthias Crauwels).
236
237 Bug fixes
238
239     * fixed invalid validation URLs [PHPCAS-39] (Alex Danieli).
240     * removed old PHP4 references [PHPCAS-41] (Yann Richard).
241     * fixed curl options [PHPCAS-38] (Andy Cowling).
242
243 Improvement
244
245     * added accept IP addresses for allowed clients [PHPCAS-37] (Arunas Stockus) 
246
247 Changes in version 1.0.2RC1
248 Bug fixes
249
250     * fix redirections masking error messages [PHPCAS-36] (Olivier Berger)       
251     * fixed validatePGT() failing on phpCAS::traceBegin() with newer domxml-php4-to-php5.php [PHPCAS-35] (Olivier Berger)        
252     * Fixed missing exit() at end of callback() method [PHPCAS-34] (Olivier Berger)
253     * Update included domxml-php4-php5.php to most recent version now under LGPL [PHPCAS-30] (Olivier Berger)     
254     * fixed empty $target_service in CAS_Client:serviceMail [PHPCAS-22] (Julien Marchal).
255
256 Changes in version 1.0.1
257 Bug fixes
258
259     * fixed PEAR base install directory [PHPCAS-28] (Brett Bieber).
260     * fixed illegal characters in session id [PHPCAS-29] (Michael Ströder, Brett Bieber).
261     * fixed refresh with ticket causes authentication failure [related to PHPCAS-27] (Brett Bieber).
262     * fixed conflict with custom session handlers [PHPCAS-26] (Martin Gonzalez).
263
264 Changes in version 1.0.0
265 New features
266
267     * phpCAS is now PEAR-installable (Brett Bieber).
268     * added method handleLogoutRequests() to handle logout requests incoming from the CAS server (Julien Marchal and Pascal Aubry, requested by Craig Andrews).
269     * added methods setHttpProxy(), setNetworkInterface() and setExtraCurlOptions() (Stéphane Gully).
270
271 Enhancements
272
273     * removed undesirable notice (Glennie Vignarajah).
274     * removed PEAR DB dependency when storing PGTs to the filesytem (Stéphane Gully).
275
276 Changes in version 0.6.0
277 New features
278
279     * added methods setCasServerCert() and setCasServerCaCert() to authenticate the CAS server, and method setNoCasServerValidation() to skip the SSL checks (Pascal Aubry, requested by Andrew Petro).
280     * Added spanish and catalan translations (Ivan Garcia).
281
282 Bug fix
283
284     * fixed PGT storage path on Windows (Olivier Thebault).
285
286 Changes in version 0.5.1
287 New features
288
289     * restored method isAuthenticated() (Julien Marchal).
290
291 Changes in version 0.5.0
292 New features
293
294     * added japanese translation (Noriyuki Fukuoka).
295     * added german translation (Henrik Genssen).
296     * phpCAS now works for CAS v3 proxy tickets (Matt Zukowski).
297     * phpCAS now also works with lighttpd (Marvin Addison)
298
299 Bug fixes
300
301     * fixed method setHTMLFooter() (Noriyuki Fukuoka).
302     * fixed method setHTMLHeader() (Xavier Castanho).
303     * fixed method isHttps() (Henrik Genssen).
304     * fixed method PGTStorageDB() (Ray Lambe).
305     * encode all the parameters, not only '&' characters (Matthew Debus).
306     * fixed ST proxy tickets (Julien Marchal).
307
308 Changes in version 0.4.23
309 Enhancement
310
311     * removed notice messages (David Lowry).
312
313 Changes in version 0.4.22
314 Bug fix
315
316     * added default value for parameter gateway in methods setServerLoginUrl() and redirectToCas() (Velpi).
317
318 New Feature
319
320     * added method isSessionAuthenticated() (Brendan Arnold).
321
322 Other change
323
324     * removed the call to error_reporting() to allow the configuration of error reporting at server level (Pascal Aubry, requested by Sylvain Derosiaux).
325
326 Changes in version 0.4.21
327 Bug fix
328
329     * some URLs were ill-formed in some rare circumstances (Jérôme Andrieux).
330
331 New Feature
332
333     * added methods setServerLoginURL() and setServerLogoutURL() (Wyman Chan).
334
335 Changes in version 0.4.20
336 New feature
337
338     * phpCAS::checkAuthentication() implements the gateway feature of CAS (Pascal Aubry, requested by Romuald Lorthioir).
339
340 Other change
341
342     * phpCAS::authenticateIfNeeded() was renamed phpCAS::forceAuthentication() (Pascal Aubry).
343
344 Changes in version 0.4.19
345 New features
346
347     * the service URL for the CAs server can be fixed with method phpCAS::setFixedServiceURL (Julien Marchal).
348     * the callback URL used to receive PGTs can be fixed with method phpCAS::setFixedCallbackURL() (Julien Marchal).
349
350     * added a CAS_Client wrapper to class phpCAS for method retrievePGT() (Julien Marchal).
351
352 Changes in version 0.4.18
353 Bug fixes
354
355     * debugging information was missing (Alexandre Boisseau).
356     * used an undefined variable in pgt-file.php (Alexandre Boisseau).
357
358 Changes in version 0.4.17
359 Enhancement
360
361     * made phpCAS PHP5 compliant (Vangelis Haniotakis).
362
363 Changes in version 0.4.16
364 Enhancement
365
366     * added the possibility not to start the session management (Vangelis Haniotakis).
367
368 Changes in version 0.4.15
369 Enhancement
370
371     * added a hack to make phpCAS work with IIS (Vangelis Haniotakis).
372
373 Changes in version 0.4.14
374 Enhancement
375
376     * a URL can be given to the CAS server on logout (Sébastien Gougeon and Yann Richard).
377
378 Changes in version 0.4.13
379 Bug fix
380
381     * Removed infinite loop in debug mode (Robert Legros).
382
383 Changes in version 0.4.12
384 Enhancement
385
386     * phpCAS now works even if the web server does not set SERVER_NAME, by relying on HTTP_HOST (Terence Chiu).
387
388 Changes in version 0.4.11
389 Bug fix
390
391     * A typo prevented ticket validation to work correctly (Robert Legros).
392
393 Changes in version 0.4.10
394 Enhancement
395
396     * phpCAS was previously working with PHP >= 4.3.0. A debug_backtrace() wrapper was added and get_elements_by_tagname() calls were modified to make phpCAS work with phpCAS >= 4.2.2 (Robert Legros).
397
398 Changes in version 0.4.9
399 New features
400
401     * Added greek translation (Haniotakis Vangelis).
402
403 Changes in version 0.4.8
404 Enhancements
405
406     * PEAR's DB.php inclusion is done only if a DB class was not already included. This eases the integration into some stand-alone tools that already include DB.php, like Tikiwiki (Pascal Aubry, requested by Terence Chiu).
407
408 Changes in version 0.4.7
409 Enhancements
410
411     * PHP session is now destroyed when using the phpCAS::logout() method (Pascal Aubry, requested by Ruben Recaba).
412     * Call getenv() whenever possible instead of directly dealing with environment variables (with $_ENV['xxx']), as $_ENV is not available par default on some Windows systems (Pascal Aubry).
413     * Set error reporting level to E_ALL ~ E_NOTICE (Pascal Aubry).
414     * Added the release number in the name of the main directory of the zip distribution file (Pascal Aubry, requested by Vincent Mathieu).
415     * Explicitly set certificate control to get round with different curl default configurations (Wyman Chan).
416
417 Changes in version 0.4.6
418 Security bug fix
419
420     * Credentials given to HTTP realms were given in the service URLs to the CAS server (Julien Marchal).
421
422 Enhancements
423
424     * phpCAS now works behind an Apache reverse proxy (Julien Marchal).
425
426 Changes in version 0.4.5
427 Enhancements
428
429     * Developer releasing is now made by ant (Pascal Aubry).
430
431 Bug fixes
432
433     * CAS/PGTStorage files have been renamed to fit to Windows case insensitivity (Pascal Aubry);
434     * %TMP% and %TEMP% environment variables are now taken into account to set the location of the log file (Pascal Aubry).
435
436 Changes in version 0.4.4
437 Enhancement
438
439     * ticket retrieval and validation is now made with curl (Pascal Aubry).
440
441 Changes in version 0.4.3
442 Bug fix
443
444     * phpCAS was not exiting right after redirecting in callback mode (Julien Marchal)
445
446 Changes in version 0.4.2
447 New features
448
449     * Authentication checking is not necessarily redirecting to the CAS server (introduced phpCAS::isAuthenticated()) (Pascal Aubry)
450     * phpCAS can now be used to access IMAP/POP3/NNTP services (cf phpCAS::serviceMail()) (Pascal Aubry)
451
452 Enhancements
453
454     * debugging informations has been improved and is now send to a separate file (/tmp/phpCAS.log by default, can be changed by phpCAS::setDebug()) (Pascal Aubry)
455
456 Changes
457
458     * phpCAS::authenticate() is replaced by phpCAS::authenticateIfNeeded() (semantics unchanged) (Pascal Aubry)
459     * phpCAS::service() is replaced by phpCAS::serviceWeb() (semantics unchanged) (Pascal Aubry)
460     * phpCAS::setDebug() accepts FALSE (to stop debugging) or the name of a file (to log informations) (Pascal Aubry)
461
462 Changes in version 0.4.1
463 New features
464
465     * Sessionning between CAS proxies and services (Pascal Aubry)
466
467 Changes in version 0.4
468 New features
469
470     * CAS proxies can be chained (Pascal Aubry)
471     * improved error printing and debugging (introduced phpCAS::error()) (Pascal Aubry)
472
473 Enhancements
474
475     * proxy parameter removed from phpCAS::client() and introduced phpCAS::proxy() (Pascal Aubry)
476     * moved history from CAS/doc.php to history.php (create_version script updated accordingly) (Pascal Aubry)
477     * improved type-checking and controls for phpCAS methods (Pascal Aubry)
478
479 Changes in version 0.3.2
480 New features
481
482     * CAS proxies now work with HTTP (HTTPS only used for callbacks) (Pascal Aubry)
483
484 Changes in version 0.3.1
485 Bug fixes
486
487     * syntax error in CAS/Client.php (Julien Marchal)
488
489 Changes in version 0.3
490 New features
491
492     * CAS proxies are now supported (but no PGT retrieving for proxied client) (Pascal Aubry)
493     * introduced phpCAS container (Pascal Aubry)
494
495 Bug fixes
496
497     * CAS_LANG_DEFAULT is now taken into account (Pascal Aubry)
498
499 TODO
500
501     * support for PGT storage to databases (Pascal Aubry)
502     * PGT retrieving for proxied clients (Pascal Aubry)
503
504 Version 0.2
505 Features (Pascal Aubry)
506
507     * `Basic' (1.0) CAS mechanism supported (CAS proxies not implemented)
508     * Support for CAS versions 1.0 and 2.0 URL's
509     * Debug mode
510     * Customization of all output pages
511     * Internationalization (english and french, looking for translators...)