[CORE][COMPOSER] Move plugins extlibs to composer (where appropriate)
This commit is contained in:
parent
2a06261f75
commit
a1edc2c6a9
@ -19,7 +19,13 @@
|
|||||||
"ezyang/htmlpurifier": "^4.10",
|
"ezyang/htmlpurifier": "^4.10",
|
||||||
"masterminds/html5": "^2.6",
|
"masterminds/html5": "^2.6",
|
||||||
"mf2/mf2": "^0.4.6",
|
"mf2/mf2": "^0.4.6",
|
||||||
"openid/php-openid": "^2.3"
|
"openid/php-openid": "^2.3",
|
||||||
|
"michelf/php-markdown": "^1.8.0",
|
||||||
|
"paragonie/constant_time_encoding": "^1.0.4",
|
||||||
|
"stomp-php/stomp-php": "^4.5.1",
|
||||||
|
"phpseclib/phpseclib": "^2.0.19",
|
||||||
|
"diogocomposer/xmpphp": "^3.0",
|
||||||
|
"apereo/phpcas": "^1.3"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"phpdocumentor/phpdocumentor": "^2.9",
|
"phpdocumentor/phpdocumentor": "^2.9",
|
||||||
|
388
composer.lock
generated
388
composer.lock
generated
@ -4,8 +4,134 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "36b1e5eb69507ed41082369ded69837c",
|
"content-hash": "dea0804dd9970a97dcd17a53410327a0",
|
||||||
"packages": [
|
"packages": [
|
||||||
|
{
|
||||||
|
"name": "apereo/phpcas",
|
||||||
|
"version": "1.3.7",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/apereo/phpCAS.git",
|
||||||
|
"reference": "b5b29102c3a42f570c4a3e852f3cf67cae6d6082"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/b5b29102c3a42f570c4a3e852f3cf67cae6d6082",
|
||||||
|
"reference": "b5b29102c3a42f570c4a3e852f3cf67cae6d6082",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~3.7.10"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"source/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Joachim Fritschi",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/~fritschi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Adam Franco",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/~adamfranco"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides a simple API for authenticating users against a CAS server",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
||||||
|
"keywords": [
|
||||||
|
"apereo",
|
||||||
|
"cas",
|
||||||
|
"jasig"
|
||||||
|
],
|
||||||
|
"time": "2019-04-22T19:48:16+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diogocomposer/xmpphp",
|
||||||
|
"version": "v3.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/diogogithub/xmpphp.git",
|
||||||
|
"reference": "c7cdcc588aa47893ab41a1670c5dfe649674a4b0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/diogogithub/xmpphp/zipball/c7cdcc588aa47893ab41a1670c5dfe649674a4b0",
|
||||||
|
"reference": "c7cdcc588aa47893ab41a1670c5dfe649674a4b0",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-xml": "*",
|
||||||
|
"php": ">=7.0.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"XMPPHP\\": "XMPPHP"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-2.0+"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ivan Borzenkov",
|
||||||
|
"email": "ivan.borzenkov@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bandroidx",
|
||||||
|
"email": "bandroidx@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BirknerAlex",
|
||||||
|
"email": "alex.birkner@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stephan Wentz",
|
||||||
|
"email": "stephan@wentz.it"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nathan Fritz",
|
||||||
|
"email": "fritzy@netflint.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Christian Weiske",
|
||||||
|
"email": "cweiske@cweiske.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Vito Tafuni",
|
||||||
|
"email": "vitotafuni@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Diogo Cordeiro",
|
||||||
|
"email": "diogo@fc.up.pt"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "XMPP PHP Library",
|
||||||
|
"keywords": [
|
||||||
|
"jabber",
|
||||||
|
"xmpp",
|
||||||
|
"xmpphp"
|
||||||
|
],
|
||||||
|
"time": "2019-06-19T02:32:32+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ezyang/htmlpurifier",
|
"name": "ezyang/htmlpurifier",
|
||||||
"version": "v4.10.0",
|
"version": "v4.10.0",
|
||||||
@ -176,6 +302,52 @@
|
|||||||
],
|
],
|
||||||
"time": "2018-08-24T14:47:04+00:00"
|
"time": "2018-08-24T14:47:04+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "michelf/php-markdown",
|
||||||
|
"version": "1.8.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/michelf/php-markdown.git",
|
||||||
|
"reference": "01ab082b355bf188d907b9929cd99b2923053495"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
|
||||||
|
"reference": "01ab082b355bf188d907b9929cd99b2923053495",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Michelf\\": "Michelf/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Michel Fortin",
|
||||||
|
"email": "michel.fortin@michelf.ca",
|
||||||
|
"homepage": "https://michelf.ca/",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "John Gruber",
|
||||||
|
"homepage": "https://daringfireball.net/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Markdown",
|
||||||
|
"homepage": "https://michelf.ca/projects/php-markdown/",
|
||||||
|
"keywords": [
|
||||||
|
"markdown"
|
||||||
|
],
|
||||||
|
"time": "2018-01-15T00:49:33+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "openid/php-openid",
|
"name": "openid/php-openid",
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
@ -224,6 +396,220 @@
|
|||||||
"yadis"
|
"yadis"
|
||||||
],
|
],
|
||||||
"time": "2015-07-30T18:07:43+00:00"
|
"time": "2015-07-30T18:07:43+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "paragonie/constant_time_encoding",
|
||||||
|
"version": "v1.0.4",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||||
|
"reference": "2132f0f293d856026d7d11bd81b9f4a23a1dc1f6"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/2132f0f293d856026d7d11bd81b9f4a23a1dc1f6",
|
||||||
|
"reference": "2132f0f293d856026d7d11bd81b9f4a23a1dc1f6",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3|^7"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"paragonie/random_compat": "^1.4|^2",
|
||||||
|
"phpunit/phpunit": "4.*|5.*",
|
||||||
|
"vimeo/psalm": "^0.3|^1"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"ParagonIE\\ConstantTime\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Paragon Initiative Enterprises",
|
||||||
|
"email": "security@paragonie.com",
|
||||||
|
"homepage": "https://paragonie.com",
|
||||||
|
"role": "Maintainer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Steve 'Sc00bz' Thomas",
|
||||||
|
"email": "steve@tobtu.com",
|
||||||
|
"homepage": "https://www.tobtu.com",
|
||||||
|
"role": "Original Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
|
||||||
|
"keywords": [
|
||||||
|
"base16",
|
||||||
|
"base32",
|
||||||
|
"base32_decode",
|
||||||
|
"base32_encode",
|
||||||
|
"base64",
|
||||||
|
"base64_decode",
|
||||||
|
"base64_encode",
|
||||||
|
"bin2hex",
|
||||||
|
"encoding",
|
||||||
|
"hex",
|
||||||
|
"hex2bin",
|
||||||
|
"rfc4648"
|
||||||
|
],
|
||||||
|
"time": "2018-04-30T17:57:16+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpseclib/phpseclib",
|
||||||
|
"version": "2.0.19",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||||
|
"reference": "d2085db7b7394baa071a69c8f9159723c250f2ba"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d2085db7b7394baa071a69c8f9159723c250f2ba",
|
||||||
|
"reference": "d2085db7b7394baa071a69c8f9159723c250f2ba",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phing/phing": "~2.7",
|
||||||
|
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
|
||||||
|
"sami/sami": "~2.0",
|
||||||
|
"squizlabs/php_codesniffer": "~2.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
|
||||||
|
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
|
||||||
|
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||||
|
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"phpseclib/bootstrap.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"phpseclib\\": "phpseclib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jim Wigginton",
|
||||||
|
"email": "terrafrost@php.net",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Patrick Monnerat",
|
||||||
|
"email": "pm@datasphere.ch",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Andreas Fischer",
|
||||||
|
"email": "bantu@phpbb.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hans-Jürgen Petrich",
|
||||||
|
"email": "petrich@tronic-media.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "graham@alt-three.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
|
||||||
|
"homepage": "http://phpseclib.sourceforge.net",
|
||||||
|
"keywords": [
|
||||||
|
"BigInteger",
|
||||||
|
"aes",
|
||||||
|
"asn.1",
|
||||||
|
"asn1",
|
||||||
|
"blowfish",
|
||||||
|
"crypto",
|
||||||
|
"cryptography",
|
||||||
|
"encryption",
|
||||||
|
"rsa",
|
||||||
|
"security",
|
||||||
|
"sftp",
|
||||||
|
"signature",
|
||||||
|
"signing",
|
||||||
|
"ssh",
|
||||||
|
"twofish",
|
||||||
|
"x.509",
|
||||||
|
"x509"
|
||||||
|
],
|
||||||
|
"time": "2019-06-20T03:34:11+00:00"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stomp-php/stomp-php",
|
||||||
|
"version": "4.5.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/stomp-php/stomp-php.git",
|
||||||
|
"reference": "4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/stomp-php/stomp-php/zipball/4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158",
|
||||||
|
"reference": "4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.6 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^5.7"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Stomp\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Dejan Bosnanac",
|
||||||
|
"email": "dejan@nighttale.net",
|
||||||
|
"homepage": "http://www.nighttale.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sören Rohweder",
|
||||||
|
"email": "s.rohweder@blage.net",
|
||||||
|
"homepage": "http://www.monofone.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jens Radtke",
|
||||||
|
"email": "swefl@fin-sn.de",
|
||||||
|
"homepage": "http://www.fin-sn.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "stomp support for PHP",
|
||||||
|
"homepage": "http://github.com/stomp-php/stomp-php",
|
||||||
|
"keywords": [
|
||||||
|
"activeMQ",
|
||||||
|
"apollomq",
|
||||||
|
"jms",
|
||||||
|
"messaging",
|
||||||
|
"rabbitmq",
|
||||||
|
"stomp"
|
||||||
|
],
|
||||||
|
"time": "2019-04-09T08:25:54+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [
|
"packages-dev": [
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,218 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
|
|
||||||
* Collaborative nor the names of its contributors may be used to endorse or
|
|
||||||
* promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-db.php
|
|
||||||
* Basic class for PGT database storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorageDB
|
|
||||||
* The PGTStorageDB class is a class for PGT database storage. An instance of
|
|
||||||
* this class is returned by CASClient::SetPGTStorageDB().
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorageDB
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorageDB extends PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorageDB
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string representing a PEAR DB URL to connect to the database. Written by
|
|
||||||
* PGTStorageDB::PGTStorageDB(), read by getURL().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_url='';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the PEAR DB URL to use to connect to the database.
|
|
||||||
*
|
|
||||||
* @return a PEAR DB URL
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getURL()
|
|
||||||
{
|
|
||||||
return $this->_url;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The handle of the connection to the database where PGT's are stored. Written by
|
|
||||||
* PGTStorageDB::init(), read by getLink().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_link = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the handle of the connection to the database where PGT's are
|
|
||||||
* stored.
|
|
||||||
*
|
|
||||||
* @return a handle of connection.
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getLink()
|
|
||||||
{
|
|
||||||
return $this->_link;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The name of the table where PGT's are stored. Written by
|
|
||||||
* PGTStorageDB::PGTStorageDB(), read by getTable().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_table = '';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the name of the table where PGT's are stored.
|
|
||||||
*
|
|
||||||
* @return the name of a table.
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getTable()
|
|
||||||
{
|
|
||||||
return $this->_table;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
return "database";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\'';
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The class constructor, called by CASClient::SetPGTStorageDB().
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASClient instance that creates the object.
|
|
||||||
* @param $user the user to access the data with
|
|
||||||
* @param $password the user's password
|
|
||||||
* @param $database_type the type of the database hosting the data
|
|
||||||
* @param $hostname the server hosting the database
|
|
||||||
* @param $port the port the server is listening on
|
|
||||||
* @param $database the name of the database
|
|
||||||
* @param $table the name of the table storing the data
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
|
|
||||||
// call the ancestor's constructor
|
|
||||||
$this->PGTStorage($cas_parent);
|
|
||||||
|
|
||||||
if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE;
|
|
||||||
if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME;
|
|
||||||
if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT;
|
|
||||||
if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE;
|
|
||||||
if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE;
|
|
||||||
|
|
||||||
// build and store the PEAR DB URL
|
|
||||||
$this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$hostname.':'.$port.'/'.$database;
|
|
||||||
|
|
||||||
// XXX should use setURL and setTable
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is used to initialize the storage. Halts on error.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// if the storage has already been initialized, return immediatly
|
|
||||||
if ( $this->isInitialized() )
|
|
||||||
return;
|
|
||||||
// call the ancestor's method (mark as initialized)
|
|
||||||
parent::init();
|
|
||||||
|
|
||||||
//include phpDB library (the test was introduced in release 0.4.8 for
|
|
||||||
//the integration into Tikiwiki).
|
|
||||||
if (!class_exists('DB')) {
|
|
||||||
include_once('DB.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
// try to connect to the database
|
|
||||||
$this->_link = DB::connect($this->getURL());
|
|
||||||
if ( DB::isError($this->_link) ) {
|
|
||||||
phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')');
|
|
||||||
}
|
|
||||||
var_dump($this->_link);
|
|
||||||
phpCAS::traceBEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
@ -1,276 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
|
|
||||||
* Collaborative nor the names of its contributors may be used to endorse or
|
|
||||||
* promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-file.php
|
|
||||||
* Basic class for PGT file storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorageFile
|
|
||||||
* The PGTStorageFile class is a class for PGT file storage. An instance of
|
|
||||||
* this class is returned by CASClient::SetPGTStorageFile().
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorageFile
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorageFile extends PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorageFile
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string telling where PGT's should be stored on the filesystem. Written by
|
|
||||||
* PGTStorageFile::PGTStorageFile(), read by getPath().
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_path;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the name of the directory where PGT's should be stored
|
|
||||||
* on the filesystem.
|
|
||||||
*
|
|
||||||
* @return the name of a directory (with leading and trailing '/')
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getPath()
|
|
||||||
{
|
|
||||||
return $this->_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a string telling the format to use to store PGT's (plain or xml). Written by
|
|
||||||
* PGTStorageFile::PGTStorageFile(), read by getFormat().
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_format;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the format to use when storing PGT's on the filesystem.
|
|
||||||
*
|
|
||||||
* @return a string corresponding to the format used (plain or xml).
|
|
||||||
*
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getFormat()
|
|
||||||
{
|
|
||||||
return $this->_format;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
return "file";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @return an informational string.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The class constructor, called by CASClient::SetPGTStorageFile().
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASClient instance that creates the object.
|
|
||||||
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
|
|
||||||
* @param $path the path where the PGT's should be stored
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function PGTStorageFile($cas_parent,$format,$path)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// call the ancestor's constructor
|
|
||||||
$this->PGTStorage($cas_parent);
|
|
||||||
|
|
||||||
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
|
|
||||||
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
|
|
||||||
|
|
||||||
// check that the path is an absolute path
|
|
||||||
if (getenv("OS")=="Windows_NT"){
|
|
||||||
|
|
||||||
if (!preg_match('`^[a-zA-Z]:`', $path)) {
|
|
||||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
if ( $path[0] != '/' ) {
|
|
||||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
|
||||||
}
|
|
||||||
|
|
||||||
// store the path (with a leading and trailing '/')
|
|
||||||
$path = preg_replace('|[/]*$|','/',$path);
|
|
||||||
$path = preg_replace('|^[/]*|','/',$path);
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->_path = $path;
|
|
||||||
// check the format and store it
|
|
||||||
switch ($format) {
|
|
||||||
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
|
|
||||||
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
|
|
||||||
$this->_format = $format;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is used to initialize the storage. Halts on error.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
// if the storage has already been initialized, return immediatly
|
|
||||||
if ( $this->isInitialized() )
|
|
||||||
return;
|
|
||||||
// call the ancestor's method (mark as initialized)
|
|
||||||
parent::init();
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// PGT I/O
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns the filename corresponding to a PGT Iou.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou.
|
|
||||||
*
|
|
||||||
* @return a filename
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
function getPGTIouFilename($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
$filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
|
|
||||||
phpCAS::traceEnd($filename);
|
|
||||||
return $filename;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
|
|
||||||
* warning on error.
|
|
||||||
*
|
|
||||||
* @param $pgt the PGT
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function write($pgt,$pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
|
||||||
if ( $f=fopen($fname,"w") ) {
|
|
||||||
if ( fputs($f,$pgt) === FALSE ) {
|
|
||||||
phpCAS::error('could not write PGT to `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
fclose($f);
|
|
||||||
} else {
|
|
||||||
phpCAS::error('could not open `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
|
||||||
* corresponding file.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @return the corresponding PGT, or FALSE on error
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function read($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
$pgt = FALSE;
|
|
||||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
|
||||||
if ( !($f=fopen($fname,"r")) ) {
|
|
||||||
phpCAS::trace('could not open `'.$fname.'\'');
|
|
||||||
} else {
|
|
||||||
if ( ($pgt=fgets($f)) === FALSE ) {
|
|
||||||
phpCAS::trace('could not read PGT from `'.$fname.'\'');
|
|
||||||
}
|
|
||||||
fclose($f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// delete the PGT file
|
|
||||||
@unlink($fname);
|
|
||||||
|
|
||||||
phpCAS::traceEnd($pgt);
|
|
||||||
return $pgt;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
@ -1,215 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* * Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
|
|
||||||
* Collaborative nor the names of its contributors may be used to endorse or
|
|
||||||
* promote products derived from this software without specific prior
|
|
||||||
* written permission.
|
|
||||||
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* @file CAS/PGTStorage/pgt-main.php
|
|
||||||
* Basic class for PGT storage
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @class PGTStorage
|
|
||||||
* The PGTStorage class is a generic class for PGT storage. This class should
|
|
||||||
* not be instanciated itself but inherited by specific PGT storage classes.
|
|
||||||
*
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
*
|
|
||||||
* @ingroup internalPGTStorage
|
|
||||||
*/
|
|
||||||
|
|
||||||
class PGTStorage
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @addtogroup internalPGTStorage
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// CONSTRUCTOR
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The constructor of the class, should be called only by inherited classes.
|
|
||||||
*
|
|
||||||
* @param $cas_parent the CASclient instance that creates the current object.
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function PGTStorage($cas_parent)
|
|
||||||
{
|
|
||||||
phpCAS::traceBegin();
|
|
||||||
if ( !$cas_parent->isProxy() ) {
|
|
||||||
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
|
|
||||||
}
|
|
||||||
phpCAS::traceEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// DEBUGGING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method returns an informational string giving the type of storage
|
|
||||||
* used by the object (used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageType()
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method returns an informational string giving informations on the
|
|
||||||
* parameters of the storage.(used for debugging purposes).
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
function getStorageInfo()
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// ERROR HANDLING
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
|
|
||||||
* read by PGTStorage::getErrorMessage().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
var $_error_message=FALSE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method sets en error message, which can be read later by
|
|
||||||
* PGTStorage::getErrorMessage().
|
|
||||||
*
|
|
||||||
* @param $error_message an error message
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
function setErrorMessage($error_message)
|
|
||||||
{
|
|
||||||
$this->_error_message = $error_message;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method returns an error message set by PGTStorage::setErrorMessage().
|
|
||||||
*
|
|
||||||
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
|
|
||||||
* otherwise.
|
|
||||||
*
|
|
||||||
* @public
|
|
||||||
* @deprecated not used.
|
|
||||||
*/
|
|
||||||
function getErrorMessage()
|
|
||||||
{
|
|
||||||
return $this->_error_message;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// INITIALIZATION
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* a boolean telling if the storage has already been initialized. Written by
|
|
||||||
* PGTStorage::init(), read by PGTStorage::isInitialized().
|
|
||||||
*
|
|
||||||
* @hideinitializer
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
var $_initialized = FALSE;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This method tells if the storage has already been intialized.
|
|
||||||
*
|
|
||||||
* @return a boolean
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function isInitialized()
|
|
||||||
{
|
|
||||||
return $this->_initialized;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method initializes the object.
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function init()
|
|
||||||
{
|
|
||||||
$this->_initialized = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ########################################################################
|
|
||||||
// PGT I/O
|
|
||||||
// ########################################################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method stores a PGT and its corresponding PGT Iuo.
|
|
||||||
* @note Should never be called.
|
|
||||||
*
|
|
||||||
* @param $pgt the PGT
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function write($pgt,$pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
|
|
||||||
* the corresponding storage entry.
|
|
||||||
* @note Should never be called.
|
|
||||||
*
|
|
||||||
* @param $pgt_iou the PGT iou
|
|
||||||
*
|
|
||||||
* @protected
|
|
||||||
*/
|
|
||||||
function read($pgt_iou)
|
|
||||||
{
|
|
||||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// include specific PGT storage classes
|
|
||||||
include_once(dirname(__FILE__).'/pgt-file.php');
|
|
||||||
include_once(dirname(__FILE__).'/pgt-db.php');
|
|
||||||
|
|
||||||
?>
|
|
File diff suppressed because it is too large
Load Diff
@ -1,499 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
Requires PHP5, uses built-in DOM extension.
|
|
||||||
To be used in PHP4 scripts using DOMXML extension: allows PHP4/DOMXML scripts to run on PHP5/DOM.
|
|
||||||
(Optional: requires PHP5/XSL extension for domxml_xslt functions, PHP>=5.1 for XPath evaluation functions, and PHP>=5.1/libxml for DOMXML error reports)
|
|
||||||
|
|
||||||
Typical use:
|
|
||||||
{
|
|
||||||
if (PHP_VERSION>='5')
|
|
||||||
require_once('domxml-php4-to-php5.php');
|
|
||||||
}
|
|
||||||
|
|
||||||
Version 1.21, 2008-12-05, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
|
||||||
|
|
||||||
------------------------------------------------------------------
|
|
||||||
Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/
|
|
||||||
|
|
||||||
Copyright 2004-2008, GNU Lesser General Public License,
|
|
||||||
http://www.gnu.org/licenses/lgpl.html
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU Lesser General Public License for more details.
|
|
||||||
You should have received a copy of the GNU Lesser General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/lgpl.html>
|
|
||||||
|
|
||||||
== Rights and obligations ==
|
|
||||||
- Attribution: You must give the original author credit.
|
|
||||||
- Share Alike: If you alter or transform this library,
|
|
||||||
you may distribute the resulting library only under the same license GNU/LGPL.
|
|
||||||
- In case of jurisdiction dispute, the French law is authoritative.
|
|
||||||
- Any of these conditions can be waived if you get permission from Alexandre Alapetite.
|
|
||||||
- Not required, but please send to Alexandre Alapetite the modifications you make,
|
|
||||||
in order to improve this file for the benefit of everybody.
|
|
||||||
|
|
||||||
If you want to distribute this code, please do it as a link to:
|
|
||||||
http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
|
||||||
*/
|
|
||||||
|
|
||||||
define('DOMXML_LOAD_PARSING',0);
|
|
||||||
define('DOMXML_LOAD_VALIDATING',1);
|
|
||||||
define('DOMXML_LOAD_RECOVERING',2);
|
|
||||||
define('DOMXML_LOAD_SUBSTITUTE_ENTITIES',4);
|
|
||||||
//define('DOMXML_LOAD_COMPLETE_ATTRS',8);
|
|
||||||
define('DOMXML_LOAD_DONT_KEEP_BLANKS',16);
|
|
||||||
|
|
||||||
function domxml_new_doc($version) {return new php4DOMDocument();}
|
|
||||||
function domxml_new_xmldoc($version) {return new php4DOMDocument();}
|
|
||||||
function domxml_open_file($filename,$mode=DOMXML_LOAD_PARSING,&$error=null)
|
|
||||||
{
|
|
||||||
$dom=new php4DOMDocument($mode);
|
|
||||||
$errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION');
|
|
||||||
if ($errorMode) libxml_use_internal_errors(true);
|
|
||||||
if (!$dom->myDOMNode->load($filename)) $dom=null;
|
|
||||||
if ($errorMode)
|
|
||||||
{
|
|
||||||
$error=array_map('_error_report',libxml_get_errors());
|
|
||||||
libxml_clear_errors();
|
|
||||||
}
|
|
||||||
return $dom;
|
|
||||||
}
|
|
||||||
function domxml_open_mem($str,$mode=DOMXML_LOAD_PARSING,&$error=null)
|
|
||||||
{
|
|
||||||
$dom=new php4DOMDocument($mode);
|
|
||||||
$errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION');
|
|
||||||
if ($errorMode) libxml_use_internal_errors(true);
|
|
||||||
if (!$dom->myDOMNode->loadXML($str)) $dom=null;
|
|
||||||
if ($errorMode)
|
|
||||||
{
|
|
||||||
$error=array_map('_error_report',libxml_get_errors());
|
|
||||||
libxml_clear_errors();
|
|
||||||
}
|
|
||||||
return $dom;
|
|
||||||
}
|
|
||||||
function html_doc($html_doc,$from_file=false)
|
|
||||||
{
|
|
||||||
$dom=new php4DOMDocument();
|
|
||||||
if ($from_file) $result=$dom->myDOMNode->loadHTMLFile($html_doc);
|
|
||||||
else $result=$dom->myDOMNode->loadHTML($html_doc);
|
|
||||||
return $result ? $dom : null;
|
|
||||||
}
|
|
||||||
function html_doc_file($filename) {return html_doc($filename,true);}
|
|
||||||
function xmldoc($str) {return domxml_open_mem($str);}
|
|
||||||
function xmldocfile($filename) {return domxml_open_file($filename);}
|
|
||||||
function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->xpath_eval($eval_str,$contextnode);}
|
|
||||||
function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);}
|
|
||||||
function xpath_register_ns($xpath_context,$prefix,$namespaceURI) {return $xpath_context->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
|
|
||||||
function _entityDecode($text) {return html_entity_decode(strtr($text,array('''=>'\'')),ENT_QUOTES,'UTF-8');}
|
|
||||||
function _error_report($error) {return array('errormessage'=>$error->message,'nodename'=>'','line'=>$error->line,'col'=>$error->column)+($error->file==''?array():array('directory'=>dirname($error->file),'file'=>basename($error->file)));}
|
|
||||||
|
|
||||||
class php4DOMAttr extends php4DOMNode
|
|
||||||
{
|
|
||||||
function __get($name)
|
|
||||||
{
|
|
||||||
if ($name==='name') return $this->myDOMNode->name;
|
|
||||||
else return parent::__get($name);
|
|
||||||
}
|
|
||||||
function name() {return $this->myDOMNode->name;}
|
|
||||||
function set_content($text) {}
|
|
||||||
//function set_value($content) {return $this->myDOMNode->value=htmlspecialchars($content,ENT_QUOTES);}
|
|
||||||
function specified() {return $this->myDOMNode->specified;}
|
|
||||||
function value() {return $this->myDOMNode->value;}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMDocument extends php4DOMNode
|
|
||||||
{
|
|
||||||
function php4DOMDocument($mode=DOMXML_LOAD_PARSING)
|
|
||||||
{
|
|
||||||
$this->myDOMNode=new DOMDocument();
|
|
||||||
$this->myOwnerDocument=$this;
|
|
||||||
if ($mode & DOMXML_LOAD_VALIDATING) $this->myDOMNode->validateOnParse=true;
|
|
||||||
if ($mode & DOMXML_LOAD_RECOVERING) $this->myDOMNode->recover=true;
|
|
||||||
if ($mode & DOMXML_LOAD_SUBSTITUTE_ENTITIES) $this->myDOMNode->substituteEntities=true;
|
|
||||||
if ($mode & DOMXML_LOAD_DONT_KEEP_BLANKS) $this->myDOMNode->preserveWhiteSpace=false;
|
|
||||||
}
|
|
||||||
function add_root($name)
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild);
|
|
||||||
return new php4DOMElement($this->myDOMNode->appendChild($this->myDOMNode->createElement($name)),$this->myOwnerDocument);
|
|
||||||
}
|
|
||||||
function create_attribute($name,$value)
|
|
||||||
{
|
|
||||||
$myAttr=$this->myDOMNode->createAttribute($name);
|
|
||||||
$myAttr->value=htmlspecialchars($value,ENT_QUOTES);
|
|
||||||
return new php4DOMAttr($myAttr,$this);
|
|
||||||
}
|
|
||||||
function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);}
|
|
||||||
function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);}
|
|
||||||
function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);}
|
|
||||||
function create_element_ns($uri,$name,$prefix=null)
|
|
||||||
{
|
|
||||||
if ($prefix==null) $prefix=$this->myDOMNode->lookupPrefix($uri);
|
|
||||||
if (($prefix==null)&&(($this->myDOMNode->documentElement==null)||(!$this->myDOMNode->documentElement->isDefaultNamespace($uri)))) $prefix='a'.sprintf('%u',crc32($uri));
|
|
||||||
return new php4DOMElement($this->myDOMNode->createElementNS($uri,$prefix==null ? $name : $prefix.':'.$name),$this);
|
|
||||||
}
|
|
||||||
function create_entity_reference($content) {return new php4DOMNode($this->myDOMNode->createEntityReference($content),$this);} //By Walter Ebert 2007-01-22
|
|
||||||
function create_processing_instruction($target,$data=''){return new php4DomProcessingInstruction($this->myDOMNode->createProcessingInstruction($target,$data),$this);}
|
|
||||||
function create_text_node($content) {return new php4DOMText($this->myDOMNode->createTextNode($content),$this);}
|
|
||||||
function document_element() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);}
|
|
||||||
function dump_file($filename,$compressionmode=false,$format=false)
|
|
||||||
{
|
|
||||||
$format0=$this->myDOMNode->formatOutput;
|
|
||||||
$this->myDOMNode->formatOutput=$format;
|
|
||||||
$res=$this->myDOMNode->save($filename);
|
|
||||||
$this->myDOMNode->formatOutput=$format0;
|
|
||||||
return $res;
|
|
||||||
}
|
|
||||||
function dump_mem($format=false,$encoding=false)
|
|
||||||
{
|
|
||||||
$format0=$this->myDOMNode->formatOutput;
|
|
||||||
$this->myDOMNode->formatOutput=$format;
|
|
||||||
$encoding0=$this->myDOMNode->encoding;
|
|
||||||
if ($encoding) $this->myDOMNode->encoding=$encoding;
|
|
||||||
$dump=$this->myDOMNode->saveXML();
|
|
||||||
$this->myDOMNode->formatOutput=$format0;
|
|
||||||
if ($encoding) $this->myDOMNode->encoding= $encoding0=='' ? 'UTF-8' : $encoding0; //UTF-8 is XML default encoding
|
|
||||||
return $dump;
|
|
||||||
}
|
|
||||||
function free()
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild);
|
|
||||||
$this->myDOMNode=null;
|
|
||||||
$this->myOwnerDocument=null;
|
|
||||||
}
|
|
||||||
function get_element_by_id($id) {return parent::_newDOMElement($this->myDOMNode->getElementById($id),$this);}
|
|
||||||
function get_elements_by_tagname($name)
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this);
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function html_dump_mem() {return $this->myDOMNode->saveHTML();}
|
|
||||||
function root() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);}
|
|
||||||
function xinclude() {return $this->myDOMNode->xinclude();}
|
|
||||||
function xpath_new_context() {return new php4DOMXPath($this);}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMElement extends php4DOMNode
|
|
||||||
{
|
|
||||||
function add_namespace($uri,$prefix)
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->hasAttributeNS('http://www.w3.org/2000/xmlns/',$prefix)) return false;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->myDOMNode->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$prefix,$uri); //By Daniel Walker 2006-09-08
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function get_attribute($name) {return $this->myDOMNode->getAttribute($name);}
|
|
||||||
function get_attribute_node($name) {return parent::_newDOMElement($this->myDOMNode->getAttributeNode($name),$this->myOwnerDocument);}
|
|
||||||
function get_elements_by_tagname($name)
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->getElementsByTagName($name);
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument);
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);}
|
|
||||||
function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);}
|
|
||||||
function set_attribute($name,$value)
|
|
||||||
{
|
|
||||||
//return $this->myDOMNode->setAttribute($name,$value); //Does not return a DomAttr
|
|
||||||
$myAttr=$this->myDOMNode->ownerDocument->createAttribute($name);
|
|
||||||
$myAttr->value=htmlspecialchars($value,ENT_QUOTES); //Entity problem reported by AL-DesignWorks 2007-09-07
|
|
||||||
$this->myDOMNode->setAttributeNode($myAttr);
|
|
||||||
return new php4DOMAttr($myAttr,$this->myOwnerDocument);
|
|
||||||
}
|
|
||||||
/*function set_attribute_node($attr)
|
|
||||||
{
|
|
||||||
$this->myDOMNode->setAttributeNode($this->_importNode($attr));
|
|
||||||
return $attr;
|
|
||||||
}*/
|
|
||||||
function set_name($name)
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->prefix=='') $newNode=$this->myDOMNode->ownerDocument->createElement($name);
|
|
||||||
else $newNode=$this->myDOMNode->ownerDocument->createElementNS($this->myDOMNode->namespaceURI,$this->myDOMNode->prefix.':'.$name);
|
|
||||||
$myDOMNodeList=$this->myDOMNode->attributes;
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i++))
|
|
||||||
if ($node->namespaceURI=='') $newNode->setAttribute($node->name,$node->value);
|
|
||||||
else $newNode->setAttributeNS($node->namespaceURI,$node->nodeName,$node->value);
|
|
||||||
$myDOMNodeList=$this->myDOMNode->childNodes;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item(0)) $newNode->appendChild($node);
|
|
||||||
$this->myDOMNode->parentNode->replaceChild($newNode,$this->myDOMNode);
|
|
||||||
$this->myDOMNode=$newNode;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
function tagname() {return $this->tagname;}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMNode
|
|
||||||
{
|
|
||||||
public $myDOMNode;
|
|
||||||
public $myOwnerDocument;
|
|
||||||
function php4DOMNode($aDomNode,$aOwnerDocument)
|
|
||||||
{
|
|
||||||
$this->myDOMNode=$aDomNode;
|
|
||||||
$this->myOwnerDocument=$aOwnerDocument;
|
|
||||||
}
|
|
||||||
function __get($name)
|
|
||||||
{
|
|
||||||
switch ($name)
|
|
||||||
{
|
|
||||||
case 'type': return $this->myDOMNode->nodeType;
|
|
||||||
case 'tagname': return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->tagName; //Avoid namespace prefix for DOMElement
|
|
||||||
case 'content': return $this->myDOMNode->textContent;
|
|
||||||
case 'value': return $this->myDOMNode->value;
|
|
||||||
default:
|
|
||||||
$myErrors=debug_backtrace();
|
|
||||||
trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function add_child($newnode) {return append_child($newnode);}
|
|
||||||
function add_namespace($uri,$prefix) {return false;}
|
|
||||||
function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
|
|
||||||
function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
|
|
||||||
function attributes()
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->attributes;
|
|
||||||
if (!(isset($myDOMNodeList)&&$this->myDOMNode->hasAttributes())) return null;
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument);
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function child_nodes()
|
|
||||||
{
|
|
||||||
$myDOMNodeList=$this->myDOMNode->childNodes;
|
|
||||||
$nodeSet=array();
|
|
||||||
$i=0;
|
|
||||||
if (isset($myDOMNodeList))
|
|
||||||
while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=self::_newDOMElement($node,$this->myOwnerDocument);
|
|
||||||
return $nodeSet;
|
|
||||||
}
|
|
||||||
function children() {return $this->child_nodes();}
|
|
||||||
function clone_node($deep=false) {return self::_newDOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);}
|
|
||||||
//dump_node($node) should only be called on php4DOMDocument
|
|
||||||
function dump_node($node=null) {return $node==null ? $this->myOwnerDocument->myDOMNode->saveXML($this->myDOMNode) : $this->myOwnerDocument->myDOMNode->saveXML($node->myDOMNode);}
|
|
||||||
function first_child() {return self::_newDOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);}
|
|
||||||
function get_content() {return $this->myDOMNode->textContent;}
|
|
||||||
function has_attributes() {return $this->myDOMNode->hasAttributes();}
|
|
||||||
function has_child_nodes() {return $this->myDOMNode->hasChildNodes();}
|
|
||||||
function insert_before($newnode,$refnode) {return self::_newDOMElement($this->myDOMNode->insertBefore($this->_importNode($newnode),$refnode==null?null:$refnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function is_blank_node() {return ($this->myDOMNode->nodeType===XML_TEXT_NODE)&&preg_match('%^\s*$%',$this->myDOMNode->nodeValue);}
|
|
||||||
function last_child() {return self::_newDOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);}
|
|
||||||
function new_child($name,$content)
|
|
||||||
{
|
|
||||||
$mySubNode=$this->myDOMNode->ownerDocument->createElement($name);
|
|
||||||
$mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($content)));
|
|
||||||
$this->myDOMNode->appendChild($mySubNode);
|
|
||||||
return new php4DOMElement($mySubNode,$this->myOwnerDocument);
|
|
||||||
}
|
|
||||||
function next_sibling() {return self::_newDOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);}
|
|
||||||
function node_name() {return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->nodeName;} //Avoid namespace prefix for DOMElement
|
|
||||||
function node_type() {return $this->myDOMNode->nodeType;}
|
|
||||||
function node_value() {return $this->myDOMNode->nodeValue;}
|
|
||||||
function owner_document() {return $this->myOwnerDocument;}
|
|
||||||
function parent_node() {return self::_newDOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);}
|
|
||||||
function prefix() {return $this->myDOMNode->prefix;}
|
|
||||||
function previous_sibling() {return self::_newDOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);}
|
|
||||||
function remove_child($oldchild) {return self::_newDOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function replace_child($newnode,$oldnode) {return self::_newDOMElement($this->myDOMNode->replaceChild($this->_importNode($newnode),$oldnode->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function replace_node($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->replaceChild($this->_importNode($newnode),$this->myDOMNode),$this->myOwnerDocument);}
|
|
||||||
function set_content($text) {return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($text)));} //Entity problem reported by AL-DesignWorks 2007-09-07
|
|
||||||
//function set_name($name) {return $this->myOwnerDocument->renameNode($this->myDOMNode,$this->myDOMNode->namespaceURI,$name);}
|
|
||||||
function set_namespace($uri,$prefix=null)
|
|
||||||
{//Contributions by Daniel Walker 2006-09-08
|
|
||||||
$nsprefix=$this->myDOMNode->lookupPrefix($uri);
|
|
||||||
if ($nsprefix==null)
|
|
||||||
{
|
|
||||||
$nsprefix= $prefix==null ? $nsprefix='a'.sprintf('%u',crc32($uri)) : $prefix;
|
|
||||||
if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE)
|
|
||||||
{
|
|
||||||
if (($prefix!=null)&&$this->myDOMNode->ownerElement->hasAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)&&
|
|
||||||
($this->myDOMNode->ownerElement->getAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)!=$uri))
|
|
||||||
{//Remove namespace
|
|
||||||
$parent=$this->myDOMNode->ownerElement;
|
|
||||||
$parent->removeAttributeNode($this->myDOMNode);
|
|
||||||
$parent->setAttribute($this->myDOMNode->localName,$this->myDOMNode->nodeValue);
|
|
||||||
$this->myDOMNode=$parent->getAttributeNode($this->myDOMNode->localName);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$this->myDOMNode->ownerElement->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$nsprefix,$uri);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE)
|
|
||||||
{
|
|
||||||
$parent=$this->myDOMNode->ownerElement;
|
|
||||||
$parent->removeAttributeNode($this->myDOMNode);
|
|
||||||
$parent->setAttributeNS($uri,$nsprefix.':'.$this->myDOMNode->localName,$this->myDOMNode->nodeValue);
|
|
||||||
$this->myDOMNode=$parent->getAttributeNodeNS($uri,$this->myDOMNode->localName);
|
|
||||||
}
|
|
||||||
elseif ($this->myDOMNode->nodeType===XML_ELEMENT_NODE)
|
|
||||||
{
|
|
||||||
$NewNode=$this->myDOMNode->ownerDocument->createElementNS($uri,$nsprefix.':'.$this->myDOMNode->localName);
|
|
||||||
foreach ($this->myDOMNode->attributes as $n) $NewNode->appendChild($n->cloneNode(true));
|
|
||||||
foreach ($this->myDOMNode->childNodes as $n) $NewNode->appendChild($n->cloneNode(true));
|
|
||||||
$xpath=new DOMXPath($this->myDOMNode->ownerDocument);
|
|
||||||
$myDOMNodeList=$xpath->query('namespace::*[name()!="xml"]',$this->myDOMNode); //Add old namespaces
|
|
||||||
foreach ($myDOMNodeList as $n) $NewNode->setAttributeNS('http://www.w3.org/2000/xmlns/',$n->nodeName,$n->nodeValue);
|
|
||||||
$this->myDOMNode->parentNode->replaceChild($NewNode,$this->myDOMNode);
|
|
||||||
$this->myDOMNode=$NewNode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function unlink_node()
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->parentNode!=null)
|
|
||||||
{
|
|
||||||
if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) $this->myDOMNode->parentNode->removeAttributeNode($this->myDOMNode);
|
|
||||||
else $this->myDOMNode->parentNode->removeChild($this->myDOMNode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
protected function _importNode($newnode) {return $this->myOwnerDocument===$newnode->myOwnerDocument ? $newnode->myDOMNode : $this->myOwnerDocument->myDOMNode->importNode($newnode->myDOMNode,true);} //To import DOMNode from another DOMDocument
|
|
||||||
static function _newDOMElement($aDOMNode,$aOwnerDocument)
|
|
||||||
{//Check the PHP5 DOMNode before creating a new associated PHP4 DOMNode wrapper
|
|
||||||
if ($aDOMNode==null) return null;
|
|
||||||
switch ($aDOMNode->nodeType)
|
|
||||||
{
|
|
||||||
case XML_ELEMENT_NODE: return new php4DOMElement($aDOMNode,$aOwnerDocument);
|
|
||||||
case XML_TEXT_NODE: return new php4DOMText($aDOMNode,$aOwnerDocument);
|
|
||||||
case XML_ATTRIBUTE_NODE: return new php4DOMAttr($aDOMNode,$aOwnerDocument);
|
|
||||||
case XML_PI_NODE: return new php4DomProcessingInstruction($aDOMNode,$aOwnerDocument);
|
|
||||||
default: return new php4DOMNode($aDOMNode,$aOwnerDocument);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DomProcessingInstruction extends php4DOMNode
|
|
||||||
{
|
|
||||||
function data() {return $this->myDOMNode->data;}
|
|
||||||
function target() {return $this->myDOMNode->target;}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMText extends php4DOMNode
|
|
||||||
{
|
|
||||||
function __get($name)
|
|
||||||
{
|
|
||||||
if ($name==='tagname') return '#text';
|
|
||||||
else return parent::__get($name);
|
|
||||||
}
|
|
||||||
function tagname() {return '#text';}
|
|
||||||
function set_content($text) {$this->myDOMNode->nodeValue=$text; return true;}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!defined('XPATH_NODESET'))
|
|
||||||
{
|
|
||||||
define('XPATH_UNDEFINED',0);
|
|
||||||
define('XPATH_NODESET',1);
|
|
||||||
define('XPATH_BOOLEAN',2);
|
|
||||||
define('XPATH_NUMBER',3);
|
|
||||||
define('XPATH_STRING',4);
|
|
||||||
/*define('XPATH_POINT',5);
|
|
||||||
define('XPATH_RANGE',6);
|
|
||||||
define('XPATH_LOCATIONSET',7);
|
|
||||||
define('XPATH_USERS',8);
|
|
||||||
define('XPATH_XSLT_TREE',9);*/
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMNodelist
|
|
||||||
{
|
|
||||||
private $myDOMNodelist;
|
|
||||||
public $nodeset;
|
|
||||||
public $type=XPATH_UNDEFINED;
|
|
||||||
public $value;
|
|
||||||
function php4DOMNodelist($aDOMNodelist,$aOwnerDocument)
|
|
||||||
{
|
|
||||||
if (!isset($aDOMNodelist)) return;
|
|
||||||
elseif (is_object($aDOMNodelist)||is_array($aDOMNodelist))
|
|
||||||
{
|
|
||||||
if ($aDOMNodelist->length>0)
|
|
||||||
{
|
|
||||||
$this->myDOMNodelist=$aDOMNodelist;
|
|
||||||
$this->nodeset=array();
|
|
||||||
$this->type=XPATH_NODESET;
|
|
||||||
$i=0;
|
|
||||||
while ($node=$this->myDOMNodelist->item($i++)) $this->nodeset[]=php4DOMNode::_newDOMElement($node,$aOwnerDocument);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif (is_int($aDOMNodelist)||is_float($aDOMNodelist))
|
|
||||||
{
|
|
||||||
$this->type=XPATH_NUMBER;
|
|
||||||
$this->value=$aDOMNodelist;
|
|
||||||
}
|
|
||||||
elseif (is_bool($aDOMNodelist))
|
|
||||||
{
|
|
||||||
$this->type=XPATH_BOOLEAN;
|
|
||||||
$this->value=$aDOMNodelist;
|
|
||||||
}
|
|
||||||
elseif (is_string($aDOMNodelist))
|
|
||||||
{
|
|
||||||
$this->type=XPATH_STRING;
|
|
||||||
$this->value=$aDOMNodelist;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class php4DOMXPath
|
|
||||||
{
|
|
||||||
public $myDOMXPath;
|
|
||||||
private $myOwnerDocument;
|
|
||||||
function php4DOMXPath($dom_document)
|
|
||||||
{
|
|
||||||
//TODO: If $dom_document is a DomElement, make that default $contextnode and modify XPath. Ex: '/test'
|
|
||||||
$this->myOwnerDocument=$dom_document->myOwnerDocument;
|
|
||||||
$this->myDOMXPath=new DOMXPath($this->myOwnerDocument->myDOMNode);
|
|
||||||
}
|
|
||||||
function xpath_eval($eval_str,$contextnode=null)
|
|
||||||
{
|
|
||||||
if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
|
|
||||||
else $xp=isset($contextnode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
|
|
||||||
$xp=new php4DOMNodelist($xp,$this->myOwnerDocument);
|
|
||||||
return ($xp->type===XPATH_UNDEFINED) ? false : $xp;
|
|
||||||
}
|
|
||||||
function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (extension_loaded('xsl'))
|
|
||||||
{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
|
|
||||||
function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
|
|
||||||
function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
|
|
||||||
function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
|
|
||||||
class php4DomXsltStylesheet
|
|
||||||
{
|
|
||||||
private $myxsltProcessor;
|
|
||||||
function php4DomXsltStylesheet($dom_document)
|
|
||||||
{
|
|
||||||
$this->myxsltProcessor=new xsltProcessor();
|
|
||||||
$this->myxsltProcessor->importStyleSheet($dom_document);
|
|
||||||
}
|
|
||||||
function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false)
|
|
||||||
{
|
|
||||||
foreach ($xslt_parameters as $param=>$value) $this->myxsltProcessor->setParameter('',$param,$value);
|
|
||||||
$myphp4DOMDocument=new php4DOMDocument();
|
|
||||||
$myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode);
|
|
||||||
return $myphp4DOMDocument;
|
|
||||||
}
|
|
||||||
function result_dump_file($dom_document,$filename)
|
|
||||||
{
|
|
||||||
$html=$dom_document->myDOMNode->saveHTML();
|
|
||||||
file_put_contents($filename,$html);
|
|
||||||
return $html;
|
|
||||||
}
|
|
||||||
function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/spanish.php
|
|
||||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'usant servidor',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'Autentificació CAS necessària!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'Sortida de CAS necessària!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'Autentificació CAS fallida!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/english.php
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'using server',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'CAS Authentication wanted!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'CAS logout wanted!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'CAS Authentication failed!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,28 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/english.php
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'utilisant le serveur',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'Authentication CAS n<>cessaire !',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'D<>connexion demand<6E>e !',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'Vous auriez du etre redirig<69>(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'Authentification CAS infructueuse !',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>Vous n\'avez pas <20>t<EFBFBD> authentifi<66>(e).</p><p>Vous pouvez soumettre votre requete <20> nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le probl<62>me persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
|
|
||||||
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/german.php
|
|
||||||
* @author Henrik Genssen <hg at mediafactory.de>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'via Server',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'CAS Authentifizierung erforderlich!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'CAS Abmeldung!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie <a href="%s">hier</a> um fortzufahren.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'CAS Anmeldung fehlgeschlagen!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'Der Dienst `<b>%s</b>\' ist nicht verfügbar (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/greek.php
|
|
||||||
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAS!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> CAS!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> '<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAS. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <a href="%s"><3E><><EFBFBD></a> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> '<27> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CAS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p><3E><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</p><p><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <a href="%s"><3E><><EFBFBD></a>.</p><p><3E><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <a href="mailto:%s"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> '<27> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> `<b>%s</b>\' <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/japanese.php
|
|
||||||
* @author fnorif (fnorif@yahoo.co.jp)
|
|
||||||
*
|
|
||||||
* Now Encoding is EUC-JP and LF
|
|
||||||
**/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'using server',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> 'CAS<41>ˤ<EFBFBD><CBA4>ǧ<EFBFBD>ڤ<EFBFBD>Ԥ<EFBFBD><D4A4>ޤ<EFBFBD>',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> 'CAS<41><53><EFBFBD><EFBFBD>?<3F><><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4>ޤ<EFBFBD>!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'CAS<41><53><EFBFBD><EFBFBD><EFBFBD>Ф˹Ԥ<CBB9>ɬ<EFBFBD>פ<EFBFBD><D7A4><EFBFBD><EFBFBD><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>ưŪ<C6B0><C5AA>ž<EFBFBD><C5BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD><EFBFBD> <a href="%s"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a> <20><EFBFBD>å<EFBFBD><C3A5><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD>Ԥ<EFBFBD><D4A4>ޤ<EFBFBD><DEA4><EFBFBD>',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> 'CAS<41>ˤ<EFBFBD><CBA4>ǧ<EFBFBD>ڤ˼<DAA4><CBBC>Ԥ<EFBFBD><D4A4>ޤ<EFBFBD><DEA4><EFBFBD>',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>ǧ<>ڤǤ<DAA4><C7A4>ޤ<EFBFBD><DEA4><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>.</p><p><3E>⤦<EFBFBD><E2A4A6><EFBFBD>٥ꥯ<D9A5><EAA5AF><EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><C8A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><a href="%s"><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></a><3E><EFBFBD>å<EFBFBD>.</p><p><3E><><EFBFBD>꤬<EFBFBD><EAA4AC>褷<EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD><EFBFBD> <a href="mailto:%s"><3E><><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>Ȥδ<C8A4><CEB4><EFBFBD><EFBFBD></a><3E><><EFBFBD>䤤<EFBFBD><E4A4A4>碌<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> '<27><><EFBFBD><EFBFBD><EFBFBD>ӥ<EFBFBD> `<b>%s</b>\' <20><><EFBFBD><EFBFBD><EFBFBD>ѤǤ<D1A4><C7A4>ޤ<EFBFBD><DEA4><EFBFBD> (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/languages.php
|
|
||||||
* Internationalization constants
|
|
||||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
//@{
|
|
||||||
/**
|
|
||||||
* a phpCAS string index
|
|
||||||
*/
|
|
||||||
define("CAS_STR_USING_SERVER", 1);
|
|
||||||
define("CAS_STR_AUTHENTICATION_WANTED", 2);
|
|
||||||
define("CAS_STR_LOGOUT", 3);
|
|
||||||
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
|
|
||||||
define("CAS_STR_AUTHENTICATION_FAILED", 5);
|
|
||||||
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
|
|
||||||
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
|
|
||||||
//@}
|
|
||||||
|
|
||||||
?>
|
|
@ -1,27 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @file languages/spanish.php
|
|
||||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
|
||||||
* @sa @link internalLang Internationalization @endlink
|
|
||||||
* @ingroup internalLang
|
|
||||||
*/
|
|
||||||
|
|
||||||
$this->_strings = array(
|
|
||||||
CAS_STR_USING_SERVER
|
|
||||||
=> 'usando servidor',
|
|
||||||
CAS_STR_AUTHENTICATION_WANTED
|
|
||||||
=> '¡Autentificación CAS necesaria!',
|
|
||||||
CAS_STR_LOGOUT
|
|
||||||
=> '¡Salida CAS necesaria!',
|
|
||||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
|
||||||
=> 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.',
|
|
||||||
CAS_STR_AUTHENTICATION_FAILED
|
|
||||||
=> '¡Autentificación CAS fallida!',
|
|
||||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
|
||||||
=> '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>',
|
|
||||||
CAS_STR_SERVICE_UNAVAILABLE
|
|
||||||
=> 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).'
|
|
||||||
);
|
|
||||||
|
|
||||||
?>
|
|
7
vendor/apereo/phpcas/.gitattributes
vendored
Normal file
7
vendor/apereo/phpcas/.gitattributes
vendored
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
/docs/ export-ignore
|
||||||
|
/test/ export-ignore
|
||||||
|
/utils/ export-ignore
|
||||||
|
/.buildpath export-ignore
|
||||||
|
/.gitignore export-ignore
|
||||||
|
/.project export-ignore
|
||||||
|
/.travis.yml export-ignore
|
30
vendor/apereo/phpcas/CAS.php
vendored
Normal file
30
vendor/apereo/phpcas/CAS.php
vendored
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once dirname(__FILE__).'/source/CAS.php';
|
201
vendor/apereo/phpcas/LICENSE
vendored
Normal file
201
vendor/apereo/phpcas/LICENSE
vendored
Normal file
@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
81
vendor/apereo/phpcas/NOTICE
vendored
Normal file
81
vendor/apereo/phpcas/NOTICE
vendored
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
Copyright 2007-2011, JA-SIG, Inc.
|
||||||
|
This project includes software developed by Jasig.
|
||||||
|
http://www.jasig.org/
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this software except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at:
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
===========================================================================
|
||||||
|
|
||||||
|
Copyright © 2003-2007, The ESUP-Portail consortium
|
||||||
|
|
||||||
|
Requirements for sources originally licensed under the New BSD License:
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
- Redistributions of source code must retain the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
- Redistributions in binary form must reproduce the above copyright notice,
|
||||||
|
this list of conditions and the following disclaimer in the documentation
|
||||||
|
and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
- Neither the name of JA-SIG, Inc. nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
===========================================================================
|
||||||
|
|
||||||
|
Copyright (c) 2009, Regents of the University of Nebraska
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Requirements for CAS_Autloader originally licensed under the New BSD License:
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without modification,
|
||||||
|
are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
Redistributions of source code must retain the above copyright notice, this list
|
||||||
|
of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
Redistributions in binary form must reproduce the above copyright notice, this
|
||||||
|
list of conditions and the following disclaimer in the documentation and/or
|
||||||
|
other materials provided with the distribution.
|
||||||
|
|
||||||
|
Neither the name of the University of Nebraska nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software without
|
||||||
|
specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
36
vendor/apereo/phpcas/README.md
vendored
Normal file
36
vendor/apereo/phpcas/README.md
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
phpCAS
|
||||||
|
=======
|
||||||
|
|
||||||
|
phpCAS is an authentication library that allows PHP applications to easily authenticate
|
||||||
|
users via a Central Authentication Service (CAS) server.
|
||||||
|
|
||||||
|
Please see the wiki website for more information:
|
||||||
|
|
||||||
|
https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
|
||||||
|
Api documentation can be found here:
|
||||||
|
|
||||||
|
https://apereo.github.io/phpCAS/
|
||||||
|
|
||||||
|
|
||||||
|
[![Build Status](https://travis-ci.org/apereo/phpCAS.png)](https://travis-ci.org/apereo/phpCAS)
|
||||||
|
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
-------
|
||||||
|
|
||||||
|
Copyright 2007-2015, JA-SIG, Inc.
|
||||||
|
This project includes software developed by Jasig.
|
||||||
|
http://www.jasig.org/
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this software except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at:
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
29
vendor/apereo/phpcas/composer.json
vendored
Normal file
29
vendor/apereo/phpcas/composer.json
vendored
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "apereo/phpcas",
|
||||||
|
"description": "Provides a simple API for authenticating users against a CAS server",
|
||||||
|
"keywords": ["cas", "jasig", "apereo"],
|
||||||
|
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
||||||
|
"type": "library",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"authors": [
|
||||||
|
{"name": "Joachim Fritschi", "homepage": "https://wiki.jasig.org/display/~fritschi"},
|
||||||
|
{"name": "Adam Franco", "homepage": "https://wiki.jasig.org/display/~adamfranco"}
|
||||||
|
],
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.4.0",
|
||||||
|
"ext-curl": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~3.7.10"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"source/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3.x-dev"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2034
vendor/apereo/phpcas/source/CAS.php
vendored
Normal file
2034
vendor/apereo/phpcas/source/CAS.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
111
vendor/apereo/phpcas/source/CAS/AuthenticationException.php
vendored
Normal file
111
vendor/apereo/phpcas/source/CAS/AuthenticationException.php
vendored
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/AuthenticationException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines methods that allow proxy-authenticated service handlers
|
||||||
|
* to interact with phpCAS.
|
||||||
|
*
|
||||||
|
* Proxy service handlers must implement this interface as well as call
|
||||||
|
* phpCAS::initializeProxiedService($this) at some point in their implementation.
|
||||||
|
*
|
||||||
|
* While not required, proxy-authenticated service handlers are encouraged to
|
||||||
|
* implement the CAS_ProxiedService_Testable interface to facilitate unit testing.
|
||||||
|
*
|
||||||
|
* @class CAS_AuthenticationException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_AuthenticationException
|
||||||
|
extends RuntimeException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to print the HTML output when the user was not
|
||||||
|
* authenticated.
|
||||||
|
*
|
||||||
|
* @param CAS_Client $client phpcas client
|
||||||
|
* @param string $failure the failure that occured
|
||||||
|
* @param string $cas_url the URL the CAS server was asked for
|
||||||
|
* @param bool $no_response the response from the CAS server (other
|
||||||
|
* parameters are ignored if TRUE)
|
||||||
|
* @param bool $bad_response bad response from the CAS server ($err_code
|
||||||
|
* and $err_msg ignored if TRUE)
|
||||||
|
* @param string $cas_response the response of the CAS server
|
||||||
|
* @param int $err_code the error code given by the CAS server
|
||||||
|
* @param string $err_msg the error message given by the CAS server
|
||||||
|
*/
|
||||||
|
public function __construct($client,$failure,$cas_url,$no_response,
|
||||||
|
$bad_response=false,$cas_response='',$err_code=-1,$err_msg=''
|
||||||
|
) {
|
||||||
|
$messages = array();
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$lang = $client->getLangObj();
|
||||||
|
$client->printHTMLHeader($lang->getAuthenticationFailed());
|
||||||
|
printf(
|
||||||
|
$lang->getYouWereNotAuthenticated(),
|
||||||
|
htmlentities($client->getURL()),
|
||||||
|
isset($_SERVER['SERVER_ADMIN']) ? $_SERVER['SERVER_ADMIN']:''
|
||||||
|
);
|
||||||
|
phpCAS::trace($messages[] = 'CAS URL: '.$cas_url);
|
||||||
|
phpCAS::trace($messages[] = 'Authentication failure: '.$failure);
|
||||||
|
if ( $no_response ) {
|
||||||
|
phpCAS::trace($messages[] = 'Reason: no response from the CAS server');
|
||||||
|
} else {
|
||||||
|
if ( $bad_response ) {
|
||||||
|
phpCAS::trace($messages[] = 'Reason: bad response from the CAS server');
|
||||||
|
} else {
|
||||||
|
switch ($client->getServerVersion()) {
|
||||||
|
case CAS_VERSION_1_0:
|
||||||
|
phpCAS::trace($messages[] = 'Reason: CAS error');
|
||||||
|
break;
|
||||||
|
case CAS_VERSION_2_0:
|
||||||
|
case CAS_VERSION_3_0:
|
||||||
|
if ( $err_code === -1 ) {
|
||||||
|
phpCAS::trace($messages[] = 'Reason: no CAS error');
|
||||||
|
} else {
|
||||||
|
phpCAS::trace($messages[] = 'Reason: ['.$err_code.'] CAS error: '.$err_msg);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
phpCAS::trace($messages[] = 'CAS response: '.$cas_response);
|
||||||
|
}
|
||||||
|
$client->printHTMLFooter();
|
||||||
|
phpCAS::traceExit();
|
||||||
|
|
||||||
|
parent::__construct(implode("\n", $messages));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
90
vendor/apereo/phpcas/source/CAS/Autoload.php
vendored
Normal file
90
vendor/apereo/phpcas/source/CAS/Autoload.php
vendored
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autoloader Class
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Autoload.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package SimpleCAS
|
||||||
|
* @author Brett Bieber <brett.bieber@gmail.com>
|
||||||
|
* @copyright 2008 Regents of the University of Nebraska
|
||||||
|
* @license http://www1.unl.edu/wdn/wiki/Software_License BSD License
|
||||||
|
* @link http://code.google.com/p/simplecas/
|
||||||
|
**/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Autoload a class
|
||||||
|
*
|
||||||
|
* @param string $class Classname to load
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
function CAS_autoload($class)
|
||||||
|
{
|
||||||
|
// Static to hold the Include Path to CAS
|
||||||
|
static $include_path;
|
||||||
|
// Check only for CAS classes
|
||||||
|
if (substr($class, 0, 4) !== 'CAS_') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Setup the include path if it's not already set from a previous call
|
||||||
|
if (empty($include_path)) {
|
||||||
|
$include_path = array(dirname(dirname(__FILE__)), dirname(dirname(__FILE__)) . '/../test/' );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Declare local variable to store the expected full path to the file
|
||||||
|
|
||||||
|
foreach ($include_path as $path) {
|
||||||
|
$file_path = $path . '/' . str_replace('_', '/', $class) . '.php';
|
||||||
|
$fp = @fopen($file_path, 'r', true);
|
||||||
|
if ($fp) {
|
||||||
|
fclose($fp);
|
||||||
|
include $file_path;
|
||||||
|
if (!class_exists($class, false) && !interface_exists($class, false)) {
|
||||||
|
die(
|
||||||
|
new Exception(
|
||||||
|
'Class ' . $class . ' was not present in ' .
|
||||||
|
$file_path .
|
||||||
|
' [CAS_autoload]'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$e = new Exception(
|
||||||
|
'Class ' . $class . ' could not be loaded from ' .
|
||||||
|
$file_path . ', file does not exist (Path="'
|
||||||
|
. implode(':', $include_path) .'") [CAS_autoload]'
|
||||||
|
);
|
||||||
|
$trace = $e->getTrace();
|
||||||
|
if (isset($trace[2]) && isset($trace[2]['function'])
|
||||||
|
&& in_array($trace[2]['function'], array('class_exists', 'interface_exists'))
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (isset($trace[1]) && isset($trace[1]['function'])
|
||||||
|
&& in_array($trace[1]['function'], array('class_exists', 'interface_exists'))
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
die ((string) $e);
|
||||||
|
}
|
||||||
|
|
||||||
|
// set up __autoload
|
||||||
|
if (!(spl_autoload_functions())
|
||||||
|
|| !in_array('CAS_autoload', spl_autoload_functions())
|
||||||
|
) {
|
||||||
|
spl_autoload_register('CAS_autoload');
|
||||||
|
if (function_exists('__autoload')
|
||||||
|
&& !in_array('__autoload', spl_autoload_functions())
|
||||||
|
) {
|
||||||
|
// __autoload() was being used, but now would be ignored, add
|
||||||
|
// it to the autoload stack
|
||||||
|
spl_autoload_register('__autoload');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
3947
vendor/apereo/phpcas/source/CAS/Client.php
vendored
Normal file
3947
vendor/apereo/phpcas/source/CAS/Client.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
384
vendor/apereo/phpcas/source/CAS/CookieJar.php
vendored
Normal file
384
vendor/apereo/phpcas/source/CAS/CookieJar.php
vendored
Normal file
@ -0,0 +1,384 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/CookieJar.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class provides access to service cookies and handles parsing of response
|
||||||
|
* headers to pull out cookie values.
|
||||||
|
*
|
||||||
|
* @class CAS_CookieJar
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_CookieJar
|
||||||
|
{
|
||||||
|
|
||||||
|
private $_cookies;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new cookie jar by passing it a reference to an array in which it
|
||||||
|
* should store cookies.
|
||||||
|
*
|
||||||
|
* @param array &$storageArray Array to store cookies
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct (array &$storageArray)
|
||||||
|
{
|
||||||
|
$this->_cookies =& $storageArray;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store cookies for a web service request.
|
||||||
|
* Cookie storage is based on RFC 2965: http://www.ietf.org/rfc/rfc2965.txt
|
||||||
|
*
|
||||||
|
* @param string $request_url The URL that generated the response headers.
|
||||||
|
* @param array $response_headers An array of the HTTP response header strings.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
public function storeCookies ($request_url, $response_headers)
|
||||||
|
{
|
||||||
|
$urlParts = parse_url($request_url);
|
||||||
|
$defaultDomain = $urlParts['host'];
|
||||||
|
|
||||||
|
$cookies = $this->parseCookieHeaders($response_headers, $defaultDomain);
|
||||||
|
|
||||||
|
foreach ($cookies as $cookie) {
|
||||||
|
// Enforce the same-origin policy by verifying that the cookie
|
||||||
|
// would match the url that is setting it
|
||||||
|
if (!$this->cookieMatchesTarget($cookie, $urlParts)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the cookie
|
||||||
|
$this->storeCookie($cookie);
|
||||||
|
|
||||||
|
phpCAS::trace($cookie['name'].' -> '.$cookie['value']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve cookies applicable for a web service request.
|
||||||
|
* Cookie applicability is based on RFC 2965: http://www.ietf.org/rfc/rfc2965.txt
|
||||||
|
*
|
||||||
|
* @param string $request_url The url that the cookies will be for.
|
||||||
|
*
|
||||||
|
* @return array An array containing cookies. E.g. array('name' => 'val');
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
public function getCookies ($request_url)
|
||||||
|
{
|
||||||
|
if (!count($this->_cookies)) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If our request URL can't be parsed, no cookies apply.
|
||||||
|
$target = parse_url($request_url);
|
||||||
|
if ($target === false) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->expireCookies();
|
||||||
|
|
||||||
|
$matching_cookies = array();
|
||||||
|
foreach ($this->_cookies as $key => $cookie) {
|
||||||
|
if ($this->cookieMatchesTarget($cookie, $target)) {
|
||||||
|
$matching_cookies[$cookie['name']] = $cookie['value'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $matching_cookies;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse Cookies without PECL
|
||||||
|
* From the comments in http://php.net/manual/en/function.http-parse-cookie.php
|
||||||
|
*
|
||||||
|
* @param array $header array of header lines.
|
||||||
|
* @param string $defaultDomain The domain to use if none is specified in
|
||||||
|
* the cookie.
|
||||||
|
*
|
||||||
|
* @return array of cookies
|
||||||
|
*/
|
||||||
|
protected function parseCookieHeaders( $header, $defaultDomain )
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$cookies = array();
|
||||||
|
foreach ( $header as $line ) {
|
||||||
|
if ( preg_match('/^Set-Cookie2?: /i', $line)) {
|
||||||
|
$cookies[] = $this->parseCookieHeader($line, $defaultDomain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
phpCAS::traceEnd($cookies);
|
||||||
|
return $cookies;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a single cookie header line.
|
||||||
|
*
|
||||||
|
* Based on RFC2965 http://www.ietf.org/rfc/rfc2965.txt
|
||||||
|
*
|
||||||
|
* @param string $line The header line.
|
||||||
|
* @param string $defaultDomain The domain to use if none is specified in
|
||||||
|
* the cookie.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function parseCookieHeader ($line, $defaultDomain)
|
||||||
|
{
|
||||||
|
if (!$defaultDomain) {
|
||||||
|
throw new CAS_InvalidArgumentException(
|
||||||
|
'$defaultDomain was not provided.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set our default values
|
||||||
|
$cookie = array(
|
||||||
|
'domain' => $defaultDomain,
|
||||||
|
'path' => '/',
|
||||||
|
'secure' => false,
|
||||||
|
);
|
||||||
|
|
||||||
|
$line = preg_replace('/^Set-Cookie2?: /i', '', trim($line));
|
||||||
|
|
||||||
|
// trim any trailing semicolons.
|
||||||
|
$line = trim($line, ';');
|
||||||
|
|
||||||
|
phpCAS::trace("Cookie Line: $line");
|
||||||
|
|
||||||
|
// This implementation makes the assumption that semicolons will not
|
||||||
|
// be present in quoted attribute values. While attribute values that
|
||||||
|
// contain semicolons are allowed by RFC2965, they are hopefully rare
|
||||||
|
// enough to ignore for our purposes. Most browsers make the same
|
||||||
|
// assumption.
|
||||||
|
$attributeStrings = explode(';', $line);
|
||||||
|
|
||||||
|
foreach ( $attributeStrings as $attributeString ) {
|
||||||
|
// split on the first equals sign and use the rest as value
|
||||||
|
$attributeParts = explode('=', $attributeString, 2);
|
||||||
|
|
||||||
|
$attributeName = trim($attributeParts[0]);
|
||||||
|
$attributeNameLC = strtolower($attributeName);
|
||||||
|
|
||||||
|
if (isset($attributeParts[1])) {
|
||||||
|
$attributeValue = trim($attributeParts[1]);
|
||||||
|
// Values may be quoted strings.
|
||||||
|
if (strpos($attributeValue, '"') === 0) {
|
||||||
|
$attributeValue = trim($attributeValue, '"');
|
||||||
|
// unescape any escaped quotes:
|
||||||
|
$attributeValue = str_replace('\"', '"', $attributeValue);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$attributeValue = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($attributeNameLC) {
|
||||||
|
case 'expires':
|
||||||
|
$cookie['expires'] = strtotime($attributeValue);
|
||||||
|
break;
|
||||||
|
case 'max-age':
|
||||||
|
$cookie['max-age'] = (int)$attributeValue;
|
||||||
|
// Set an expiry time based on the max-age
|
||||||
|
if ($cookie['max-age']) {
|
||||||
|
$cookie['expires'] = time() + $cookie['max-age'];
|
||||||
|
} else {
|
||||||
|
// If max-age is zero, then the cookie should be removed
|
||||||
|
// imediately so set an expiry before now.
|
||||||
|
$cookie['expires'] = time() - 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'secure':
|
||||||
|
$cookie['secure'] = true;
|
||||||
|
break;
|
||||||
|
case 'domain':
|
||||||
|
case 'path':
|
||||||
|
case 'port':
|
||||||
|
case 'version':
|
||||||
|
case 'comment':
|
||||||
|
case 'commenturl':
|
||||||
|
case 'discard':
|
||||||
|
case 'httponly':
|
||||||
|
$cookie[$attributeNameLC] = $attributeValue;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$cookie['name'] = $attributeName;
|
||||||
|
$cookie['value'] = $attributeValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add, update, or remove a cookie.
|
||||||
|
*
|
||||||
|
* @param array $cookie A cookie array as created by parseCookieHeaders()
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
protected function storeCookie ($cookie)
|
||||||
|
{
|
||||||
|
// Discard any old versions of this cookie.
|
||||||
|
$this->discardCookie($cookie);
|
||||||
|
$this->_cookies[] = $cookie;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discard an existing cookie
|
||||||
|
*
|
||||||
|
* @param array $cookie An cookie
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
protected function discardCookie ($cookie)
|
||||||
|
{
|
||||||
|
if (!isset($cookie['domain'])
|
||||||
|
|| !isset($cookie['path'])
|
||||||
|
|| !isset($cookie['path'])
|
||||||
|
) {
|
||||||
|
throw new CAS_InvalidArgumentException('Invalid Cookie array passed.');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($this->_cookies as $key => $old_cookie) {
|
||||||
|
if ( $cookie['domain'] == $old_cookie['domain']
|
||||||
|
&& $cookie['path'] == $old_cookie['path']
|
||||||
|
&& $cookie['name'] == $old_cookie['name']
|
||||||
|
) {
|
||||||
|
unset($this->_cookies[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Go through our stored cookies and remove any that are expired.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @access protected
|
||||||
|
*/
|
||||||
|
protected function expireCookies ()
|
||||||
|
{
|
||||||
|
foreach ($this->_cookies as $key => $cookie) {
|
||||||
|
if (isset($cookie['expires']) && $cookie['expires'] < time()) {
|
||||||
|
unset($this->_cookies[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer true if cookie is applicable to a target.
|
||||||
|
*
|
||||||
|
* @param array $cookie An array of cookie attributes.
|
||||||
|
* @param array|false $target An array of URL attributes as generated by parse_url().
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
* @access private
|
||||||
|
*/
|
||||||
|
protected function cookieMatchesTarget ($cookie, $target)
|
||||||
|
{
|
||||||
|
if (!is_array($target)) {
|
||||||
|
throw new CAS_InvalidArgumentException(
|
||||||
|
'$target must be an array of URL attributes as generated by parse_url().'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!isset($target['host'])) {
|
||||||
|
throw new CAS_InvalidArgumentException(
|
||||||
|
'$target must be an array of URL attributes as generated by parse_url().'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify that the scheme matches
|
||||||
|
if ($cookie['secure'] && $target['scheme'] != 'https') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify that the host matches
|
||||||
|
// Match domain and mulit-host cookies
|
||||||
|
if (strpos($cookie['domain'], '.') === 0) {
|
||||||
|
// .host.domain.edu cookies are valid for host.domain.edu
|
||||||
|
if (substr($cookie['domain'], 1) == $target['host']) {
|
||||||
|
// continue with other checks
|
||||||
|
} else {
|
||||||
|
// non-exact host-name matches.
|
||||||
|
// check that the target host a.b.c.edu is within .b.c.edu
|
||||||
|
$pos = strripos($target['host'], $cookie['domain']);
|
||||||
|
if (!$pos) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// verify that the cookie domain is the last part of the host.
|
||||||
|
if ($pos + strlen($cookie['domain']) != strlen($target['host'])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// verify that the host name does not contain interior dots as per
|
||||||
|
// RFC 2965 section 3.3.2 Rejecting Cookies
|
||||||
|
// http://www.ietf.org/rfc/rfc2965.txt
|
||||||
|
$hostname = substr($target['host'], 0, $pos);
|
||||||
|
if (strpos($hostname, '.') !== false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// If the cookie host doesn't begin with '.',
|
||||||
|
// the host must case-insensitive match exactly
|
||||||
|
if (strcasecmp($target['host'], $cookie['domain']) !== 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify that the port matches
|
||||||
|
if (isset($cookie['ports'])
|
||||||
|
&& !in_array($target['port'], $cookie['ports'])
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify that the path matches
|
||||||
|
if (strpos($target['path'], $cookie['path']) !== 0) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
59
vendor/apereo/phpcas/source/CAS/Exception.php
vendored
Normal file
59
vendor/apereo/phpcas/source/CAS/Exception.php
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Exception.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A root exception interface for all exceptions in phpCAS.
|
||||||
|
*
|
||||||
|
* All exceptions thrown in phpCAS should implement this interface to allow them
|
||||||
|
* to be caught as a category by clients. Each phpCAS exception should extend
|
||||||
|
* an appropriate SPL exception class that best fits its type.
|
||||||
|
*
|
||||||
|
* For example, an InvalidArgumentException in phpCAS should be defined as
|
||||||
|
*
|
||||||
|
* class CAS_InvalidArgumentException
|
||||||
|
* extends InvalidArgumentException
|
||||||
|
* implements CAS_Exception
|
||||||
|
* { }
|
||||||
|
*
|
||||||
|
* This definition allows the CAS_InvalidArgumentException to be caught as either
|
||||||
|
* an InvalidArgumentException or as a CAS_Exception.
|
||||||
|
*
|
||||||
|
* @class CAS_Exception
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
interface CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
86
vendor/apereo/phpcas/source/CAS/GracefullTerminationException.php
vendored
Normal file
86
vendor/apereo/phpcas/source/CAS/GracefullTerminationException.php
vendored
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/GracefullTerminationException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An exception for terminatinating execution or to throw for unit testing
|
||||||
|
*
|
||||||
|
* @class CAS_GracefullTerminationException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_GracefullTerminationException
|
||||||
|
extends RuntimeException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test if exceptions should be thrown or if we should just exit.
|
||||||
|
* In production usage we want to just exit cleanly when prompting the user
|
||||||
|
* for a redirect without filling the error logs with uncaught exceptions.
|
||||||
|
* In unit testing scenarios we cannot exit or we won't be able to continue
|
||||||
|
* with our tests.
|
||||||
|
*
|
||||||
|
* @param string $message Message Text
|
||||||
|
* @param int $code Error code
|
||||||
|
*
|
||||||
|
* @return self
|
||||||
|
*/
|
||||||
|
public function __construct ($message = 'Terminate Gracefully', $code = 0)
|
||||||
|
{
|
||||||
|
// Exit cleanly to avoid filling up the logs with uncaught exceptions.
|
||||||
|
if (self::$_exitWhenThrown) {
|
||||||
|
exit;
|
||||||
|
} else {
|
||||||
|
// Throw exceptions to allow unit testing to continue;
|
||||||
|
parent::__construct($message, $code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static $_exitWhenThrown = true;
|
||||||
|
/**
|
||||||
|
* Force phpcas to thow Exceptions instead of calling exit()
|
||||||
|
* Needed for unit testing. Generally shouldn't be used in production due to
|
||||||
|
* an increase in Apache error logging if CAS_GracefulTerminiationExceptions
|
||||||
|
* are not caught and handled.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function throwInsteadOfExiting()
|
||||||
|
{
|
||||||
|
self::$_exitWhenThrown = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
46
vendor/apereo/phpcas/source/CAS/InvalidArgumentException.php
vendored
Normal file
46
vendor/apereo/phpcas/source/CAS/InvalidArgumentException.php
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/InvalidArgumentException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception that denotes invalid arguments were passed.
|
||||||
|
*
|
||||||
|
* @class CAS_InvalidArgumentException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_InvalidArgumentException
|
||||||
|
extends InvalidArgumentException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
114
vendor/apereo/phpcas/source/CAS/Languages/Catalan.php
vendored
Normal file
114
vendor/apereo/phpcas/source/CAS/Languages/Catalan.php
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/Catalan.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Iván-Benjamín García Torà <ivaniclixx@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Catalan language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_Catalan
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Iván-Benjamín García Torà <ivaniclixx@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_Catalan implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'usant servidor';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'Autentificació CAS necessària!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'Sortida de CAS necessària!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'Autentificació CAS fallida!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).';
|
||||||
|
}
|
||||||
|
}
|
114
vendor/apereo/phpcas/source/CAS/Languages/ChineseSimplified.php
vendored
Normal file
114
vendor/apereo/phpcas/source/CAS/Languages/ChineseSimplified.php
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/ChineseSimplified.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>, Phy25 <caslang@phy25.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chinese Simplified language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_ChineseSimplified
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>, Phy25 <caslang@phy25.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_ChineseSimplified implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return '连接的服务器';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return '请进行 CAS 认证!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return '请进行 CAS 登出!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return '你正被重定向到 CAS 服务器。<a href="%s">点击这里</a>继续。';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'CAS 认证失败!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>你没有成功登录。</p><p>你可以<a href="%s">点击这里重新登录</a>。</p><p>如果问题依然存在,请<a href="mailto:%s">联系本站管理员</a>。</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return '服务器 <b>%s</b> 不可用(<b>%s</b>)。';
|
||||||
|
}
|
||||||
|
}
|
114
vendor/apereo/phpcas/source/CAS/Languages/English.php
vendored
Normal file
114
vendor/apereo/phpcas/source/CAS/Languages/English.php
vendored
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/English.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* English language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_English
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_English implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'using server';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'CAS Authentication wanted!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'CAS logout wanted!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'CAS Authentication failed!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'The service `<b>%s</b>\' is not available (<b>%s</b>).';
|
||||||
|
}
|
||||||
|
}
|
116
vendor/apereo/phpcas/source/CAS/Languages/French.php
vendored
Normal file
116
vendor/apereo/phpcas/source/CAS/Languages/French.php
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/French.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* French language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_French
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_French implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'utilisant le serveur';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'Authentication CAS nécessaire !';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'Déconnexion demandée !';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'Vous auriez du etre redirigé(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'Authentification CAS infructueuse !';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>Vous n\'avez pas été authentifié(e).</p><p>Vous pouvez soumettre votre requete à nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le problème persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
116
vendor/apereo/phpcas/source/CAS/Languages/German.php
vendored
Normal file
116
vendor/apereo/phpcas/source/CAS/Languages/German.php
vendored
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/German.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Henrik Genssen <hg@mediafactory.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* German language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_German
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Henrik Genssen <hg@mediafactory.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_German implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'via Server';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'CAS Authentifizierung erforderlich!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'CAS Abmeldung!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie <a href="%s">hier</a> um fortzufahren.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'CAS Anmeldung fehlgeschlagen!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontaktieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'Der Dienst `<b>%s</b>\' ist nicht verfügbar (<b>%s</b>).';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
115
vendor/apereo/phpcas/source/CAS/Languages/Greek.php
vendored
Normal file
115
vendor/apereo/phpcas/source/CAS/Languages/Greek.php
vendored
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/Greek.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Vangelis Haniotakis <haniotak@ucnet.uoc.gr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Greek language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_Greek
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Vangelis Haniotakis <haniotak@ucnet.uoc.gr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_Greek implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'χρησιμοποιείται ο εξυπηρετητής';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'Απαιτείται η ταυτοποίηση CAS!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'Απαιτείται η αποσύνδεση από CAS!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'Θα έπρεπε να είχατε ανακατευθυνθεί στον εξυπηρετητή CAS. Κάντε κλίκ <a href="%s">εδώ</a> για να συνεχίσετε.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'Η ταυτοποίηση CAS απέτυχε!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>Δεν ταυτοποιηθήκατε.</p><p>Μπορείτε να ξαναπροσπαθήσετε, κάνοντας κλίκ <a href="%s">εδώ</a>.</p><p>Εαν το πρόβλημα επιμείνει, ελάτε σε επαφή με τον <a href="mailto:%s">διαχειριστή</a>.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'Η υπηρεσία `<b>%s</b>\' δεν είναι διαθέσιμη (<b>%s</b>).';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
113
vendor/apereo/phpcas/source/CAS/Languages/Japanese.php
vendored
Normal file
113
vendor/apereo/phpcas/source/CAS/Languages/Japanese.php
vendored
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/Japanese.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author fnorif <fnorif@yahoo.co.jp>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Japanese language class. Now Encoding is UTF-8.
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_Japanese
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author fnorif <fnorif@yahoo.co.jp>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
class CAS_Languages_Japanese implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'サーバーを使っています。';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return 'CASによる認証を行います。';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return 'CASからログアウトします!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'CASサーバに行く必要があります。自動的に転送されない場合は <a href="%s">こちら</a> をクリックして続行します。';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return 'CASによる認証に失敗しました。';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>認証できませんでした。</p><p>もう一度リクエストを送信する場合は<a href="%s">こちら</a>をクリック。</p><p>問題が解決しない場合は <a href="mailto:%s">このサイトの管理者</a>に問い合わせてください。</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'サービス `<b>%s</b>\' は利用できません (<b>%s</b>)。';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
96
vendor/apereo/phpcas/source/CAS/Languages/LanguageInterface.php
vendored
Normal file
96
vendor/apereo/phpcas/source/CAS/Languages/LanguageInterface.php
vendored
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/LanguageInterface.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Language Interface class for all internationalization files
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_LanguageInterface
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
|
||||||
|
interface CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable();
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
117
vendor/apereo/phpcas/source/CAS/Languages/Spanish.php
vendored
Normal file
117
vendor/apereo/phpcas/source/CAS/Languages/Spanish.php
vendored
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Language/Spanish.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Iván-Benjamín García Torà <ivaniclixx@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Spanish language class
|
||||||
|
*
|
||||||
|
* @class CAS_Languages_Spanish
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Iván-Benjamín García Torà <ivaniclixx@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
|
||||||
|
* @sa @link internalLang Internationalization @endlink
|
||||||
|
* @ingroup internalLang
|
||||||
|
*/
|
||||||
|
class CAS_Languages_Spanish implements CAS_Languages_LanguageInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the using server string
|
||||||
|
*
|
||||||
|
* @return string using server
|
||||||
|
*/
|
||||||
|
public function getUsingServer()
|
||||||
|
{
|
||||||
|
return 'usando servidor';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication wanted string
|
||||||
|
*
|
||||||
|
* @return string authentication wanted
|
||||||
|
*/
|
||||||
|
public function getAuthenticationWanted()
|
||||||
|
{
|
||||||
|
return '¡Autentificación CAS necesaria!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get logout string
|
||||||
|
*
|
||||||
|
* @return string logout
|
||||||
|
*/
|
||||||
|
public function getLogout()
|
||||||
|
{
|
||||||
|
return '¡Salida CAS necesaria!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the should have been redirected string
|
||||||
|
*
|
||||||
|
* @return string should habe been redirected
|
||||||
|
*/
|
||||||
|
public function getShouldHaveBeenRedirected()
|
||||||
|
{
|
||||||
|
return 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication failed string
|
||||||
|
*
|
||||||
|
* @return string authentication failed
|
||||||
|
*/
|
||||||
|
public function getAuthenticationFailed()
|
||||||
|
{
|
||||||
|
return '¡Autentificación CAS fallida!';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the your were not authenticated string
|
||||||
|
*
|
||||||
|
* @return string not authenticated
|
||||||
|
*/
|
||||||
|
public function getYouWereNotAuthenticated()
|
||||||
|
{
|
||||||
|
return '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the service unavailable string
|
||||||
|
*
|
||||||
|
* @return string service unavailable
|
||||||
|
*/
|
||||||
|
public function getServiceUnavailable()
|
||||||
|
{
|
||||||
|
return 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
56
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php
vendored
Normal file
56
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php
vendored
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/OutOfSequenceBeforeAuthenticationCallException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class defines Exceptions that should be thrown when the sequence of
|
||||||
|
* operations is invalid. In this case it should be thrown when an
|
||||||
|
* authentication call has not yet happened.
|
||||||
|
*
|
||||||
|
* @class CAS_OutOfSequenceBeforeAuthenticationCallException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_OutOfSequenceBeforeAuthenticationCallException
|
||||||
|
extends CAS_OutOfSequenceException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Return standard error meessage
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct ()
|
||||||
|
{
|
||||||
|
parent::__construct('An authentication call hasn\'t happened yet.');
|
||||||
|
}
|
||||||
|
}
|
58
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeClientException.php
vendored
Normal file
58
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeClientException.php
vendored
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/OutOfSequenceBeforeClientException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class defines Exceptions that should be thrown when the sequence of
|
||||||
|
* operations is invalid. In this case it should be thrown when the client() or
|
||||||
|
* proxy() call has not yet happened and no client or proxy object exists.
|
||||||
|
*
|
||||||
|
* @class CAS_OutOfSequenceBeforeClientException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_OutOfSequenceBeforeClientException
|
||||||
|
extends CAS_OutOfSequenceException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Return standard error message
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct ()
|
||||||
|
{
|
||||||
|
parent::__construct(
|
||||||
|
'this method cannot be called before phpCAS::client() or phpCAS::proxy()'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
59
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php
vendored
Normal file
59
vendor/apereo/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/OutOfSequenceBeforeProxyException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class defines Exceptions that should be thrown when the sequence of
|
||||||
|
* operations is invalid. In this case it should be thrown when the proxy() call
|
||||||
|
* has not yet happened and no proxy object exists.
|
||||||
|
*
|
||||||
|
* @class CAS_OutOfSequenceBeforeProxyException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Joachim Fritschi <jfritschi@freenet.de>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_OutOfSequenceBeforeProxyException
|
||||||
|
extends CAS_OutOfSequenceException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return standard error message
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct ()
|
||||||
|
{
|
||||||
|
parent::__construct(
|
||||||
|
'this method cannot be called before phpCAS::proxy()'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
49
vendor/apereo/phpcas/source/CAS/OutOfSequenceException.php
vendored
Normal file
49
vendor/apereo/phpcas/source/CAS/OutOfSequenceException.php
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/OutOfSequenceException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class defines Exceptions that should be thrown when the sequence of
|
||||||
|
* operations is invalid. Examples are:
|
||||||
|
* - Requesting the response before executing a request.
|
||||||
|
* - Changing the URL of a request after executing the request.
|
||||||
|
*
|
||||||
|
* @class CAS_OutOfSequenceException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_OutOfSequenceException
|
||||||
|
extends BadMethodCallException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
222
vendor/apereo/phpcas/source/CAS/PGTStorage/AbstractStorage.php
vendored
Normal file
222
vendor/apereo/phpcas/source/CAS/PGTStorage/AbstractStorage.php
vendored
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/PGTStorage/AbstractStorage.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic class for PGT storage
|
||||||
|
* The CAS_PGTStorage_AbstractStorage class is a generic class for PGT storage.
|
||||||
|
* This class should not be instanciated itself but inherited by specific PGT
|
||||||
|
* storage classes.
|
||||||
|
*
|
||||||
|
* @class CAS_PGTStorage_AbstractStorage
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @ingroup internalPGTStorage
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class CAS_PGTStorage_AbstractStorage
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @addtogroup internalPGTStorage
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// CONSTRUCTOR
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constructor of the class, should be called only by inherited classes.
|
||||||
|
*
|
||||||
|
* @param CAS_Client $cas_parent the CAS _client instance that creates the
|
||||||
|
* current object.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
function __construct($cas_parent)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
if ( !$cas_parent->isProxy() ) {
|
||||||
|
phpCAS::error(
|
||||||
|
'defining PGT storage makes no sense when not using a CAS proxy'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// DEBUGGING
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This virtual method returns an informational string giving the type of storage
|
||||||
|
* used by the object (used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function getStorageType()
|
||||||
|
{
|
||||||
|
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This virtual method returns an informational string giving informations on the
|
||||||
|
* parameters of the storage.(used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function getStorageInfo()
|
||||||
|
{
|
||||||
|
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// ERROR HANDLING
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* string used to store an error message. Written by
|
||||||
|
* PGTStorage::setErrorMessage(), read by PGTStorage::getErrorMessage().
|
||||||
|
*
|
||||||
|
* @hideinitializer
|
||||||
|
* @deprecated not used.
|
||||||
|
*/
|
||||||
|
var $_error_message=false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets en error message, which can be read later by
|
||||||
|
* PGTStorage::getErrorMessage().
|
||||||
|
*
|
||||||
|
* @param string $error_message an error message
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @deprecated not used.
|
||||||
|
*/
|
||||||
|
function setErrorMessage($error_message)
|
||||||
|
{
|
||||||
|
$this->_error_message = $error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an error message set by PGTStorage::setErrorMessage().
|
||||||
|
*
|
||||||
|
* @return string an error message when set by PGTStorage::setErrorMessage(), FALSE
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @deprecated not used.
|
||||||
|
*/
|
||||||
|
function getErrorMessage()
|
||||||
|
{
|
||||||
|
return $this->_error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// INITIALIZATION
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* a boolean telling if the storage has already been initialized. Written by
|
||||||
|
* PGTStorage::init(), read by PGTStorage::isInitialized().
|
||||||
|
*
|
||||||
|
* @hideinitializer
|
||||||
|
*/
|
||||||
|
var $_initialized = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tells if the storage has already been intialized.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
* @protected
|
||||||
|
*/
|
||||||
|
function isInitialized()
|
||||||
|
{
|
||||||
|
return $this->_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This virtual method initializes the object.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
function init()
|
||||||
|
{
|
||||||
|
$this->_initialized = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// PGT I/O
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This virtual method stores a PGT and its corresponding PGT Iuo.
|
||||||
|
*
|
||||||
|
* @param string $pgt the PGT
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @note Should never be called.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function write($pgt,$pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
|
||||||
|
* the corresponding storage entry.
|
||||||
|
*
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*
|
||||||
|
* @note Should never be called.
|
||||||
|
*/
|
||||||
|
function read($pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
440
vendor/apereo/phpcas/source/CAS/PGTStorage/Db.php
vendored
Normal file
440
vendor/apereo/phpcas/source/CAS/PGTStorage/Db.php
vendored
Normal file
@ -0,0 +1,440 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/PGTStorage/Db.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Daniel Frett <daniel.frett@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
define('CAS_PGT_STORAGE_DB_DEFAULT_TABLE', 'cas_pgts');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Basic class for PGT database storage
|
||||||
|
* The CAS_PGTStorage_Db class is a class for PGT database storage.
|
||||||
|
*
|
||||||
|
* @class CAS_PGTStorage_Db
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Daniel Frett <daniel.frett@gmail.com>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
* @ingroup internalPGTStorageDb
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_PGTStorage_Db extends CAS_PGTStorage_AbstractStorage
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @addtogroup internalCAS_PGTStorageDb
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the PDO object to use for database interactions
|
||||||
|
*/
|
||||||
|
private $_pdo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the PDO object to use for database interactions.
|
||||||
|
*
|
||||||
|
* @return PDO object
|
||||||
|
*/
|
||||||
|
private function _getPdo()
|
||||||
|
{
|
||||||
|
return $this->_pdo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* database connection options to use when creating a new PDO object
|
||||||
|
*/
|
||||||
|
private $_dsn;
|
||||||
|
private $_username;
|
||||||
|
private $_password;
|
||||||
|
private $_driver_options;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string the table to use for storing/retrieving pgt's
|
||||||
|
*/
|
||||||
|
private $_table;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the table to use when storing/retrieving PGT's
|
||||||
|
*
|
||||||
|
* @return string the name of the pgt storage table.
|
||||||
|
*/
|
||||||
|
private function _getTable()
|
||||||
|
{
|
||||||
|
return $this->_table;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// DEBUGGING
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an informational string giving the type of storage
|
||||||
|
* used by the object (used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string an informational string.
|
||||||
|
*/
|
||||||
|
public function getStorageType()
|
||||||
|
{
|
||||||
|
return "db";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an informational string giving informations on the
|
||||||
|
* parameters of the storage.(used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string an informational string.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
public function getStorageInfo()
|
||||||
|
{
|
||||||
|
return 'table=`'.$this->_getTable().'\'';
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// CONSTRUCTOR
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The class constructor.
|
||||||
|
*
|
||||||
|
* @param CAS_Client $cas_parent the CAS_Client instance that creates
|
||||||
|
* the object.
|
||||||
|
* @param string $dsn_or_pdo a dsn string to use for creating a PDO
|
||||||
|
* object or a PDO object
|
||||||
|
* @param string $username the username to use when connecting to
|
||||||
|
* the database
|
||||||
|
* @param string $password the password to use when connecting to
|
||||||
|
* the database
|
||||||
|
* @param string $table the table to use for storing and
|
||||||
|
* retrieving PGT's
|
||||||
|
* @param string $driver_options any driver options to use when
|
||||||
|
* connecting to the database
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
$cas_parent, $dsn_or_pdo, $username='', $password='', $table='',
|
||||||
|
$driver_options=null
|
||||||
|
) {
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
// call the ancestor's constructor
|
||||||
|
parent::__construct($cas_parent);
|
||||||
|
|
||||||
|
// set default values
|
||||||
|
if ( empty($table) ) {
|
||||||
|
$table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE;
|
||||||
|
}
|
||||||
|
if ( !is_array($driver_options) ) {
|
||||||
|
$driver_options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the specified parameters
|
||||||
|
if ($dsn_or_pdo instanceof PDO) {
|
||||||
|
$this->_pdo = $dsn_or_pdo;
|
||||||
|
} else {
|
||||||
|
$this->_dsn = $dsn_or_pdo;
|
||||||
|
$this->_username = $username;
|
||||||
|
$this->_password = $password;
|
||||||
|
$this->_driver_options = $driver_options;
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the table name
|
||||||
|
$this->_table = $table;
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// INITIALIZATION
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to initialize the storage. Halts on error.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function init()
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
// if the storage has already been initialized, return immediatly
|
||||||
|
if ($this->isInitialized()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// initialize the base object
|
||||||
|
parent::init();
|
||||||
|
|
||||||
|
// create the PDO object if it doesn't exist already
|
||||||
|
if (!($this->_pdo instanceof PDO)) {
|
||||||
|
try {
|
||||||
|
$this->_pdo = new PDO(
|
||||||
|
$this->_dsn, $this->_username, $this->_password,
|
||||||
|
$this->_driver_options
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
phpCAS::error('Database connection error: ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// PDO database interaction
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* attribute that stores the previous error mode for the PDO handle while
|
||||||
|
* processing a transaction
|
||||||
|
*/
|
||||||
|
private $_errMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method will enable the Exception error mode on the PDO object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function _setErrorMode()
|
||||||
|
{
|
||||||
|
// get PDO object and enable exception error mode
|
||||||
|
$pdo = $this->_getPdo();
|
||||||
|
$this->_errMode = $pdo->getAttribute(PDO::ATTR_ERRMODE);
|
||||||
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this method will reset the error mode on the PDO object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function _resetErrorMode()
|
||||||
|
{
|
||||||
|
// get PDO object and reset the error mode to what it was originally
|
||||||
|
$pdo = $this->_getPdo();
|
||||||
|
$pdo->setAttribute(PDO::ATTR_ERRMODE, $this->_errMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// database queries
|
||||||
|
// ########################################################################
|
||||||
|
// these queries are potentially unsafe because the person using this library
|
||||||
|
// can set the table to use, but there is no reliable way to escape SQL
|
||||||
|
// fieldnames in PDO yet
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the query used to create a pgt storage table
|
||||||
|
*
|
||||||
|
* @return string the create table SQL, no bind params in query
|
||||||
|
*/
|
||||||
|
protected function createTableSql()
|
||||||
|
{
|
||||||
|
return 'CREATE TABLE ' . $this->_getTable()
|
||||||
|
. ' (pgt_iou VARCHAR(255) NOT NULL PRIMARY KEY, pgt VARCHAR(255) NOT NULL)';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the query used to store a pgt
|
||||||
|
*
|
||||||
|
* @return string the store PGT SQL, :pgt and :pgt_iou are the bind params contained
|
||||||
|
* in the query
|
||||||
|
*/
|
||||||
|
protected function storePgtSql()
|
||||||
|
{
|
||||||
|
return 'INSERT INTO ' . $this->_getTable()
|
||||||
|
. ' (pgt_iou, pgt) VALUES (:pgt_iou, :pgt)';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the query used to retrieve a pgt. the first column
|
||||||
|
* of the first row should contain the pgt
|
||||||
|
*
|
||||||
|
* @return string the retrieve PGT SQL, :pgt_iou is the only bind param contained
|
||||||
|
* in the query
|
||||||
|
*/
|
||||||
|
protected function retrievePgtSql()
|
||||||
|
{
|
||||||
|
return 'SELECT pgt FROM ' . $this->_getTable() . ' WHERE pgt_iou = :pgt_iou';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the query used to delete a pgt.
|
||||||
|
*
|
||||||
|
* @return string the delete PGT SQL, :pgt_iou is the only bind param contained in
|
||||||
|
* the query
|
||||||
|
*/
|
||||||
|
protected function deletePgtSql()
|
||||||
|
{
|
||||||
|
return 'DELETE FROM ' . $this->_getTable() . ' WHERE pgt_iou = :pgt_iou';
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// PGT I/O
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method creates the database table used to store pgt's and pgtiou's
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function createTable()
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
|
||||||
|
// initialize this PGTStorage object if it hasn't been initialized yet
|
||||||
|
if ( !$this->isInitialized() ) {
|
||||||
|
$this->init();
|
||||||
|
}
|
||||||
|
|
||||||
|
// initialize the PDO object for this method
|
||||||
|
$pdo = $this->_getPdo();
|
||||||
|
$this->_setErrorMode();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
|
$query = $pdo->query($this->createTableSQL());
|
||||||
|
$query->closeCursor();
|
||||||
|
|
||||||
|
$pdo->commit();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
// attempt rolling back the transaction before throwing a phpCAS error
|
||||||
|
try {
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
}
|
||||||
|
phpCAS::error('error creating PGT storage table: ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset the PDO object
|
||||||
|
$this->_resetErrorMode();
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method stores a PGT and its corresponding PGT Iou in the database.
|
||||||
|
* Echoes a warning on error.
|
||||||
|
*
|
||||||
|
* @param string $pgt the PGT
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function write($pgt, $pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
|
||||||
|
// initialize the PDO object for this method
|
||||||
|
$pdo = $this->_getPdo();
|
||||||
|
$this->_setErrorMode();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
|
$query = $pdo->prepare($this->storePgtSql());
|
||||||
|
$query->bindValue(':pgt', $pgt, PDO::PARAM_STR);
|
||||||
|
$query->bindValue(':pgt_iou', $pgt_iou, PDO::PARAM_STR);
|
||||||
|
$query->execute();
|
||||||
|
$query->closeCursor();
|
||||||
|
|
||||||
|
$pdo->commit();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
// attempt rolling back the transaction before throwing a phpCAS error
|
||||||
|
try {
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
}
|
||||||
|
phpCAS::error('error writing PGT to database: ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset the PDO object
|
||||||
|
$this->_resetErrorMode();
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
||||||
|
* corresponding db entry.
|
||||||
|
*
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return string|false the corresponding PGT, or FALSE on error
|
||||||
|
*/
|
||||||
|
public function read($pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$pgt = false;
|
||||||
|
|
||||||
|
// initialize the PDO object for this method
|
||||||
|
$pdo = $this->_getPdo();
|
||||||
|
$this->_setErrorMode();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$pdo->beginTransaction();
|
||||||
|
|
||||||
|
// fetch the pgt for the specified pgt_iou
|
||||||
|
$query = $pdo->prepare($this->retrievePgtSql());
|
||||||
|
$query->bindValue(':pgt_iou', $pgt_iou, PDO::PARAM_STR);
|
||||||
|
$query->execute();
|
||||||
|
$pgt = $query->fetchColumn(0);
|
||||||
|
$query->closeCursor();
|
||||||
|
|
||||||
|
// delete the specified pgt_iou from the database
|
||||||
|
$query = $pdo->prepare($this->deletePgtSql());
|
||||||
|
$query->bindValue(':pgt_iou', $pgt_iou, PDO::PARAM_STR);
|
||||||
|
$query->execute();
|
||||||
|
$query->closeCursor();
|
||||||
|
|
||||||
|
$pdo->commit();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
// attempt rolling back the transaction before throwing a phpCAS error
|
||||||
|
try {
|
||||||
|
$pdo->rollBack();
|
||||||
|
}
|
||||||
|
catch(PDOException $e) {
|
||||||
|
}
|
||||||
|
phpCAS::trace('error reading PGT from database: ' . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset the PDO object
|
||||||
|
$this->_resetErrorMode();
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
return $pgt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
261
vendor/apereo/phpcas/source/CAS/PGTStorage/File.php
vendored
Normal file
261
vendor/apereo/phpcas/source/CAS/PGTStorage/File.php
vendored
Normal file
@ -0,0 +1,261 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/PGTStorage/AbstractStorage.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The CAS_PGTStorage_File class is a class for PGT file storage. An instance of
|
||||||
|
* this class is returned by CAS_Client::SetPGTStorageFile().
|
||||||
|
*
|
||||||
|
* @class CAS_PGTStorage_File
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Pascal Aubry <pascal.aubry@univ-rennes1.fr>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @ingroup internalPGTStorageFile
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_PGTStorage_File extends CAS_PGTStorage_AbstractStorage
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @addtogroup internalPGTStorageFile
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* a string telling where PGT's should be stored on the filesystem. Written by
|
||||||
|
* PGTStorageFile::PGTStorageFile(), read by getPath().
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
var $_path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the directory where PGT's should be stored
|
||||||
|
* on the filesystem.
|
||||||
|
*
|
||||||
|
* @return string the name of a directory (with leading and trailing '/')
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function getPath()
|
||||||
|
{
|
||||||
|
return $this->_path;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// DEBUGGING
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an informational string giving the type of storage
|
||||||
|
* used by the object (used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string an informational string.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function getStorageType()
|
||||||
|
{
|
||||||
|
return "file";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an informational string giving informations on the
|
||||||
|
* parameters of the storage.(used for debugging purposes).
|
||||||
|
*
|
||||||
|
* @return string an informational string.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function getStorageInfo()
|
||||||
|
{
|
||||||
|
return 'path=`'.$this->getPath().'\'';
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// CONSTRUCTOR
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The class constructor, called by CAS_Client::SetPGTStorageFile().
|
||||||
|
*
|
||||||
|
* @param CAS_Client $cas_parent the CAS_Client instance that creates the object.
|
||||||
|
* @param string $path the path where the PGT's should be stored
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function __construct($cas_parent,$path)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
// call the ancestor's constructor
|
||||||
|
parent::__construct($cas_parent);
|
||||||
|
|
||||||
|
if (empty($path)) {
|
||||||
|
$path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
|
||||||
|
}
|
||||||
|
// check that the path is an absolute path
|
||||||
|
if (getenv("OS")=="Windows_NT" || strtoupper(substr(PHP_OS,0,3)) == 'WIN') {
|
||||||
|
|
||||||
|
if (!preg_match('`^[a-zA-Z]:`', $path)) {
|
||||||
|
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if ( $path[0] != '/' ) {
|
||||||
|
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||||
|
}
|
||||||
|
|
||||||
|
// store the path (with a leading and trailing '/')
|
||||||
|
$path = preg_replace('|[/]*$|', '/', $path);
|
||||||
|
$path = preg_replace('|^[/]*|', '/', $path);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_path = $path;
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// INITIALIZATION
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is used to initialize the storage. Halts on error.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function init()
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
// if the storage has already been initialized, return immediatly
|
||||||
|
if ($this->isInitialized()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// call the ancestor's method (mark as initialized)
|
||||||
|
parent::init();
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ########################################################################
|
||||||
|
// PGT I/O
|
||||||
|
// ########################################################################
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the filename corresponding to a PGT Iou.
|
||||||
|
*
|
||||||
|
* @param string $pgt_iou the PGT iou.
|
||||||
|
*
|
||||||
|
* @return string a filename
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
function getPGTIouFilename($pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$filename = $this->getPath()."phpcas-".hash("sha256", $pgt_iou);
|
||||||
|
// $filename = $this->getPath().$pgt_iou.'.plain';
|
||||||
|
phpCAS::trace("Sha256 filename:" . $filename);
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
return $filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
|
||||||
|
* warning on error.
|
||||||
|
*
|
||||||
|
* @param string $pgt the PGT
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function write($pgt,$pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||||
|
if (!file_exists($fname)) {
|
||||||
|
touch($fname);
|
||||||
|
// Chmod will fail on windows
|
||||||
|
@chmod($fname, 0600);
|
||||||
|
if ($f=fopen($fname, "w")) {
|
||||||
|
if (fputs($f, $pgt) === false) {
|
||||||
|
phpCAS::error('could not write PGT to `'.$fname.'\'');
|
||||||
|
}
|
||||||
|
phpCAS::trace('Successful write of PGT to `'.$fname.'\'');
|
||||||
|
fclose($f);
|
||||||
|
} else {
|
||||||
|
phpCAS::error('could not open `'.$fname.'\'');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
phpCAS::error('File exists: `'.$fname.'\'');
|
||||||
|
}
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
||||||
|
* corresponding file.
|
||||||
|
*
|
||||||
|
* @param string $pgt_iou the PGT iou
|
||||||
|
*
|
||||||
|
* @return string|false the corresponding PGT, or FALSE on error
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function read($pgt_iou)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$pgt = false;
|
||||||
|
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||||
|
if (file_exists($fname)) {
|
||||||
|
if (!($f=fopen($fname, "r"))) {
|
||||||
|
phpCAS::error('could not open `'.$fname.'\'');
|
||||||
|
} else {
|
||||||
|
if (($pgt=fgets($f)) === false) {
|
||||||
|
phpCAS::error('could not read PGT from `'.$fname.'\'');
|
||||||
|
}
|
||||||
|
phpCAS::trace('Successful read of PGT to `'.$fname.'\'');
|
||||||
|
fclose($f);
|
||||||
|
}
|
||||||
|
// delete the PGT file
|
||||||
|
@unlink($fname);
|
||||||
|
} else {
|
||||||
|
phpCAS::error('No such file `'.$fname.'\'');
|
||||||
|
}
|
||||||
|
phpCAS::traceEnd($pgt);
|
||||||
|
return $pgt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
72
vendor/apereo/phpcas/source/CAS/ProxiedService.php
vendored
Normal file
72
vendor/apereo/phpcas/source/CAS/ProxiedService.php
vendored
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines methods that allow proxy-authenticated service handlers
|
||||||
|
* to interact with phpCAS.
|
||||||
|
*
|
||||||
|
* Proxy service handlers must implement this interface as well as call
|
||||||
|
* phpCAS::initializeProxiedService($this) at some point in their implementation.
|
||||||
|
*
|
||||||
|
* While not required, proxy-authenticated service handlers are encouraged to
|
||||||
|
* implement the CAS_ProxiedService_Testable interface to facilitate unit testing.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_ProxiedService
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a service identifier (URL) for whom we should fetch a proxy ticket.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws Exception If no service url is available.
|
||||||
|
*/
|
||||||
|
public function getServiceUrl ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a proxy ticket with the ProxiedService that it can use when
|
||||||
|
* making requests.
|
||||||
|
*
|
||||||
|
* @param string $proxyTicket Proxy ticket string
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException If the $proxyTicket is invalid.
|
||||||
|
* @throws CAS_OutOfSequenceException If called after a proxy ticket has
|
||||||
|
* already been initialized/set.
|
||||||
|
*/
|
||||||
|
public function setProxyTicket ($proxyTicket);
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
149
vendor/apereo/phpcas/source/CAS/ProxiedService/Abstract.php
vendored
Normal file
149
vendor/apereo/phpcas/source/CAS/ProxiedService/Abstract.php
vendored
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Abstract.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class implements common methods for ProxiedService implementations included
|
||||||
|
* with phpCAS.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Abstract
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
abstract class CAS_ProxiedService_Abstract
|
||||||
|
implements CAS_ProxiedService, CAS_ProxiedService_Testable
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The proxy ticket that can be used when making service requests.
|
||||||
|
* @var string $_proxyTicket;
|
||||||
|
*/
|
||||||
|
private $_proxyTicket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register a proxy ticket with the Proxy that it can use when making requests.
|
||||||
|
*
|
||||||
|
* @param string $proxyTicket proxy ticket
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws InvalidArgumentException If the $proxyTicket is invalid.
|
||||||
|
* @throws CAS_OutOfSequenceException If called after a proxy ticket has
|
||||||
|
* already been initialized/set.
|
||||||
|
*/
|
||||||
|
public function setProxyTicket ($proxyTicket)
|
||||||
|
{
|
||||||
|
if (empty($proxyTicket)) {
|
||||||
|
throw new CAS_InvalidArgumentException(
|
||||||
|
'Trying to initialize with an empty proxy ticket.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!empty($this->_proxyTicket)) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Already initialized, cannot change the proxy ticket.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$this->_proxyTicket = $proxyTicket;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the proxy ticket to be used when making requests.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before a proxy ticket has
|
||||||
|
* already been initialized/set.
|
||||||
|
*/
|
||||||
|
protected function getProxyTicket ()
|
||||||
|
{
|
||||||
|
if (empty($this->_proxyTicket)) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'No proxy ticket yet. Call $this->initializeProxyTicket() to aquire the proxy ticket.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_proxyTicket;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var CAS_Client $_casClient;
|
||||||
|
*/
|
||||||
|
private $_casClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use a particular CAS_Client->initializeProxiedService() rather than the
|
||||||
|
* static phpCAS::initializeProxiedService().
|
||||||
|
*
|
||||||
|
* This method should not be called in standard operation, but is needed for unit
|
||||||
|
* testing.
|
||||||
|
*
|
||||||
|
* @param CAS_Client $casClient cas client
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after a proxy ticket has
|
||||||
|
* already been initialized/set.
|
||||||
|
*/
|
||||||
|
public function setCasClient (CAS_Client $casClient)
|
||||||
|
{
|
||||||
|
if (!empty($this->_proxyTicket)) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Already initialized, cannot change the CAS_Client.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_casClient = $casClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch our proxy ticket.
|
||||||
|
*
|
||||||
|
* Descendent classes should call this method once their service URL is available
|
||||||
|
* to initialize their proxy ticket.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after a proxy ticket has
|
||||||
|
* already been initialized.
|
||||||
|
*/
|
||||||
|
protected function initializeProxyTicket()
|
||||||
|
{
|
||||||
|
if (!empty($this->_proxyTicket)) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Already initialized, cannot initialize again.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// Allow usage of a particular CAS_Client for unit testing.
|
||||||
|
if (empty($this->_casClient)) {
|
||||||
|
phpCAS::initializeProxiedService($this);
|
||||||
|
} else {
|
||||||
|
$this->_casClient->initializeProxiedService($this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
46
vendor/apereo/phpcas/source/CAS/ProxiedService/Exception.php
vendored
Normal file
46
vendor/apereo/phpcas/source/CAS/ProxiedService/Exception.php
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Exception.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An Exception for problems communicating with a proxied service.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Exception
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxiedService_Exception
|
||||||
|
extends Exception
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
91
vendor/apereo/phpcas/source/CAS/ProxiedService/Http.php
vendored
Normal file
91
vendor/apereo/phpcas/source/CAS/ProxiedService/Http.php
vendored
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Http.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines methods that clients should use for configuring, sending,
|
||||||
|
* and receiving proxied HTTP requests.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Http
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_ProxiedService_Http
|
||||||
|
{
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the URL of the Request
|
||||||
|
*
|
||||||
|
* @param string $url Url to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setUrl ($url);
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
*/
|
||||||
|
public function send ();
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 3. Access the response
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the headers of the response.
|
||||||
|
*
|
||||||
|
* @return array An array of header strings.
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseHeaders ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the body of response.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseBody ();
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
360
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Abstract.php
vendored
Normal file
360
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Abstract.php
vendored
Normal file
@ -0,0 +1,360 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Http/Abstract.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class implements common methods for ProxiedService implementations included
|
||||||
|
* with phpCAS.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Http_Abstract
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
abstract class CAS_ProxiedService_Http_Abstract extends
|
||||||
|
CAS_ProxiedService_Abstract implements CAS_ProxiedService_Http
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The HTTP request mechanism talking to the target service.
|
||||||
|
*
|
||||||
|
* @var CAS_Request_RequestInterface $requestHandler
|
||||||
|
*/
|
||||||
|
protected $requestHandler;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The storage mechanism for cookies set by the target service.
|
||||||
|
*
|
||||||
|
* @var CAS_CookieJar $_cookieJar
|
||||||
|
*/
|
||||||
|
private $_cookieJar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $requestHandler request handler object
|
||||||
|
* @param CAS_CookieJar $cookieJar cookieJar object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct(CAS_Request_RequestInterface $requestHandler,
|
||||||
|
CAS_CookieJar $cookieJar
|
||||||
|
) {
|
||||||
|
$this->requestHandler = $requestHandler;
|
||||||
|
$this->_cookieJar = $cookieJar;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The target service url.
|
||||||
|
* @var string $_url;
|
||||||
|
*/
|
||||||
|
private $_url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a service identifier (URL) for whom we should fetch a proxy ticket.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws Exception If no service url is available.
|
||||||
|
*/
|
||||||
|
public function getServiceUrl()
|
||||||
|
{
|
||||||
|
if (empty($this->_url)) {
|
||||||
|
throw new CAS_ProxiedService_Exception(
|
||||||
|
'No URL set via ' . get_class($this) . '->setUrl($url).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the URL of the Request
|
||||||
|
*
|
||||||
|
* @param string $url url to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setUrl($url)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set the URL, request already sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!is_string($url)) {
|
||||||
|
throw new CAS_InvalidArgumentException('$url must be a string.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_url = $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
* @throws CAS_ProxyTicketException If there is a proxy-ticket failure.
|
||||||
|
* The code of the Exception will be one of:
|
||||||
|
* PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_FAILURE
|
||||||
|
* @throws CAS_ProxiedService_Exception If there is a failure sending the
|
||||||
|
* request to the target service.
|
||||||
|
*/
|
||||||
|
public function send()
|
||||||
|
{
|
||||||
|
if ($this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot send, request already sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
|
||||||
|
// Get our proxy ticket and append it to our URL.
|
||||||
|
$this->initializeProxyTicket();
|
||||||
|
$url = $this->getServiceUrl();
|
||||||
|
if (strstr($url, '?') === false) {
|
||||||
|
$url = $url . '?ticket=' . $this->getProxyTicket();
|
||||||
|
} else {
|
||||||
|
$url = $url . '&ticket=' . $this->getProxyTicket();
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$this->makeRequest($url);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
throw $e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicator of the number of requests (including redirects performed.
|
||||||
|
*
|
||||||
|
* @var int $_numRequests;
|
||||||
|
*/
|
||||||
|
private $_numRequests = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The response headers.
|
||||||
|
*
|
||||||
|
* @var array $_responseHeaders;
|
||||||
|
*/
|
||||||
|
private $_responseHeaders = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The response status code.
|
||||||
|
*
|
||||||
|
* @var int $_responseStatusCode;
|
||||||
|
*/
|
||||||
|
private $_responseStatusCode = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The response headers.
|
||||||
|
*
|
||||||
|
* @var string $_responseBody;
|
||||||
|
*/
|
||||||
|
private $_responseBody = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Build and perform a request, following redirects
|
||||||
|
*
|
||||||
|
* @param string $url url for the request
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_ProxyTicketException If there is a proxy-ticket failure.
|
||||||
|
* The code of the Exception will be one of:
|
||||||
|
* PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_FAILURE
|
||||||
|
* @throws CAS_ProxiedService_Exception If there is a failure sending the
|
||||||
|
* request to the target service.
|
||||||
|
*/
|
||||||
|
protected function makeRequest($url)
|
||||||
|
{
|
||||||
|
// Verify that we are not in a redirect loop
|
||||||
|
$this->_numRequests++;
|
||||||
|
if ($this->_numRequests > 4) {
|
||||||
|
$message = 'Exceeded the maximum number of redirects (3) in proxied service request.';
|
||||||
|
phpCAS::trace($message);
|
||||||
|
throw new CAS_ProxiedService_Exception($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a new request.
|
||||||
|
$request = clone $this->requestHandler;
|
||||||
|
$request->setUrl($url);
|
||||||
|
|
||||||
|
// Add any cookies to the request.
|
||||||
|
$request->addCookies($this->_cookieJar->getCookies($url));
|
||||||
|
|
||||||
|
// Add any other parts of the request needed by concrete classes
|
||||||
|
$this->populateRequest($request);
|
||||||
|
|
||||||
|
// Perform the request.
|
||||||
|
phpCAS::trace('Performing proxied service request to \'' . $url . '\'');
|
||||||
|
if (!$request->send()) {
|
||||||
|
$message = 'Could not perform proxied service request to URL`'
|
||||||
|
. $url . '\'. ' . $request->getErrorMessage();
|
||||||
|
phpCAS::trace($message);
|
||||||
|
throw new CAS_ProxiedService_Exception($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Store any cookies from the response;
|
||||||
|
$this->_cookieJar->storeCookies($url, $request->getResponseHeaders());
|
||||||
|
|
||||||
|
// Follow any redirects
|
||||||
|
if ($redirectUrl = $this->getRedirectUrl($request->getResponseHeaders())
|
||||||
|
) {
|
||||||
|
phpCAS::trace('Found redirect:' . $redirectUrl);
|
||||||
|
$this->makeRequest($redirectUrl);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$this->_responseHeaders = $request->getResponseHeaders();
|
||||||
|
$this->_responseBody = $request->getResponseBody();
|
||||||
|
$this->_responseStatusCode = $request->getResponseStatusCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add any other parts of the request needed by concrete classes
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $request request interface object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
abstract protected function populateRequest(
|
||||||
|
CAS_Request_RequestInterface $request
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a redirect URL if a redirect header is found, otherwise null.
|
||||||
|
*
|
||||||
|
* @param array $responseHeaders response header to extract a redirect from
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
protected function getRedirectUrl(array $responseHeaders)
|
||||||
|
{
|
||||||
|
// Check for the redirect after authentication
|
||||||
|
foreach ($responseHeaders as $header) {
|
||||||
|
if ( preg_match('/^(Location:|URI:)\s*([^\s]+.*)$/', $header, $matches)
|
||||||
|
) {
|
||||||
|
return trim(array_pop($matches));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 3. Access the response
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer true if our request has been sent yet.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function hasBeenSent()
|
||||||
|
{
|
||||||
|
return ($this->_numRequests > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the headers of the response.
|
||||||
|
*
|
||||||
|
* @return array An array of header strings.
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseHeaders()
|
||||||
|
{
|
||||||
|
if (!$this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot access response, request not sent yet.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_responseHeaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer HTTP status code of the response
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseStatusCode()
|
||||||
|
{
|
||||||
|
if (!$this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot access response, request not sent yet.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_responseStatusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the body of response.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseBody()
|
||||||
|
{
|
||||||
|
if (!$this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot access response, request not sent yet.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_responseBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the cookies from the response. This may include cookies set during
|
||||||
|
* redirect responses.
|
||||||
|
*
|
||||||
|
* @return array An array containing cookies. E.g. array('name' => 'val');
|
||||||
|
*/
|
||||||
|
public function getCookies()
|
||||||
|
{
|
||||||
|
return $this->_cookieJar->getCookies($this->getServiceUrl());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
85
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Get.php
vendored
Normal file
85
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Get.php
vendored
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Http/Get.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is used to make proxied service requests via the HTTP GET method.
|
||||||
|
*
|
||||||
|
* Usage Example:
|
||||||
|
*
|
||||||
|
* try {
|
||||||
|
* $service = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_GET);
|
||||||
|
* $service->setUrl('http://www.example.com/path/');
|
||||||
|
* $service->send();
|
||||||
|
* if ($service->getResponseStatusCode() == 200)
|
||||||
|
* return $service->getResponseBody();
|
||||||
|
* else
|
||||||
|
* // The service responded with an error code 404, 500, etc.
|
||||||
|
* throw new Exception('The service responded with an error.');
|
||||||
|
*
|
||||||
|
* } catch (CAS_ProxyTicketException $e) {
|
||||||
|
* if ($e->getCode() == PHPCAS_SERVICE_PT_FAILURE)
|
||||||
|
* return "Your login has timed out. You need to log in again.";
|
||||||
|
* else
|
||||||
|
* // Other proxy ticket errors are from bad request format
|
||||||
|
* // (shouldn't happen) or CAS server failure (unlikely)
|
||||||
|
* // so lets just stop if we hit those.
|
||||||
|
* throw $e;
|
||||||
|
* } catch (CAS_ProxiedService_Exception $e) {
|
||||||
|
* // Something prevented the service request from being sent or received.
|
||||||
|
* // We didn't even get a valid error response (404, 500, etc), so this
|
||||||
|
* // might be caused by a network error or a DNS resolution failure.
|
||||||
|
* // We could handle it in some way, but for now we will just stop.
|
||||||
|
* throw $e;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Http_Get
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxiedService_Http_Get
|
||||||
|
extends CAS_ProxiedService_Http_Abstract
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add any other parts of the request needed by concrete classes
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $request request interface
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function populateRequest (CAS_Request_RequestInterface $request)
|
||||||
|
{
|
||||||
|
// do nothing, since the URL has already been sent and that is our
|
||||||
|
// only data.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
152
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Post.php
vendored
Normal file
152
vendor/apereo/phpcas/source/CAS/ProxiedService/Http/Post.php
vendored
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Http/Post.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is used to make proxied service requests via the HTTP POST method.
|
||||||
|
*
|
||||||
|
* Usage Example:
|
||||||
|
*
|
||||||
|
* try {
|
||||||
|
* $service = phpCAS::getProxiedService(PHPCAS_PROXIED_SERVICE_HTTP_POST);
|
||||||
|
* $service->setUrl('http://www.example.com/path/');
|
||||||
|
* $service->setContentType('text/xml');
|
||||||
|
* $service->setBody('<?xml version="1.0"?'.'><methodCall><methodName>example.search</methodName></methodCall>');
|
||||||
|
* $service->send();
|
||||||
|
* if ($service->getResponseStatusCode() == 200)
|
||||||
|
* return $service->getResponseBody();
|
||||||
|
* else
|
||||||
|
* // The service responded with an error code 404, 500, etc.
|
||||||
|
* throw new Exception('The service responded with an error.');
|
||||||
|
*
|
||||||
|
* } catch (CAS_ProxyTicketException $e) {
|
||||||
|
* if ($e->getCode() == PHPCAS_SERVICE_PT_FAILURE)
|
||||||
|
* return "Your login has timed out. You need to log in again.";
|
||||||
|
* else
|
||||||
|
* // Other proxy ticket errors are from bad request format
|
||||||
|
* // (shouldn't happen) or CAS server failure (unlikely) so lets just
|
||||||
|
* // stop if we hit those.
|
||||||
|
* throw $e;
|
||||||
|
* } catch (CAS_ProxiedService_Exception $e) {
|
||||||
|
* // Something prevented the service request from being sent or received.
|
||||||
|
* // We didn't even get a valid error response (404, 500, etc), so this
|
||||||
|
* // might be caused by a network error or a DNS resolution failure.
|
||||||
|
* // We could handle it in some way, but for now we will just stop.
|
||||||
|
* throw $e;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Http_Post
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxiedService_Http_Post
|
||||||
|
extends CAS_ProxiedService_Http_Abstract
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The content-type of this request
|
||||||
|
*
|
||||||
|
* @var string $_contentType
|
||||||
|
*/
|
||||||
|
private $_contentType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The body of the this request
|
||||||
|
*
|
||||||
|
* @var string $_body
|
||||||
|
*/
|
||||||
|
private $_body;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the content type of this POST request.
|
||||||
|
*
|
||||||
|
* @param string $contentType content type
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setContentType ($contentType)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set the content type, request already sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_contentType = $contentType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the body of this POST request.
|
||||||
|
*
|
||||||
|
* @param string $body body to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setBody ($body)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenSent()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set the body, request already sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_body = $body;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add any other parts of the request needed by concrete classes
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $request request interface class
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function populateRequest (CAS_Request_RequestInterface $request)
|
||||||
|
{
|
||||||
|
if (empty($this->_contentType) && !empty($this->_body)) {
|
||||||
|
throw new CAS_ProxiedService_Exception(
|
||||||
|
"If you pass a POST body, you must specify a content type via "
|
||||||
|
.get_class($this).'->setContentType($contentType).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$request->makePost();
|
||||||
|
if (!empty($this->_body)) {
|
||||||
|
$request->addHeader('Content-Type: '.$this->_contentType);
|
||||||
|
$request->addHeader('Content-Length: '.strlen($this->_body));
|
||||||
|
$request->setPostBody($this->_body);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
281
vendor/apereo/phpcas/source/CAS/ProxiedService/Imap.php
vendored
Normal file
281
vendor/apereo/phpcas/source/CAS/ProxiedService/Imap.php
vendored
Normal file
@ -0,0 +1,281 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Imap.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides access to a proxy-authenticated IMAP stream
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Imap
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxiedService_Imap
|
||||||
|
extends CAS_ProxiedService_Abstract
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The username to send via imap_open.
|
||||||
|
*
|
||||||
|
* @var string $_username;
|
||||||
|
*/
|
||||||
|
private $_username;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor.
|
||||||
|
*
|
||||||
|
* @param string $username Username
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct ($username)
|
||||||
|
{
|
||||||
|
if (!is_string($username) || !strlen($username)) {
|
||||||
|
throw new CAS_InvalidArgumentException('Invalid username.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_username = $username;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The target service url.
|
||||||
|
* @var string $_url;
|
||||||
|
*/
|
||||||
|
private $_url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a service identifier (URL) for whom we should fetch a proxy ticket.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws Exception If no service url is available.
|
||||||
|
*/
|
||||||
|
public function getServiceUrl ()
|
||||||
|
{
|
||||||
|
if (empty($this->_url)) {
|
||||||
|
throw new CAS_ProxiedService_Exception(
|
||||||
|
'No URL set via '.get_class($this).'->getServiceUrl($url).'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure the Stream
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the URL of the service to pass to CAS for proxy-ticket retrieval.
|
||||||
|
*
|
||||||
|
* @param string $url Url to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the stream has been opened.
|
||||||
|
*/
|
||||||
|
public function setServiceUrl ($url)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set the URL, stream already opened.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!is_string($url) || !strlen($url)) {
|
||||||
|
throw new CAS_InvalidArgumentException('Invalid url.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_url = $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The mailbox to open. See the $mailbox parameter of imap_open().
|
||||||
|
*
|
||||||
|
* @var string $_mailbox
|
||||||
|
*/
|
||||||
|
private $_mailbox;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the mailbox to open. See the $mailbox parameter of imap_open().
|
||||||
|
*
|
||||||
|
* @param string $mailbox Mailbox to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the stream has been opened.
|
||||||
|
*/
|
||||||
|
public function setMailbox ($mailbox)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set the mailbox, stream already opened.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!is_string($mailbox) || !strlen($mailbox)) {
|
||||||
|
throw new CAS_InvalidArgumentException('Invalid mailbox.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_mailbox = $mailbox;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A bit mask of options to pass to imap_open() as the $options parameter.
|
||||||
|
*
|
||||||
|
* @var int $_options
|
||||||
|
*/
|
||||||
|
private $_options = null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the options for opening the stream. See the $options parameter of
|
||||||
|
* imap_open().
|
||||||
|
*
|
||||||
|
* @param int $options Options for the stream
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the stream has been opened.
|
||||||
|
*/
|
||||||
|
public function setOptions ($options)
|
||||||
|
{
|
||||||
|
if ($this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot set options, stream already opened.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!is_int($options)) {
|
||||||
|
throw new CAS_InvalidArgumentException('Invalid options.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_options = $options;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Open the stream
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open the IMAP stream (similar to imap_open()).
|
||||||
|
*
|
||||||
|
* @return resource Returns an IMAP stream on success
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
* @throws CAS_ProxyTicketException If there is a proxy-ticket failure.
|
||||||
|
* The code of the Exception will be one of:
|
||||||
|
* PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE
|
||||||
|
* PHPCAS_SERVICE_PT_FAILURE
|
||||||
|
* @throws CAS_ProxiedService_Exception If there is a failure sending the
|
||||||
|
* request to the target service.
|
||||||
|
*/
|
||||||
|
public function open ()
|
||||||
|
{
|
||||||
|
if ($this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException('Stream already opened.');
|
||||||
|
}
|
||||||
|
if (empty($this->_mailbox)) {
|
||||||
|
throw new CAS_ProxiedService_Exception(
|
||||||
|
'You must specify a mailbox via '.get_class($this)
|
||||||
|
.'->setMailbox($mailbox)'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
|
||||||
|
// Get our proxy ticket and append it to our URL.
|
||||||
|
$this->initializeProxyTicket();
|
||||||
|
phpCAS::trace('opening IMAP mailbox `'.$this->_mailbox.'\'...');
|
||||||
|
$this->_stream = @imap_open(
|
||||||
|
$this->_mailbox, $this->_username, $this->getProxyTicket(),
|
||||||
|
$this->_options
|
||||||
|
);
|
||||||
|
if ($this->_stream) {
|
||||||
|
phpCAS::trace('ok');
|
||||||
|
} else {
|
||||||
|
phpCAS::trace('could not open mailbox');
|
||||||
|
// @todo add localization integration.
|
||||||
|
$message = 'IMAP Error: '.$this->_url.' '. var_export(imap_errors(), true);
|
||||||
|
phpCAS::trace($message);
|
||||||
|
throw new CAS_ProxiedService_Exception($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
phpCAS::traceEnd();
|
||||||
|
return $this->_stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer true if our request has been sent yet.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function hasBeenOpened ()
|
||||||
|
{
|
||||||
|
return !empty($this->_stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 3. Access the result
|
||||||
|
*********************************************************/
|
||||||
|
/**
|
||||||
|
* The IMAP stream
|
||||||
|
*
|
||||||
|
* @var resource $_stream
|
||||||
|
*/
|
||||||
|
private $_stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the IMAP stream
|
||||||
|
*
|
||||||
|
* @return resource
|
||||||
|
* @throws CAS_OutOfSequenceException if stream is not opened yet
|
||||||
|
*/
|
||||||
|
public function getStream ()
|
||||||
|
{
|
||||||
|
if (!$this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot access stream, not opened yet.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $this->_stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* CAS_Client::serviceMail() needs to return the proxy ticket for some reason,
|
||||||
|
* so this method provides access to it.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the stream has been
|
||||||
|
* opened.
|
||||||
|
*/
|
||||||
|
public function getImapProxyTicket ()
|
||||||
|
{
|
||||||
|
if (!$this->hasBeenOpened()) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot access errors, stream not opened yet.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $this->getProxyTicket();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
75
vendor/apereo/phpcas/source/CAS/ProxiedService/Testable.php
vendored
Normal file
75
vendor/apereo/phpcas/source/CAS/ProxiedService/Testable.php
vendored
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxiedService/Testabel.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines methods that allow proxy-authenticated service handlers
|
||||||
|
* to be tested in unit tests.
|
||||||
|
*
|
||||||
|
* Classes implementing this interface SHOULD store the CAS_Client passed and
|
||||||
|
* initialize themselves with that client rather than via the static phpCAS
|
||||||
|
* method. For example:
|
||||||
|
*
|
||||||
|
* / **
|
||||||
|
* * Fetch our proxy ticket.
|
||||||
|
* * /
|
||||||
|
* protected function initializeProxyTicket() {
|
||||||
|
* // Allow usage of a particular CAS_Client for unit testing.
|
||||||
|
* if (is_null($this->casClient))
|
||||||
|
* phpCAS::initializeProxiedService($this);
|
||||||
|
* else
|
||||||
|
* $this->casClient->initializeProxiedService($this);
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* @class CAS_ProxiedService_Testabel
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_ProxiedService_Testable
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use a particular CAS_Client->initializeProxiedService() rather than the
|
||||||
|
* static phpCAS::initializeProxiedService().
|
||||||
|
*
|
||||||
|
* This method should not be called in standard operation, but is needed for unit
|
||||||
|
* testing.
|
||||||
|
*
|
||||||
|
* @param CAS_Client $casClient Cas client object
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after a proxy ticket has
|
||||||
|
* already been initialized/set.
|
||||||
|
*/
|
||||||
|
public function setCasClient (CAS_Client $casClient);
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
127
vendor/apereo/phpcas/source/CAS/ProxyChain.php
vendored
Normal file
127
vendor/apereo/phpcas/source/CAS/ProxyChain.php
vendored
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxyChain.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A normal proxy-chain definition that lists each level of the chain as either
|
||||||
|
* a string or regular expression.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyChain
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_ProxyChain
|
||||||
|
implements CAS_ProxyChain_Interface
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $chain = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A chain is an array of strings or regexp strings that will be matched
|
||||||
|
* against. Regexp will be matched with preg_match and strings will be
|
||||||
|
* matched from the beginning. A string must fully match the beginning of
|
||||||
|
* an proxy url. So you can define a full domain as acceptable or go further
|
||||||
|
* down.
|
||||||
|
* Proxies have to be defined in reverse from the service to the user. If a
|
||||||
|
* user hits service A get proxied via B to service C the list of acceptable
|
||||||
|
* proxies on C would be array(B,A);
|
||||||
|
*
|
||||||
|
* @param array $chain A chain of proxies
|
||||||
|
*/
|
||||||
|
public function __construct(array $chain)
|
||||||
|
{
|
||||||
|
// Ensure that we have an indexed array
|
||||||
|
$this->chain = array_values($chain);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Match a list of proxies.
|
||||||
|
*
|
||||||
|
* @param array $list The list of proxies in front of this service.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function matches(array $list)
|
||||||
|
{
|
||||||
|
$list = array_values($list); // Ensure that we have an indexed array
|
||||||
|
if ($this->isSizeValid($list)) {
|
||||||
|
$mismatch = false;
|
||||||
|
foreach ($this->chain as $i => $search) {
|
||||||
|
$proxy_url = $list[$i];
|
||||||
|
if (preg_match('/^\/.*\/[ixASUXu]*$/s', $search)) {
|
||||||
|
if (preg_match($search, $proxy_url)) {
|
||||||
|
phpCAS::trace(
|
||||||
|
"Found regexp " . $search . " matching " . $proxy_url
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
phpCAS::trace(
|
||||||
|
"No regexp match " . $search . " != " . $proxy_url
|
||||||
|
);
|
||||||
|
$mismatch = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (strncasecmp($search, $proxy_url, strlen($search)) == 0) {
|
||||||
|
phpCAS::trace(
|
||||||
|
"Found string " . $search . " matching " . $proxy_url
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
phpCAS::trace(
|
||||||
|
"No match " . $search . " != " . $proxy_url
|
||||||
|
);
|
||||||
|
$mismatch = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$mismatch) {
|
||||||
|
phpCAS::trace("Proxy chain matches");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
phpCAS::trace("Proxy chain skipped: size mismatch");
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the size of the the list as compared to our chain.
|
||||||
|
*
|
||||||
|
* @param array $list List of proxies
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function isSizeValid (array $list)
|
||||||
|
{
|
||||||
|
return (sizeof($this->chain) == sizeof($list));
|
||||||
|
}
|
||||||
|
}
|
119
vendor/apereo/phpcas/source/CAS/ProxyChain/AllowedList.php
vendored
Normal file
119
vendor/apereo/phpcas/source/CAS/ProxyChain/AllowedList.php
vendored
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxyChain/AllowedList.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ProxyChain is a container for storing chains of valid proxies that can
|
||||||
|
* be used to validate proxied requests to a service
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyChain_AllowedList
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
class CAS_ProxyChain_AllowedList
|
||||||
|
{
|
||||||
|
|
||||||
|
private $_chains = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether proxies are allowed by configuration
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isProxyingAllowed()
|
||||||
|
{
|
||||||
|
return (count($this->_chains) > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a chain of proxies to the list of possible chains
|
||||||
|
*
|
||||||
|
* @param CAS_ProxyChain_Interface $chain A chain of proxies
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function allowProxyChain(CAS_ProxyChain_Interface $chain)
|
||||||
|
{
|
||||||
|
$this->_chains[] = $chain;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the proxies found in the response match the allowed proxies
|
||||||
|
*
|
||||||
|
* @param array $proxies list of proxies to check
|
||||||
|
*
|
||||||
|
* @return bool whether the proxies match the allowed proxies
|
||||||
|
*/
|
||||||
|
public function isProxyListAllowed(array $proxies)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
if (empty($proxies)) {
|
||||||
|
phpCAS::trace("No proxies were found in the response");
|
||||||
|
phpCAS::traceEnd(true);
|
||||||
|
return true;
|
||||||
|
} elseif (!$this->isProxyingAllowed()) {
|
||||||
|
phpCAS::trace("Proxies are not allowed");
|
||||||
|
phpCAS::traceEnd(false);
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
$res = $this->contains($proxies);
|
||||||
|
phpCAS::traceEnd($res);
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the proxies from the proxy ticket validation against the
|
||||||
|
* chains that were definded.
|
||||||
|
*
|
||||||
|
* @param array $list List of proxies from the proxy ticket validation.
|
||||||
|
*
|
||||||
|
* @return bool if any chain fully matches the supplied list
|
||||||
|
*/
|
||||||
|
public function contains(array $list)
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
$count = 0;
|
||||||
|
foreach ($this->_chains as $chain) {
|
||||||
|
phpCAS::trace("Checking chain ". $count++);
|
||||||
|
if ($chain->matches($list)) {
|
||||||
|
phpCAS::traceEnd(true);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
phpCAS::trace("No proxy chain matches.");
|
||||||
|
phpCAS::traceEnd(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
64
vendor/apereo/phpcas/source/CAS/ProxyChain/Any.php
vendored
Normal file
64
vendor/apereo/phpcas/source/CAS/ProxyChain/Any.php
vendored
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxyChain/Any.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A proxy-chain definition that will match any list of proxies.
|
||||||
|
*
|
||||||
|
* Use this class for quick testing or in certain production screnarios you
|
||||||
|
* might want to allow allow any other valid service to proxy your service.
|
||||||
|
*
|
||||||
|
* THIS CLASS IS HOWEVER NOT RECOMMENDED FOR PRODUCTION AND HAS SECURITY
|
||||||
|
* IMPLICATIONS: YOU ARE ALLOWING ANY SERVICE TO ACT ON BEHALF OF A USER
|
||||||
|
* ON THIS SERVICE.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyChain_Any
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxyChain_Any
|
||||||
|
implements CAS_ProxyChain_Interface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Match a list of proxies.
|
||||||
|
*
|
||||||
|
* @param array $list The list of proxies in front of this service.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function matches(array $list)
|
||||||
|
{
|
||||||
|
phpCAS::trace("Using CAS_ProxyChain_Any. No proxy validation is performed.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
53
vendor/apereo/phpcas/source/CAS/ProxyChain/Interface.php
vendored
Normal file
53
vendor/apereo/phpcas/source/CAS/ProxyChain/Interface.php
vendored
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxyChain/Interface.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An interface for classes that define a list of allowed proxies in front of
|
||||||
|
* the current application.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyChain_Interface
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_ProxyChain_Interface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Match a list of proxies.
|
||||||
|
*
|
||||||
|
* @param array $list The list of proxies in front of this service.
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function matches(array $list);
|
||||||
|
|
||||||
|
}
|
59
vendor/apereo/phpcas/source/CAS/ProxyChain/Trusted.php
vendored
Normal file
59
vendor/apereo/phpcas/source/CAS/ProxyChain/Trusted.php
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/ProxyChain/Trusted.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A proxy-chain definition that defines a chain up to a trusted proxy and
|
||||||
|
* delegates the resposibility of validating the rest of the chain to that
|
||||||
|
* trusted proxy.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyChain_Trusted
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxyChain_Trusted
|
||||||
|
extends CAS_ProxyChain
|
||||||
|
implements CAS_ProxyChain_Interface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate the size of the the list as compared to our chain.
|
||||||
|
*
|
||||||
|
* @param array $list list of proxies
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function isSizeValid (array $list)
|
||||||
|
{
|
||||||
|
return (sizeof($this->chain) <= sizeof($list));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
71
vendor/apereo/phpcas/source/CAS/ProxyTicketException.php
vendored
Normal file
71
vendor/apereo/phpcas/source/CAS/ProxyTicketException.php
vendored
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @class CAS/ProxyTicketException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An Exception for errors related to fetching or validating proxy tickets.
|
||||||
|
*
|
||||||
|
* @class CAS_ProxyTicketException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_ProxyTicketException
|
||||||
|
extends BadMethodCallException
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* @param string $message Message text
|
||||||
|
* @param int $code Error code
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct ($message, $code = PHPCAS_SERVICE_PT_FAILURE)
|
||||||
|
{
|
||||||
|
// Warn if the code is not in our allowed list
|
||||||
|
$ptCodes = array(
|
||||||
|
PHPCAS_SERVICE_PT_FAILURE,
|
||||||
|
PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE,
|
||||||
|
PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE,
|
||||||
|
);
|
||||||
|
if (!in_array($code, $ptCodes)) {
|
||||||
|
trigger_error(
|
||||||
|
'Invalid code '.$code
|
||||||
|
.' passed. Must be one of PHPCAS_SERVICE_PT_FAILURE, PHPCAS_SERVICE_PT_NO_SERVER_RESPONSE, or PHPCAS_SERVICE_PT_BAD_SERVER_RESPONSE.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::__construct($message, $code);
|
||||||
|
}
|
||||||
|
}
|
380
vendor/apereo/phpcas/source/CAS/Request/AbstractRequest.php
vendored
Normal file
380
vendor/apereo/phpcas/source/CAS/Request/AbstractRequest.php
vendored
Normal file
@ -0,0 +1,380 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/AbstractRequest.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides support for performing web-requests via curl
|
||||||
|
*
|
||||||
|
* @class CAS_Request_AbstractRequest
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
abstract class CAS_Request_AbstractRequest
|
||||||
|
implements CAS_Request_RequestInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $url = null;
|
||||||
|
protected $cookies = array();
|
||||||
|
protected $headers = array();
|
||||||
|
protected $isPost = false;
|
||||||
|
protected $postBody = null;
|
||||||
|
protected $caCertPath = null;
|
||||||
|
protected $validateCN = true;
|
||||||
|
private $_sent = false;
|
||||||
|
private $_responseHeaders = array();
|
||||||
|
private $_responseBody = null;
|
||||||
|
private $_errorMessage = '';
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the URL of the Request
|
||||||
|
*
|
||||||
|
* @param string $url Url to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setUrl ($url)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->url = $url;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a cookie to the request.
|
||||||
|
*
|
||||||
|
* @param string $name Name of entry
|
||||||
|
* @param string $value value of entry
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addCookie ($name, $value)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cookies[$name] = $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an array of cookies to the request.
|
||||||
|
* The cookie array is of the form
|
||||||
|
* array('cookie_name' => 'cookie_value', 'cookie_name2' => cookie_value2')
|
||||||
|
*
|
||||||
|
* @param array $cookies cookies to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addCookies (array $cookies)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cookies = array_merge($this->cookies, $cookies);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a header string to the request.
|
||||||
|
*
|
||||||
|
* @param string $header Header to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addHeader ($header)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->headers[] = $header;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an array of header strings to the request.
|
||||||
|
*
|
||||||
|
* @param array $headers headers to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addHeaders (array $headers)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->headers = array_merge($this->headers, $headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make the request a POST request rather than the default GET request.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function makePost ()
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->isPost = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a POST body to the request
|
||||||
|
*
|
||||||
|
* @param string $body body to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setPostBody ($body)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!$this->isPost) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Cannot add a POST body to a GET request, use makePost() first.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->postBody = $body;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify the path to an SSL CA certificate to validate the server with.
|
||||||
|
*
|
||||||
|
* @param string $caCertPath path to cert
|
||||||
|
* @param bool $validate_cn valdiate CN of certificate
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setSslCaCert ($caCertPath,$validate_cn=true)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$this->caCertPath = $caCertPath;
|
||||||
|
$this->validateCN = $validate_cn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
*/
|
||||||
|
public function send ()
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot send again.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (is_null($this->url) || !$this->url) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'A url must be specified via setUrl() before the request can be sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
$this->_sent = true;
|
||||||
|
return $this->sendRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the request and store the results.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
*/
|
||||||
|
abstract protected function sendRequest ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store the response headers.
|
||||||
|
*
|
||||||
|
* @param array $headers headers to store
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function storeResponseHeaders (array $headers)
|
||||||
|
{
|
||||||
|
$this->_responseHeaders = array_merge($this->_responseHeaders, $headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a single response header to our array.
|
||||||
|
*
|
||||||
|
* @param string $header header to store
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function storeResponseHeader ($header)
|
||||||
|
{
|
||||||
|
$this->_responseHeaders[] = $header;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store the response body.
|
||||||
|
*
|
||||||
|
* @param string $body body to store
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function storeResponseBody ($body)
|
||||||
|
{
|
||||||
|
$this->_responseBody = $body;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a string to our error message.
|
||||||
|
*
|
||||||
|
* @param string $message message to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function storeErrorMessage ($message)
|
||||||
|
{
|
||||||
|
$this->_errorMessage .= $message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 3. Access the response
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the headers of the response.
|
||||||
|
*
|
||||||
|
* @return array An array of header strings.
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseHeaders ()
|
||||||
|
{
|
||||||
|
if (!$this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has not been sent yet. Cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $this->_responseHeaders;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer HTTP status code of the response
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
* @throws CAS_Request_Exception if the response did not contain a status code
|
||||||
|
*/
|
||||||
|
public function getResponseStatusCode ()
|
||||||
|
{
|
||||||
|
if (!$this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has not been sent yet. Cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!preg_match(
|
||||||
|
'/HTTP\/[0-9.]+\s+([0-9]+)\s*(.*)/',
|
||||||
|
$this->_responseHeaders[0], $matches
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
throw new CAS_Request_Exception(
|
||||||
|
'Bad response, no status code was found in the first line.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return intval($matches[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the body of response.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseBody ()
|
||||||
|
{
|
||||||
|
if (!$this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has not been sent yet. Cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->_responseBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a message describing any errors if the request failed.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getErrorMessage ()
|
||||||
|
{
|
||||||
|
if (!$this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has not been sent yet. Cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return $this->_errorMessage;
|
||||||
|
}
|
||||||
|
}
|
147
vendor/apereo/phpcas/source/CAS/Request/CurlMultiRequest.php
vendored
Normal file
147
vendor/apereo/phpcas/source/CAS/Request/CurlMultiRequest.php
vendored
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/AbstractRequest.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines a class library for performing multiple web requests
|
||||||
|
* in batches. Implementations of this interface may perform requests serially
|
||||||
|
* or in parallel.
|
||||||
|
*
|
||||||
|
* @class CAS_Request_CurlMultiRequest
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_Request_CurlMultiRequest
|
||||||
|
implements CAS_Request_MultiRequestInterface
|
||||||
|
{
|
||||||
|
private $_requests = array();
|
||||||
|
private $_sent = false;
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Add Requests
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a new Request to this batch.
|
||||||
|
* Note, implementations will likely restrict requests to their own concrete
|
||||||
|
* class hierarchy.
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $request reqest to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
* @throws CAS_InvalidArgumentException If passed a Request of the wrong
|
||||||
|
* implmentation.
|
||||||
|
*/
|
||||||
|
public function addRequest (CAS_Request_RequestInterface $request)
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!$request instanceof CAS_Request_CurlRequest) {
|
||||||
|
throw new CAS_InvalidArgumentException(
|
||||||
|
'As a CAS_Request_CurlMultiRequest, I can only work with CAS_Request_CurlRequest objects.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_requests[] = $request;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the number of requests added to this batch.
|
||||||
|
*
|
||||||
|
* @return int number of request elements
|
||||||
|
* @throws CAS_OutOfSequenceException if the request has already been sent
|
||||||
|
*/
|
||||||
|
public function getNumRequests()
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot '.__METHOD__
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return count($this->_requests);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request. After sending, all requests will have their
|
||||||
|
* responses poulated.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
*/
|
||||||
|
public function send ()
|
||||||
|
{
|
||||||
|
if ($this->_sent) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'Request has already been sent cannot send again.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!count($this->_requests)) {
|
||||||
|
throw new CAS_OutOfSequenceException(
|
||||||
|
'At least one request must be added via addRequest() before the multi-request can be sent.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->_sent = true;
|
||||||
|
|
||||||
|
// Initialize our handles and configure all requests.
|
||||||
|
$handles = array();
|
||||||
|
$multiHandle = curl_multi_init();
|
||||||
|
foreach ($this->_requests as $i => $request) {
|
||||||
|
$handle = $request->initAndConfigure();
|
||||||
|
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
$handles[$i] = $handle;
|
||||||
|
curl_multi_add_handle($multiHandle, $handle);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute the requests in parallel.
|
||||||
|
do {
|
||||||
|
curl_multi_exec($multiHandle, $running);
|
||||||
|
} while ($running > 0);
|
||||||
|
|
||||||
|
// Populate all of the responses or errors back into the request objects.
|
||||||
|
foreach ($this->_requests as $i => $request) {
|
||||||
|
$buf = curl_multi_getcontent($handles[$i]);
|
||||||
|
$request->_storeResponseBody($buf);
|
||||||
|
curl_multi_remove_handle($multiHandle, $handles[$i]);
|
||||||
|
curl_close($handles[$i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
curl_multi_close($multiHandle);
|
||||||
|
}
|
||||||
|
}
|
200
vendor/apereo/phpcas/source/CAS/Request/CurlRequest.php
vendored
Normal file
200
vendor/apereo/phpcas/source/CAS/Request/CurlRequest.php
vendored
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/CurlRequest.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides support for performing web-requests via curl
|
||||||
|
*
|
||||||
|
* @class CAS_Request_CurlRequest
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_Request_CurlRequest
|
||||||
|
extends CAS_Request_AbstractRequest
|
||||||
|
implements CAS_Request_RequestInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set additional curl options
|
||||||
|
*
|
||||||
|
* @param array $options option to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setCurlOptions (array $options)
|
||||||
|
{
|
||||||
|
$this->_curlOptions = $options;
|
||||||
|
}
|
||||||
|
private $_curlOptions = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send the request and store the results.
|
||||||
|
*
|
||||||
|
* @return bool true on success, false on failure.
|
||||||
|
*/
|
||||||
|
protected function sendRequest ()
|
||||||
|
{
|
||||||
|
phpCAS::traceBegin();
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* initialize the CURL session
|
||||||
|
*********************************************************/
|
||||||
|
$ch = $this->initAndConfigure();
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Perform the query
|
||||||
|
*********************************************************/
|
||||||
|
$buf = curl_exec($ch);
|
||||||
|
if ( $buf === false ) {
|
||||||
|
phpCAS::trace('curl_exec() failed');
|
||||||
|
$this->storeErrorMessage(
|
||||||
|
'CURL error #'.curl_errno($ch).': '.curl_error($ch)
|
||||||
|
);
|
||||||
|
$res = false;
|
||||||
|
} else {
|
||||||
|
$this->storeResponseBody($buf);
|
||||||
|
phpCAS::trace("Response Body: \n".$buf."\n");
|
||||||
|
$res = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
// close the CURL session
|
||||||
|
curl_close($ch);
|
||||||
|
|
||||||
|
phpCAS::traceEnd($res);
|
||||||
|
return $res;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal method to initialize our cURL handle and configure the request.
|
||||||
|
* This method should NOT be used outside of the CurlRequest or the
|
||||||
|
* CurlMultiRequest.
|
||||||
|
*
|
||||||
|
* @return resource|false The cURL handle on success, false on failure
|
||||||
|
*/
|
||||||
|
public function initAndConfigure()
|
||||||
|
{
|
||||||
|
/*********************************************************
|
||||||
|
* initialize the CURL session
|
||||||
|
*********************************************************/
|
||||||
|
$ch = curl_init($this->url);
|
||||||
|
|
||||||
|
if (version_compare(PHP_VERSION, '5.1.3', '>=')) {
|
||||||
|
//only avaible in php5
|
||||||
|
curl_setopt_array($ch, $this->_curlOptions);
|
||||||
|
} else {
|
||||||
|
foreach ($this->_curlOptions as $key => $value) {
|
||||||
|
curl_setopt($ch, $key, $value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Set SSL configuration
|
||||||
|
*********************************************************/
|
||||||
|
if ($this->caCertPath) {
|
||||||
|
if ($this->validateCN) {
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
||||||
|
} else {
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_CAINFO, $this->caCertPath);
|
||||||
|
phpCAS::trace('CURL: Set CURLOPT_CAINFO ' . $this->caCertPath);
|
||||||
|
} else {
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure curl to capture our output.
|
||||||
|
*********************************************************/
|
||||||
|
// return the CURL output into a variable
|
||||||
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||||
|
|
||||||
|
// get the HTTP header with a callback
|
||||||
|
curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, '_curlReadHeaders'));
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Add cookie headers to our request.
|
||||||
|
*********************************************************/
|
||||||
|
if (count($this->cookies)) {
|
||||||
|
$cookieStrings = array();
|
||||||
|
foreach ($this->cookies as $name => $val) {
|
||||||
|
$cookieStrings[] = $name.'='.$val;
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_COOKIE, implode(';', $cookieStrings));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Add any additional headers
|
||||||
|
*********************************************************/
|
||||||
|
if (count($this->headers)) {
|
||||||
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Flag and Body for POST requests
|
||||||
|
*********************************************************/
|
||||||
|
if ($this->isPost) {
|
||||||
|
curl_setopt($ch, CURLOPT_POST, 1);
|
||||||
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->postBody);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store the response body.
|
||||||
|
* This method should NOT be used outside of the CurlRequest or the
|
||||||
|
* CurlMultiRequest.
|
||||||
|
*
|
||||||
|
* @param string $body body to stor
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
private function _storeResponseBody ($body)
|
||||||
|
{
|
||||||
|
$this->storeResponseBody($body);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal method for capturing the headers from a curl request.
|
||||||
|
*
|
||||||
|
* @param resource $ch handle of curl
|
||||||
|
* @param string $header header
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
private function _curlReadHeaders ($ch, $header)
|
||||||
|
{
|
||||||
|
$this->storeResponseHeader($header);
|
||||||
|
return strlen($header);
|
||||||
|
}
|
||||||
|
}
|
45
vendor/apereo/phpcas/source/CAS/Request/Exception.php
vendored
Normal file
45
vendor/apereo/phpcas/source/CAS/Request/Exception.php
vendored
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/Exception.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An Exception for problems performing requests
|
||||||
|
*
|
||||||
|
* @class CAS_Request_Exception
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_Request_Exception
|
||||||
|
extends Exception
|
||||||
|
implements CAS_Exception
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
83
vendor/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php
vendored
Normal file
83
vendor/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php
vendored
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/MultiRequestInterface.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines a class library for performing multiple web requests
|
||||||
|
* in batches. Implementations of this interface may perform requests serially
|
||||||
|
* or in parallel.
|
||||||
|
*
|
||||||
|
* @class CAS_Request_MultiRequestInterface
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_Request_MultiRequestInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Add Requests
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a new Request to this batch.
|
||||||
|
* Note, implementations will likely restrict requests to their own concrete
|
||||||
|
* class hierarchy.
|
||||||
|
*
|
||||||
|
* @param CAS_Request_RequestInterface $request request interface
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been
|
||||||
|
* sent.
|
||||||
|
* @throws CAS_InvalidArgumentException If passed a Request of the wrong
|
||||||
|
* implmentation.
|
||||||
|
*/
|
||||||
|
public function addRequest (CAS_Request_RequestInterface $request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the number of requests added to this batch.
|
||||||
|
*
|
||||||
|
* @return int number of request elements
|
||||||
|
*/
|
||||||
|
public function getNumRequests ();
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request. After sending, all requests will have their
|
||||||
|
* responses poulated.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
*/
|
||||||
|
public function send ();
|
||||||
|
}
|
179
vendor/apereo/phpcas/source/CAS/Request/RequestInterface.php
vendored
Normal file
179
vendor/apereo/phpcas/source/CAS/Request/RequestInterface.php
vendored
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/Request/RequestInterface.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface defines a class library for performing web requests.
|
||||||
|
*
|
||||||
|
* @class CAS_Request_RequestInterface
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
interface CAS_Request_RequestInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* Configure the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the URL of the Request
|
||||||
|
*
|
||||||
|
* @param string $url url to set
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setUrl ($url);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a cookie to the request.
|
||||||
|
*
|
||||||
|
* @param string $name name of cookie
|
||||||
|
* @param string $value value of cookie
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addCookie ($name, $value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an array of cookies to the request.
|
||||||
|
* The cookie array is of the form
|
||||||
|
* array('cookie_name' => 'cookie_value', 'cookie_name2' => cookie_value2')
|
||||||
|
*
|
||||||
|
* @param array $cookies cookies to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addCookies (array $cookies);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a header string to the request.
|
||||||
|
*
|
||||||
|
* @param string $header header to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addHeader ($header);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add an array of header strings to the request.
|
||||||
|
*
|
||||||
|
* @param array $headers headers to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function addHeaders (array $headers);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make the request a POST request rather than the default GET request.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function makePost ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a POST body to the request
|
||||||
|
*
|
||||||
|
* @param string $body body to add
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setPostBody ($body);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specify the path to an SSL CA certificate to validate the server with.
|
||||||
|
*
|
||||||
|
* @param string $caCertPath path to cert file
|
||||||
|
* @param boolean $validate_cn validate CN of SSL certificate
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
* @throws CAS_OutOfSequenceException If called after the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function setSslCaCert ($caCertPath, $validate_cn = true);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 2. Send the Request
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Perform the request.
|
||||||
|
*
|
||||||
|
* @return bool TRUE on success, FALSE on failure.
|
||||||
|
* @throws CAS_OutOfSequenceException If called multiple times.
|
||||||
|
*/
|
||||||
|
public function send ();
|
||||||
|
|
||||||
|
/*********************************************************
|
||||||
|
* 3. Access the response
|
||||||
|
*********************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the headers of the response.
|
||||||
|
*
|
||||||
|
* @return array An array of header strings.
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseHeaders ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer HTTP status code of the response
|
||||||
|
*
|
||||||
|
* @return int
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseStatusCode ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer the body of response.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getResponseBody ();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Answer a message describing any errors if the request failed.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
* @throws CAS_OutOfSequenceException If called before the Request has been sent.
|
||||||
|
*/
|
||||||
|
public function getErrorMessage ();
|
||||||
|
}
|
70
vendor/apereo/phpcas/source/CAS/TypeMismatchException.php
vendored
Normal file
70
vendor/apereo/phpcas/source/CAS/TypeMismatchException.php
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Licensed to Jasig under one or more contributor license
|
||||||
|
* agreements. See the NOTICE file distributed with this work for
|
||||||
|
* additional information regarding copyright ownership.
|
||||||
|
*
|
||||||
|
* Jasig licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except in
|
||||||
|
* compliance with the License. You may obtain a copy of the License at:
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* PHP Version 5
|
||||||
|
*
|
||||||
|
* @file CAS/InvalidArgumentException.php
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Exception that denotes invalid arguments were passed.
|
||||||
|
*
|
||||||
|
* @class CAS_InvalidArgumentException
|
||||||
|
* @category Authentication
|
||||||
|
* @package PhpCAS
|
||||||
|
* @author Adam Franco <afranco@middlebury.edu>
|
||||||
|
* @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0
|
||||||
|
* @link https://wiki.jasig.org/display/CASC/phpCAS
|
||||||
|
*/
|
||||||
|
class CAS_TypeMismatchException
|
||||||
|
extends CAS_InvalidArgumentException
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Constructor, provides a nice message.
|
||||||
|
*
|
||||||
|
* @param mixed $argument Argument
|
||||||
|
* @param string $argumentName Argument Name
|
||||||
|
* @param string $type Type
|
||||||
|
* @param string $message Error Message
|
||||||
|
* @param integer $code Code
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct (
|
||||||
|
$argument, $argumentName, $type, $message = '', $code = 0
|
||||||
|
) {
|
||||||
|
if (is_object($argument)) {
|
||||||
|
$foundType = get_class($argument).' object';
|
||||||
|
} else {
|
||||||
|
$foundType = gettype($argument);
|
||||||
|
}
|
||||||
|
|
||||||
|
parent::__construct(
|
||||||
|
'type mismatched for parameter '
|
||||||
|
. $argumentName . ' (should be \'' . $type .' \'), '
|
||||||
|
. $foundType . ' given. ' . $message, $code
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
@ -4,4 +4,4 @@
|
|||||||
|
|
||||||
require_once __DIR__ . '/composer/autoload_real.php';
|
require_once __DIR__ . '/composer/autoload_real.php';
|
||||||
|
|
||||||
return ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2::getLoader();
|
return ComposerAutoloaderInit444c3f31864f68a3f466e2c19837e185::getLoader();
|
||||||
|
135
vendor/composer/autoload_classmap.php
vendored
135
vendor/composer/autoload_classmap.php
vendored
@ -101,6 +101,50 @@ return array(
|
|||||||
'Auth_Yadis_Yadis' => $vendorDir . '/openid/php-openid/Auth/Yadis/Yadis.php',
|
'Auth_Yadis_Yadis' => $vendorDir . '/openid/php-openid/Auth/Yadis/Yadis.php',
|
||||||
'Auth_Yadis_dom' => $vendorDir . '/openid/php-openid/Auth/Yadis/XML.php',
|
'Auth_Yadis_dom' => $vendorDir . '/openid/php-openid/Auth/Yadis/XML.php',
|
||||||
'Auth_Yadis_domxml' => $vendorDir . '/openid/php-openid/Auth/Yadis/XML.php',
|
'Auth_Yadis_domxml' => $vendorDir . '/openid/php-openid/Auth/Yadis/XML.php',
|
||||||
|
'CAS_AuthenticationException' => $vendorDir . '/apereo/phpcas/source/CAS/AuthenticationException.php',
|
||||||
|
'CAS_Client' => $vendorDir . '/apereo/phpcas/source/CAS/Client.php',
|
||||||
|
'CAS_CookieJar' => $vendorDir . '/apereo/phpcas/source/CAS/CookieJar.php',
|
||||||
|
'CAS_Exception' => $vendorDir . '/apereo/phpcas/source/CAS/Exception.php',
|
||||||
|
'CAS_GracefullTerminationException' => $vendorDir . '/apereo/phpcas/source/CAS/GracefullTerminationException.php',
|
||||||
|
'CAS_InvalidArgumentException' => $vendorDir . '/apereo/phpcas/source/CAS/InvalidArgumentException.php',
|
||||||
|
'CAS_Languages_Catalan' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/Catalan.php',
|
||||||
|
'CAS_Languages_ChineseSimplified' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/ChineseSimplified.php',
|
||||||
|
'CAS_Languages_English' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/English.php',
|
||||||
|
'CAS_Languages_French' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/French.php',
|
||||||
|
'CAS_Languages_German' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/German.php',
|
||||||
|
'CAS_Languages_Greek' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/Greek.php',
|
||||||
|
'CAS_Languages_Japanese' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/Japanese.php',
|
||||||
|
'CAS_Languages_LanguageInterface' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/LanguageInterface.php',
|
||||||
|
'CAS_Languages_Spanish' => $vendorDir . '/apereo/phpcas/source/CAS/Languages/Spanish.php',
|
||||||
|
'CAS_OutOfSequenceBeforeAuthenticationCallException' => $vendorDir . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php',
|
||||||
|
'CAS_OutOfSequenceBeforeClientException' => $vendorDir . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeClientException.php',
|
||||||
|
'CAS_OutOfSequenceBeforeProxyException' => $vendorDir . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php',
|
||||||
|
'CAS_OutOfSequenceException' => $vendorDir . '/apereo/phpcas/source/CAS/OutOfSequenceException.php',
|
||||||
|
'CAS_PGTStorage_AbstractStorage' => $vendorDir . '/apereo/phpcas/source/CAS/PGTStorage/AbstractStorage.php',
|
||||||
|
'CAS_PGTStorage_Db' => $vendorDir . '/apereo/phpcas/source/CAS/PGTStorage/Db.php',
|
||||||
|
'CAS_PGTStorage_File' => $vendorDir . '/apereo/phpcas/source/CAS/PGTStorage/File.php',
|
||||||
|
'CAS_ProxiedService' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService.php',
|
||||||
|
'CAS_ProxiedService_Abstract' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Abstract.php',
|
||||||
|
'CAS_ProxiedService_Exception' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Exception.php',
|
||||||
|
'CAS_ProxiedService_Http' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Http.php',
|
||||||
|
'CAS_ProxiedService_Http_Abstract' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Http/Abstract.php',
|
||||||
|
'CAS_ProxiedService_Http_Get' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Http/Get.php',
|
||||||
|
'CAS_ProxiedService_Http_Post' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Http/Post.php',
|
||||||
|
'CAS_ProxiedService_Imap' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Imap.php',
|
||||||
|
'CAS_ProxiedService_Testable' => $vendorDir . '/apereo/phpcas/source/CAS/ProxiedService/Testable.php',
|
||||||
|
'CAS_ProxyChain' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyChain.php',
|
||||||
|
'CAS_ProxyChain_AllowedList' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyChain/AllowedList.php',
|
||||||
|
'CAS_ProxyChain_Any' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyChain/Any.php',
|
||||||
|
'CAS_ProxyChain_Interface' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyChain/Interface.php',
|
||||||
|
'CAS_ProxyChain_Trusted' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyChain/Trusted.php',
|
||||||
|
'CAS_ProxyTicketException' => $vendorDir . '/apereo/phpcas/source/CAS/ProxyTicketException.php',
|
||||||
|
'CAS_Request_AbstractRequest' => $vendorDir . '/apereo/phpcas/source/CAS/Request/AbstractRequest.php',
|
||||||
|
'CAS_Request_CurlMultiRequest' => $vendorDir . '/apereo/phpcas/source/CAS/Request/CurlMultiRequest.php',
|
||||||
|
'CAS_Request_CurlRequest' => $vendorDir . '/apereo/phpcas/source/CAS/Request/CurlRequest.php',
|
||||||
|
'CAS_Request_Exception' => $vendorDir . '/apereo/phpcas/source/CAS/Request/Exception.php',
|
||||||
|
'CAS_Request_MultiRequestInterface' => $vendorDir . '/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php',
|
||||||
|
'CAS_Request_RequestInterface' => $vendorDir . '/apereo/phpcas/source/CAS/Request/RequestInterface.php',
|
||||||
|
'CAS_TypeMismatchException' => $vendorDir . '/apereo/phpcas/source/CAS/TypeMismatchException.php',
|
||||||
'HTMLPurifier' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
|
'HTMLPurifier' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
|
||||||
'HTMLPurifier_Arborize' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
|
'HTMLPurifier_Arborize' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
|
||||||
'HTMLPurifier_AttrCollections' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
|
'HTMLPurifier_AttrCollections' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
|
||||||
@ -355,4 +399,95 @@ return array(
|
|||||||
'Masterminds\\HTML5\\Serializer\\OutputRules' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/OutputRules.php',
|
'Masterminds\\HTML5\\Serializer\\OutputRules' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/OutputRules.php',
|
||||||
'Masterminds\\HTML5\\Serializer\\RulesInterface' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/RulesInterface.php',
|
'Masterminds\\HTML5\\Serializer\\RulesInterface' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/RulesInterface.php',
|
||||||
'Masterminds\\HTML5\\Serializer\\Traverser' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/Traverser.php',
|
'Masterminds\\HTML5\\Serializer\\Traverser' => $vendorDir . '/masterminds/html5/src/HTML5/Serializer/Traverser.php',
|
||||||
|
'Michelf\\Markdown' => $vendorDir . '/michelf/php-markdown/Michelf/Markdown.php',
|
||||||
|
'Michelf\\MarkdownExtra' => $vendorDir . '/michelf/php-markdown/Michelf/MarkdownExtra.php',
|
||||||
|
'Michelf\\MarkdownInterface' => $vendorDir . '/michelf/php-markdown/Michelf/MarkdownInterface.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base32' => $vendorDir . '/paragonie/constant_time_encoding/src/Base32.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base32Hex' => $vendorDir . '/paragonie/constant_time_encoding/src/Base32Hex.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64DotSlash' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64DotSlash.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64DotSlashOrdered' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64UrlSafe' => $vendorDir . '/paragonie/constant_time_encoding/src/Base64UrlSafe.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Binary' => $vendorDir . '/paragonie/constant_time_encoding/src/Binary.php',
|
||||||
|
'ParagonIE\\ConstantTime\\EncoderInterface' => $vendorDir . '/paragonie/constant_time_encoding/src/EncoderInterface.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Encoding' => $vendorDir . '/paragonie/constant_time_encoding/src/Encoding.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Hex' => $vendorDir . '/paragonie/constant_time_encoding/src/Hex.php',
|
||||||
|
'ParagonIE\\ConstantTime\\RFC4648' => $vendorDir . '/paragonie/constant_time_encoding/src/RFC4648.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\ActiveMq' => $vendorDir . '/stomp-php/stomp-php/src/Broker/ActiveMq/ActiveMq.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Mode\\ActiveMqMode' => $vendorDir . '/stomp-php/stomp-php/src/Broker/ActiveMq/Mode/ActiveMqMode.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Mode\\DurableSubscription' => $vendorDir . '/stomp-php/stomp-php/src/Broker/ActiveMq/Mode/DurableSubscription.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Options' => $vendorDir . '/stomp-php/stomp-php/src/Broker/ActiveMq/Options.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Apollo' => $vendorDir . '/stomp-php/stomp-php/src/Broker/Apollo/Apollo.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Mode\\QueueBrowser' => $vendorDir . '/stomp-php/stomp-php/src/Broker/Apollo/Mode/QueueBrowser.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Mode\\SequenceQueueBrowser' => $vendorDir . '/stomp-php/stomp-php/src/Broker/Apollo/Mode/SequenceQueueBrowser.php',
|
||||||
|
'Stomp\\Broker\\Exception\\UnsupportedBrokerException' => $vendorDir . '/stomp-php/stomp-php/src/Broker/Exception/UnsupportedBrokerException.php',
|
||||||
|
'Stomp\\Broker\\OpenMq\\OpenMq' => $vendorDir . '/stomp-php/stomp-php/src/Broker/OpenMq/OpenMq.php',
|
||||||
|
'Stomp\\Broker\\RabbitMq\\RabbitMq' => $vendorDir . '/stomp-php/stomp-php/src/Broker/RabbitMq/RabbitMq.php',
|
||||||
|
'Stomp\\Client' => $vendorDir . '/stomp-php/stomp-php/src/Client.php',
|
||||||
|
'Stomp\\Exception\\ConnectionException' => $vendorDir . '/stomp-php/stomp-php/src/Exception/ConnectionException.php',
|
||||||
|
'Stomp\\Exception\\ErrorFrameException' => $vendorDir . '/stomp-php/stomp-php/src/Exception/ErrorFrameException.php',
|
||||||
|
'Stomp\\Exception\\MissingReceiptException' => $vendorDir . '/stomp-php/stomp-php/src/Exception/MissingReceiptException.php',
|
||||||
|
'Stomp\\Exception\\StompException' => $vendorDir . '/stomp-php/stomp-php/src/Exception/StompException.php',
|
||||||
|
'Stomp\\Exception\\UnexpectedResponseException' => $vendorDir . '/stomp-php/stomp-php/src/Exception/UnexpectedResponseException.php',
|
||||||
|
'Stomp\\Network\\Connection' => $vendorDir . '/stomp-php/stomp-php/src/Network/Connection.php',
|
||||||
|
'Stomp\\Network\\Observer\\AbstractBeats' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/AbstractBeats.php',
|
||||||
|
'Stomp\\Network\\Observer\\ConnectionObserver' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/ConnectionObserver.php',
|
||||||
|
'Stomp\\Network\\Observer\\ConnectionObserverCollection' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/ConnectionObserverCollection.php',
|
||||||
|
'Stomp\\Network\\Observer\\Exception\\HeartbeatException' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/Exception/HeartbeatException.php',
|
||||||
|
'Stomp\\Network\\Observer\\HeartbeatEmitter' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/HeartbeatEmitter.php',
|
||||||
|
'Stomp\\Network\\Observer\\ServerAliveObserver' => $vendorDir . '/stomp-php/stomp-php/src/Network/Observer/ServerAliveObserver.php',
|
||||||
|
'Stomp\\Protocol\\Protocol' => $vendorDir . '/stomp-php/stomp-php/src/Protocol/Protocol.php',
|
||||||
|
'Stomp\\Protocol\\Version' => $vendorDir . '/stomp-php/stomp-php/src/Protocol/Version.php',
|
||||||
|
'Stomp\\SimpleStomp' => $vendorDir . '/stomp-php/stomp-php/src/SimpleStomp.php',
|
||||||
|
'Stomp\\StatefulStomp' => $vendorDir . '/stomp-php/stomp-php/src/StatefulStomp.php',
|
||||||
|
'Stomp\\States\\ConsumerState' => $vendorDir . '/stomp-php/stomp-php/src/States/ConsumerState.php',
|
||||||
|
'Stomp\\States\\ConsumerTransactionState' => $vendorDir . '/stomp-php/stomp-php/src/States/ConsumerTransactionState.php',
|
||||||
|
'Stomp\\States\\Exception\\InvalidStateException' => $vendorDir . '/stomp-php/stomp-php/src/States/Exception/InvalidStateException.php',
|
||||||
|
'Stomp\\States\\IStateful' => $vendorDir . '/stomp-php/stomp-php/src/States/IStateful.php',
|
||||||
|
'Stomp\\States\\Meta\\Subscription' => $vendorDir . '/stomp-php/stomp-php/src/States/Meta/Subscription.php',
|
||||||
|
'Stomp\\States\\Meta\\SubscriptionList' => $vendorDir . '/stomp-php/stomp-php/src/States/Meta/SubscriptionList.php',
|
||||||
|
'Stomp\\States\\ProducerState' => $vendorDir . '/stomp-php/stomp-php/src/States/ProducerState.php',
|
||||||
|
'Stomp\\States\\ProducerTransactionState' => $vendorDir . '/stomp-php/stomp-php/src/States/ProducerTransactionState.php',
|
||||||
|
'Stomp\\States\\StateSetter' => $vendorDir . '/stomp-php/stomp-php/src/States/StateSetter.php',
|
||||||
|
'Stomp\\States\\StateTemplate' => $vendorDir . '/stomp-php/stomp-php/src/States/StateTemplate.php',
|
||||||
|
'Stomp\\States\\TransactionsTrait' => $vendorDir . '/stomp-php/stomp-php/src/States/TransactionsTrait.php',
|
||||||
|
'Stomp\\Transport\\Bytes' => $vendorDir . '/stomp-php/stomp-php/src/Transport/Bytes.php',
|
||||||
|
'Stomp\\Transport\\Frame' => $vendorDir . '/stomp-php/stomp-php/src/Transport/Frame.php',
|
||||||
|
'Stomp\\Transport\\FrameFactory' => $vendorDir . '/stomp-php/stomp-php/src/Transport/FrameFactory.php',
|
||||||
|
'Stomp\\Transport\\Map' => $vendorDir . '/stomp-php/stomp-php/src/Transport/Map.php',
|
||||||
|
'Stomp\\Transport\\Message' => $vendorDir . '/stomp-php/stomp-php/src/Transport/Message.php',
|
||||||
|
'Stomp\\Transport\\Parser' => $vendorDir . '/stomp-php/stomp-php/src/Transport/Parser.php',
|
||||||
|
'Stomp\\Util\\IdGenerator' => $vendorDir . '/stomp-php/stomp-php/src/Util/IdGenerator.php',
|
||||||
|
'XMPPHP\\BOSH' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/BOSH.php',
|
||||||
|
'XMPPHP\\Exception' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/Exception.php',
|
||||||
|
'XMPPHP\\Log' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/Log.php',
|
||||||
|
'XMPPHP\\Roster' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/Roster.php',
|
||||||
|
'XMPPHP\\XMLObj' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/XMLObj.php',
|
||||||
|
'XMPPHP\\XMLStream' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/XMLStream.php',
|
||||||
|
'XMPPHP\\XMPP' => $vendorDir . '/diogocomposer/xmpphp/XMPPHP/XMPP.php',
|
||||||
|
'phpCAS' => $vendorDir . '/apereo/phpcas/source/CAS.php',
|
||||||
|
'phpseclib\\Crypt\\AES' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/AES.php',
|
||||||
|
'phpseclib\\Crypt\\Base' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Base.php',
|
||||||
|
'phpseclib\\Crypt\\Blowfish' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php',
|
||||||
|
'phpseclib\\Crypt\\DES' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/DES.php',
|
||||||
|
'phpseclib\\Crypt\\Hash' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Hash.php',
|
||||||
|
'phpseclib\\Crypt\\RC2' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/RC2.php',
|
||||||
|
'phpseclib\\Crypt\\RC4' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/RC4.php',
|
||||||
|
'phpseclib\\Crypt\\RSA' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/RSA.php',
|
||||||
|
'phpseclib\\Crypt\\Random' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Random.php',
|
||||||
|
'phpseclib\\Crypt\\Rijndael' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php',
|
||||||
|
'phpseclib\\Crypt\\TripleDES' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php',
|
||||||
|
'phpseclib\\Crypt\\Twofish' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php',
|
||||||
|
'phpseclib\\File\\ANSI' => $vendorDir . '/phpseclib/phpseclib/phpseclib/File/ANSI.php',
|
||||||
|
'phpseclib\\File\\ASN1' => $vendorDir . '/phpseclib/phpseclib/phpseclib/File/ASN1.php',
|
||||||
|
'phpseclib\\File\\ASN1\\Element' => $vendorDir . '/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php',
|
||||||
|
'phpseclib\\File\\X509' => $vendorDir . '/phpseclib/phpseclib/phpseclib/File/X509.php',
|
||||||
|
'phpseclib\\Math\\BigInteger' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Math/BigInteger.php',
|
||||||
|
'phpseclib\\Net\\SCP' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Net/SCP.php',
|
||||||
|
'phpseclib\\Net\\SFTP' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Net/SFTP.php',
|
||||||
|
'phpseclib\\Net\\SFTP\\Stream' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php',
|
||||||
|
'phpseclib\\Net\\SSH1' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Net/SSH1.php',
|
||||||
|
'phpseclib\\Net\\SSH2' => $vendorDir . '/phpseclib/phpseclib/phpseclib/Net/SSH2.php',
|
||||||
|
'phpseclib\\System\\SSH\\Agent' => $vendorDir . '/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php',
|
||||||
|
'phpseclib\\System\\SSH\\Agent\\Identity' => $vendorDir . '/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php',
|
||||||
);
|
);
|
||||||
|
1
vendor/composer/autoload_files.php
vendored
1
vendor/composer/autoload_files.php
vendored
@ -8,4 +8,5 @@ $baseDir = dirname($vendorDir);
|
|||||||
return array(
|
return array(
|
||||||
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
'2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
||||||
'757772e28a0943a9afe83def8db95bdf' => $vendorDir . '/mf2/mf2/Mf2/Parser.php',
|
'757772e28a0943a9afe83def8db95bdf' => $vendorDir . '/mf2/mf2/Mf2/Parser.php',
|
||||||
|
'decc78cc4436b1292c6c0d151b19445c' => $vendorDir . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
||||||
);
|
);
|
||||||
|
5
vendor/composer/autoload_psr4.php
vendored
5
vendor/composer/autoload_psr4.php
vendored
@ -6,5 +6,10 @@ $vendorDir = dirname(dirname(__FILE__));
|
|||||||
$baseDir = dirname($vendorDir);
|
$baseDir = dirname($vendorDir);
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
|
'phpseclib\\' => array($vendorDir . '/phpseclib/phpseclib/phpseclib'),
|
||||||
|
'XMPPHP\\' => array($vendorDir . '/diogocomposer/xmpphp/XMPPHP'),
|
||||||
|
'Stomp\\' => array($vendorDir . '/stomp-php/stomp-php/src'),
|
||||||
|
'ParagonIE\\ConstantTime\\' => array($vendorDir . '/paragonie/constant_time_encoding/src'),
|
||||||
|
'Michelf\\' => array($vendorDir . '/michelf/php-markdown/Michelf'),
|
||||||
'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'),
|
'Masterminds\\' => array($vendorDir . '/masterminds/html5/src'),
|
||||||
);
|
);
|
||||||
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
// autoload_real.php @generated by Composer
|
// autoload_real.php @generated by Composer
|
||||||
|
|
||||||
class ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2
|
class ComposerAutoloaderInit444c3f31864f68a3f466e2c19837e185
|
||||||
{
|
{
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
@ -19,9 +19,9 @@ class ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2
|
|||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
|
||||||
spl_autoload_register(array('ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2', 'loadClassLoader'), true, true);
|
spl_autoload_register(array('ComposerAutoloaderInit444c3f31864f68a3f466e2c19837e185', 'loadClassLoader'), true, true);
|
||||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||||
spl_autoload_unregister(array('ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2', 'loadClassLoader'));
|
spl_autoload_unregister(array('ComposerAutoloaderInit444c3f31864f68a3f466e2c19837e185', 'loadClassLoader'));
|
||||||
|
|
||||||
$includePaths = require __DIR__ . '/include_paths.php';
|
$includePaths = require __DIR__ . '/include_paths.php';
|
||||||
$includePaths[] = get_include_path();
|
$includePaths[] = get_include_path();
|
||||||
@ -31,7 +31,7 @@ class ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2
|
|||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
require_once __DIR__ . '/autoload_static.php';
|
require_once __DIR__ . '/autoload_static.php';
|
||||||
|
|
||||||
call_user_func(\Composer\Autoload\ComposerStaticInit4f5ec3b37be240134637564819b99dd2::getInitializer($loader));
|
call_user_func(\Composer\Autoload\ComposerStaticInit444c3f31864f68a3f466e2c19837e185::getInitializer($loader));
|
||||||
} else {
|
} else {
|
||||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||||
foreach ($map as $namespace => $path) {
|
foreach ($map as $namespace => $path) {
|
||||||
@ -52,19 +52,19 @@ class ComposerAutoloaderInit4f5ec3b37be240134637564819b99dd2
|
|||||||
$loader->register(true);
|
$loader->register(true);
|
||||||
|
|
||||||
if ($useStaticLoader) {
|
if ($useStaticLoader) {
|
||||||
$includeFiles = Composer\Autoload\ComposerStaticInit4f5ec3b37be240134637564819b99dd2::$files;
|
$includeFiles = Composer\Autoload\ComposerStaticInit444c3f31864f68a3f466e2c19837e185::$files;
|
||||||
} else {
|
} else {
|
||||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||||
}
|
}
|
||||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||||
composerRequire4f5ec3b37be240134637564819b99dd2($fileIdentifier, $file);
|
composerRequire444c3f31864f68a3f466e2c19837e185($fileIdentifier, $file);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $loader;
|
return $loader;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function composerRequire4f5ec3b37be240134637564819b99dd2($fileIdentifier, $file)
|
function composerRequire444c3f31864f68a3f466e2c19837e185($fileIdentifier, $file)
|
||||||
{
|
{
|
||||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||||
require $file;
|
require $file;
|
||||||
|
183
vendor/composer/autoload_static.php
vendored
183
vendor/composer/autoload_static.php
vendored
@ -4,21 +4,59 @@
|
|||||||
|
|
||||||
namespace Composer\Autoload;
|
namespace Composer\Autoload;
|
||||||
|
|
||||||
class ComposerStaticInit4f5ec3b37be240134637564819b99dd2
|
class ComposerStaticInit444c3f31864f68a3f466e2c19837e185
|
||||||
{
|
{
|
||||||
public static $files = array (
|
public static $files = array (
|
||||||
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
'2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php',
|
||||||
'757772e28a0943a9afe83def8db95bdf' => __DIR__ . '/..' . '/mf2/mf2/Mf2/Parser.php',
|
'757772e28a0943a9afe83def8db95bdf' => __DIR__ . '/..' . '/mf2/mf2/Mf2/Parser.php',
|
||||||
|
'decc78cc4436b1292c6c0d151b19445c' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/bootstrap.php',
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixLengthsPsr4 = array (
|
public static $prefixLengthsPsr4 = array (
|
||||||
|
'p' =>
|
||||||
|
array (
|
||||||
|
'phpseclib\\' => 10,
|
||||||
|
),
|
||||||
|
'X' =>
|
||||||
|
array (
|
||||||
|
'XMPPHP\\' => 7,
|
||||||
|
),
|
||||||
|
'S' =>
|
||||||
|
array (
|
||||||
|
'Stomp\\' => 6,
|
||||||
|
),
|
||||||
|
'P' =>
|
||||||
|
array (
|
||||||
|
'ParagonIE\\ConstantTime\\' => 23,
|
||||||
|
),
|
||||||
'M' =>
|
'M' =>
|
||||||
array (
|
array (
|
||||||
|
'Michelf\\' => 8,
|
||||||
'Masterminds\\' => 12,
|
'Masterminds\\' => 12,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
public static $prefixDirsPsr4 = array (
|
public static $prefixDirsPsr4 = array (
|
||||||
|
'phpseclib\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib',
|
||||||
|
),
|
||||||
|
'XMPPHP\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP',
|
||||||
|
),
|
||||||
|
'Stomp\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/stomp-php/stomp-php/src',
|
||||||
|
),
|
||||||
|
'ParagonIE\\ConstantTime\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src',
|
||||||
|
),
|
||||||
|
'Michelf\\' =>
|
||||||
|
array (
|
||||||
|
0 => __DIR__ . '/..' . '/michelf/php-markdown/Michelf',
|
||||||
|
),
|
||||||
'Masterminds\\' =>
|
'Masterminds\\' =>
|
||||||
array (
|
array (
|
||||||
0 => __DIR__ . '/..' . '/masterminds/html5/src',
|
0 => __DIR__ . '/..' . '/masterminds/html5/src',
|
||||||
@ -131,6 +169,50 @@ class ComposerStaticInit4f5ec3b37be240134637564819b99dd2
|
|||||||
'Auth_Yadis_Yadis' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/Yadis.php',
|
'Auth_Yadis_Yadis' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/Yadis.php',
|
||||||
'Auth_Yadis_dom' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/XML.php',
|
'Auth_Yadis_dom' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/XML.php',
|
||||||
'Auth_Yadis_domxml' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/XML.php',
|
'Auth_Yadis_domxml' => __DIR__ . '/..' . '/openid/php-openid/Auth/Yadis/XML.php',
|
||||||
|
'CAS_AuthenticationException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/AuthenticationException.php',
|
||||||
|
'CAS_Client' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Client.php',
|
||||||
|
'CAS_CookieJar' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/CookieJar.php',
|
||||||
|
'CAS_Exception' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Exception.php',
|
||||||
|
'CAS_GracefullTerminationException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/GracefullTerminationException.php',
|
||||||
|
'CAS_InvalidArgumentException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/InvalidArgumentException.php',
|
||||||
|
'CAS_Languages_Catalan' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/Catalan.php',
|
||||||
|
'CAS_Languages_ChineseSimplified' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/ChineseSimplified.php',
|
||||||
|
'CAS_Languages_English' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/English.php',
|
||||||
|
'CAS_Languages_French' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/French.php',
|
||||||
|
'CAS_Languages_German' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/German.php',
|
||||||
|
'CAS_Languages_Greek' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/Greek.php',
|
||||||
|
'CAS_Languages_Japanese' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/Japanese.php',
|
||||||
|
'CAS_Languages_LanguageInterface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/LanguageInterface.php',
|
||||||
|
'CAS_Languages_Spanish' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Languages/Spanish.php',
|
||||||
|
'CAS_OutOfSequenceBeforeAuthenticationCallException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeAuthenticationCallException.php',
|
||||||
|
'CAS_OutOfSequenceBeforeClientException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeClientException.php',
|
||||||
|
'CAS_OutOfSequenceBeforeProxyException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/OutOfSequenceBeforeProxyException.php',
|
||||||
|
'CAS_OutOfSequenceException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/OutOfSequenceException.php',
|
||||||
|
'CAS_PGTStorage_AbstractStorage' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/PGTStorage/AbstractStorage.php',
|
||||||
|
'CAS_PGTStorage_Db' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/PGTStorage/Db.php',
|
||||||
|
'CAS_PGTStorage_File' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/PGTStorage/File.php',
|
||||||
|
'CAS_ProxiedService' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService.php',
|
||||||
|
'CAS_ProxiedService_Abstract' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Abstract.php',
|
||||||
|
'CAS_ProxiedService_Exception' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Exception.php',
|
||||||
|
'CAS_ProxiedService_Http' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Http.php',
|
||||||
|
'CAS_ProxiedService_Http_Abstract' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Http/Abstract.php',
|
||||||
|
'CAS_ProxiedService_Http_Get' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Http/Get.php',
|
||||||
|
'CAS_ProxiedService_Http_Post' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Http/Post.php',
|
||||||
|
'CAS_ProxiedService_Imap' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Imap.php',
|
||||||
|
'CAS_ProxiedService_Testable' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxiedService/Testable.php',
|
||||||
|
'CAS_ProxyChain' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyChain.php',
|
||||||
|
'CAS_ProxyChain_AllowedList' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyChain/AllowedList.php',
|
||||||
|
'CAS_ProxyChain_Any' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyChain/Any.php',
|
||||||
|
'CAS_ProxyChain_Interface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyChain/Interface.php',
|
||||||
|
'CAS_ProxyChain_Trusted' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyChain/Trusted.php',
|
||||||
|
'CAS_ProxyTicketException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/ProxyTicketException.php',
|
||||||
|
'CAS_Request_AbstractRequest' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/AbstractRequest.php',
|
||||||
|
'CAS_Request_CurlMultiRequest' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/CurlMultiRequest.php',
|
||||||
|
'CAS_Request_CurlRequest' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/CurlRequest.php',
|
||||||
|
'CAS_Request_Exception' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/Exception.php',
|
||||||
|
'CAS_Request_MultiRequestInterface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/MultiRequestInterface.php',
|
||||||
|
'CAS_Request_RequestInterface' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/Request/RequestInterface.php',
|
||||||
|
'CAS_TypeMismatchException' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS/TypeMismatchException.php',
|
||||||
'HTMLPurifier' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
|
'HTMLPurifier' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.php',
|
||||||
'HTMLPurifier_Arborize' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
|
'HTMLPurifier_Arborize' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php',
|
||||||
'HTMLPurifier_AttrCollections' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
|
'HTMLPurifier_AttrCollections' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php',
|
||||||
@ -385,15 +467,106 @@ class ComposerStaticInit4f5ec3b37be240134637564819b99dd2
|
|||||||
'Masterminds\\HTML5\\Serializer\\OutputRules' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/OutputRules.php',
|
'Masterminds\\HTML5\\Serializer\\OutputRules' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/OutputRules.php',
|
||||||
'Masterminds\\HTML5\\Serializer\\RulesInterface' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/RulesInterface.php',
|
'Masterminds\\HTML5\\Serializer\\RulesInterface' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/RulesInterface.php',
|
||||||
'Masterminds\\HTML5\\Serializer\\Traverser' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/Traverser.php',
|
'Masterminds\\HTML5\\Serializer\\Traverser' => __DIR__ . '/..' . '/masterminds/html5/src/HTML5/Serializer/Traverser.php',
|
||||||
|
'Michelf\\Markdown' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/Markdown.php',
|
||||||
|
'Michelf\\MarkdownExtra' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/MarkdownExtra.php',
|
||||||
|
'Michelf\\MarkdownInterface' => __DIR__ . '/..' . '/michelf/php-markdown/Michelf/MarkdownInterface.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base32' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base32.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base32Hex' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base32Hex.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64DotSlash' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64DotSlash.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64DotSlashOrdered' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Base64UrlSafe' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Base64UrlSafe.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Binary' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Binary.php',
|
||||||
|
'ParagonIE\\ConstantTime\\EncoderInterface' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/EncoderInterface.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Encoding' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Encoding.php',
|
||||||
|
'ParagonIE\\ConstantTime\\Hex' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/Hex.php',
|
||||||
|
'ParagonIE\\ConstantTime\\RFC4648' => __DIR__ . '/..' . '/paragonie/constant_time_encoding/src/RFC4648.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\ActiveMq' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/ActiveMq/ActiveMq.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Mode\\ActiveMqMode' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/ActiveMq/Mode/ActiveMqMode.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Mode\\DurableSubscription' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/ActiveMq/Mode/DurableSubscription.php',
|
||||||
|
'Stomp\\Broker\\ActiveMq\\Options' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/ActiveMq/Options.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Apollo' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/Apollo/Apollo.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Mode\\QueueBrowser' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/Apollo/Mode/QueueBrowser.php',
|
||||||
|
'Stomp\\Broker\\Apollo\\Mode\\SequenceQueueBrowser' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/Apollo/Mode/SequenceQueueBrowser.php',
|
||||||
|
'Stomp\\Broker\\Exception\\UnsupportedBrokerException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/Exception/UnsupportedBrokerException.php',
|
||||||
|
'Stomp\\Broker\\OpenMq\\OpenMq' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/OpenMq/OpenMq.php',
|
||||||
|
'Stomp\\Broker\\RabbitMq\\RabbitMq' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Broker/RabbitMq/RabbitMq.php',
|
||||||
|
'Stomp\\Client' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Client.php',
|
||||||
|
'Stomp\\Exception\\ConnectionException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Exception/ConnectionException.php',
|
||||||
|
'Stomp\\Exception\\ErrorFrameException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Exception/ErrorFrameException.php',
|
||||||
|
'Stomp\\Exception\\MissingReceiptException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Exception/MissingReceiptException.php',
|
||||||
|
'Stomp\\Exception\\StompException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Exception/StompException.php',
|
||||||
|
'Stomp\\Exception\\UnexpectedResponseException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Exception/UnexpectedResponseException.php',
|
||||||
|
'Stomp\\Network\\Connection' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Connection.php',
|
||||||
|
'Stomp\\Network\\Observer\\AbstractBeats' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/AbstractBeats.php',
|
||||||
|
'Stomp\\Network\\Observer\\ConnectionObserver' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/ConnectionObserver.php',
|
||||||
|
'Stomp\\Network\\Observer\\ConnectionObserverCollection' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/ConnectionObserverCollection.php',
|
||||||
|
'Stomp\\Network\\Observer\\Exception\\HeartbeatException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/Exception/HeartbeatException.php',
|
||||||
|
'Stomp\\Network\\Observer\\HeartbeatEmitter' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/HeartbeatEmitter.php',
|
||||||
|
'Stomp\\Network\\Observer\\ServerAliveObserver' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Network/Observer/ServerAliveObserver.php',
|
||||||
|
'Stomp\\Protocol\\Protocol' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Protocol/Protocol.php',
|
||||||
|
'Stomp\\Protocol\\Version' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Protocol/Version.php',
|
||||||
|
'Stomp\\SimpleStomp' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/SimpleStomp.php',
|
||||||
|
'Stomp\\StatefulStomp' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/StatefulStomp.php',
|
||||||
|
'Stomp\\States\\ConsumerState' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/ConsumerState.php',
|
||||||
|
'Stomp\\States\\ConsumerTransactionState' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/ConsumerTransactionState.php',
|
||||||
|
'Stomp\\States\\Exception\\InvalidStateException' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/Exception/InvalidStateException.php',
|
||||||
|
'Stomp\\States\\IStateful' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/IStateful.php',
|
||||||
|
'Stomp\\States\\Meta\\Subscription' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/Meta/Subscription.php',
|
||||||
|
'Stomp\\States\\Meta\\SubscriptionList' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/Meta/SubscriptionList.php',
|
||||||
|
'Stomp\\States\\ProducerState' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/ProducerState.php',
|
||||||
|
'Stomp\\States\\ProducerTransactionState' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/ProducerTransactionState.php',
|
||||||
|
'Stomp\\States\\StateSetter' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/StateSetter.php',
|
||||||
|
'Stomp\\States\\StateTemplate' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/StateTemplate.php',
|
||||||
|
'Stomp\\States\\TransactionsTrait' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/States/TransactionsTrait.php',
|
||||||
|
'Stomp\\Transport\\Bytes' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/Bytes.php',
|
||||||
|
'Stomp\\Transport\\Frame' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/Frame.php',
|
||||||
|
'Stomp\\Transport\\FrameFactory' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/FrameFactory.php',
|
||||||
|
'Stomp\\Transport\\Map' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/Map.php',
|
||||||
|
'Stomp\\Transport\\Message' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/Message.php',
|
||||||
|
'Stomp\\Transport\\Parser' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Transport/Parser.php',
|
||||||
|
'Stomp\\Util\\IdGenerator' => __DIR__ . '/..' . '/stomp-php/stomp-php/src/Util/IdGenerator.php',
|
||||||
|
'XMPPHP\\BOSH' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/BOSH.php',
|
||||||
|
'XMPPHP\\Exception' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/Exception.php',
|
||||||
|
'XMPPHP\\Log' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/Log.php',
|
||||||
|
'XMPPHP\\Roster' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/Roster.php',
|
||||||
|
'XMPPHP\\XMLObj' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/XMLObj.php',
|
||||||
|
'XMPPHP\\XMLStream' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/XMLStream.php',
|
||||||
|
'XMPPHP\\XMPP' => __DIR__ . '/..' . '/diogocomposer/xmpphp/XMPPHP/XMPP.php',
|
||||||
|
'phpCAS' => __DIR__ . '/..' . '/apereo/phpcas/source/CAS.php',
|
||||||
|
'phpseclib\\Crypt\\AES' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/AES.php',
|
||||||
|
'phpseclib\\Crypt\\Base' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Base.php',
|
||||||
|
'phpseclib\\Crypt\\Blowfish' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Blowfish.php',
|
||||||
|
'phpseclib\\Crypt\\DES' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/DES.php',
|
||||||
|
'phpseclib\\Crypt\\Hash' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Hash.php',
|
||||||
|
'phpseclib\\Crypt\\RC2' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/RC2.php',
|
||||||
|
'phpseclib\\Crypt\\RC4' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/RC4.php',
|
||||||
|
'phpseclib\\Crypt\\RSA' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/RSA.php',
|
||||||
|
'phpseclib\\Crypt\\Random' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Random.php',
|
||||||
|
'phpseclib\\Crypt\\Rijndael' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Rijndael.php',
|
||||||
|
'phpseclib\\Crypt\\TripleDES' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/TripleDES.php',
|
||||||
|
'phpseclib\\Crypt\\Twofish' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Crypt/Twofish.php',
|
||||||
|
'phpseclib\\File\\ANSI' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/File/ANSI.php',
|
||||||
|
'phpseclib\\File\\ASN1' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/File/ASN1.php',
|
||||||
|
'phpseclib\\File\\ASN1\\Element' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/File/ASN1/Element.php',
|
||||||
|
'phpseclib\\File\\X509' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/File/X509.php',
|
||||||
|
'phpseclib\\Math\\BigInteger' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Math/BigInteger.php',
|
||||||
|
'phpseclib\\Net\\SCP' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Net/SCP.php',
|
||||||
|
'phpseclib\\Net\\SFTP' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Net/SFTP.php',
|
||||||
|
'phpseclib\\Net\\SFTP\\Stream' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Net/SFTP/Stream.php',
|
||||||
|
'phpseclib\\Net\\SSH1' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Net/SSH1.php',
|
||||||
|
'phpseclib\\Net\\SSH2' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/Net/SSH2.php',
|
||||||
|
'phpseclib\\System\\SSH\\Agent' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php',
|
||||||
|
'phpseclib\\System\\SSH\\Agent\\Identity' => __DIR__ . '/..' . '/phpseclib/phpseclib/phpseclib/System/SSH/Agent/Identity.php',
|
||||||
);
|
);
|
||||||
|
|
||||||
public static function getInitializer(ClassLoader $loader)
|
public static function getInitializer(ClassLoader $loader)
|
||||||
{
|
{
|
||||||
return \Closure::bind(function () use ($loader) {
|
return \Closure::bind(function () use ($loader) {
|
||||||
$loader->prefixLengthsPsr4 = ComposerStaticInit4f5ec3b37be240134637564819b99dd2::$prefixLengthsPsr4;
|
$loader->prefixLengthsPsr4 = ComposerStaticInit444c3f31864f68a3f466e2c19837e185::$prefixLengthsPsr4;
|
||||||
$loader->prefixDirsPsr4 = ComposerStaticInit4f5ec3b37be240134637564819b99dd2::$prefixDirsPsr4;
|
$loader->prefixDirsPsr4 = ComposerStaticInit444c3f31864f68a3f466e2c19837e185::$prefixDirsPsr4;
|
||||||
$loader->prefixesPsr0 = ComposerStaticInit4f5ec3b37be240134637564819b99dd2::$prefixesPsr0;
|
$loader->prefixesPsr0 = ComposerStaticInit444c3f31864f68a3f466e2c19837e185::$prefixesPsr0;
|
||||||
$loader->classMap = ComposerStaticInit4f5ec3b37be240134637564819b99dd2::$classMap;
|
$loader->classMap = ComposerStaticInit444c3f31864f68a3f466e2c19837e185::$classMap;
|
||||||
|
|
||||||
}, null, ClassLoader::class);
|
}, null, ClassLoader::class);
|
||||||
}
|
}
|
||||||
|
398
vendor/composer/installed.json
vendored
398
vendor/composer/installed.json
vendored
@ -1,4 +1,134 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"name": "apereo/phpcas",
|
||||||
|
"version": "1.3.7",
|
||||||
|
"version_normalized": "1.3.7.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/apereo/phpCAS.git",
|
||||||
|
"reference": "b5b29102c3a42f570c4a3e852f3cf67cae6d6082"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/apereo/phpCAS/zipball/b5b29102c3a42f570c4a3e852f3cf67cae6d6082",
|
||||||
|
"reference": "b5b29102c3a42f570c4a3e852f3cf67cae6d6082",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-curl": "*",
|
||||||
|
"php": ">=5.4.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~3.7.10"
|
||||||
|
},
|
||||||
|
"time": "2019-04-22T19:48:16+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-master": "1.3.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"source/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Joachim Fritschi",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/~fritschi"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Adam Franco",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/~adamfranco"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Provides a simple API for authenticating users against a CAS server",
|
||||||
|
"homepage": "https://wiki.jasig.org/display/CASC/phpCAS",
|
||||||
|
"keywords": [
|
||||||
|
"apereo",
|
||||||
|
"cas",
|
||||||
|
"jasig"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "diogocomposer/xmpphp",
|
||||||
|
"version": "v3.0.0",
|
||||||
|
"version_normalized": "3.0.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/diogogithub/xmpphp.git",
|
||||||
|
"reference": "c7cdcc588aa47893ab41a1670c5dfe649674a4b0"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/diogogithub/xmpphp/zipball/c7cdcc588aa47893ab41a1670c5dfe649674a4b0",
|
||||||
|
"reference": "c7cdcc588aa47893ab41a1670c5dfe649674a4b0",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-xml": "*",
|
||||||
|
"php": ">=7.0.0"
|
||||||
|
},
|
||||||
|
"time": "2019-06-19T02:32:32+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"XMPPHP\\": "XMPPHP"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"GPL-2.0+"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Ivan Borzenkov",
|
||||||
|
"email": "ivan.borzenkov@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bandroidx",
|
||||||
|
"email": "bandroidx@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BirknerAlex",
|
||||||
|
"email": "alex.birkner@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stephan Wentz",
|
||||||
|
"email": "stephan@wentz.it"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Nathan Fritz",
|
||||||
|
"email": "fritzy@netflint.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Christian Weiske",
|
||||||
|
"email": "cweiske@cweiske.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Vito Tafuni",
|
||||||
|
"email": "vitotafuni@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Diogo Cordeiro",
|
||||||
|
"email": "diogo@fc.up.pt"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "XMPP PHP Library",
|
||||||
|
"keywords": [
|
||||||
|
"jabber",
|
||||||
|
"xmpp",
|
||||||
|
"xmpphp"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "ezyang/htmlpurifier",
|
"name": "ezyang/htmlpurifier",
|
||||||
"version": "v4.10.0",
|
"version": "v4.10.0",
|
||||||
@ -175,6 +305,54 @@
|
|||||||
"semantic"
|
"semantic"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "michelf/php-markdown",
|
||||||
|
"version": "1.8.0",
|
||||||
|
"version_normalized": "1.8.0.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/michelf/php-markdown.git",
|
||||||
|
"reference": "01ab082b355bf188d907b9929cd99b2923053495"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
|
||||||
|
"reference": "01ab082b355bf188d907b9929cd99b2923053495",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.0"
|
||||||
|
},
|
||||||
|
"time": "2018-01-15T00:49:33+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Michelf\\": "Michelf/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-3-Clause"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Michel Fortin",
|
||||||
|
"email": "michel.fortin@michelf.ca",
|
||||||
|
"homepage": "https://michelf.ca/",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "John Gruber",
|
||||||
|
"homepage": "https://daringfireball.net/"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Markdown",
|
||||||
|
"homepage": "https://michelf.ca/projects/php-markdown/",
|
||||||
|
"keywords": [
|
||||||
|
"markdown"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "openid/php-openid",
|
"name": "openid/php-openid",
|
||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
@ -225,5 +403,225 @@
|
|||||||
"auth",
|
"auth",
|
||||||
"yadis"
|
"yadis"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "paragonie/constant_time_encoding",
|
||||||
|
"version": "v1.0.4",
|
||||||
|
"version_normalized": "1.0.4.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/paragonie/constant_time_encoding.git",
|
||||||
|
"reference": "2132f0f293d856026d7d11bd81b9f4a23a1dc1f6"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/2132f0f293d856026d7d11bd81b9f4a23a1dc1f6",
|
||||||
|
"reference": "2132f0f293d856026d7d11bd81b9f4a23a1dc1f6",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.3|^7"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"paragonie/random_compat": "^1.4|^2",
|
||||||
|
"phpunit/phpunit": "4.*|5.*",
|
||||||
|
"vimeo/psalm": "^0.3|^1"
|
||||||
|
},
|
||||||
|
"time": "2018-04-30T17:57:16+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"ParagonIE\\ConstantTime\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Paragon Initiative Enterprises",
|
||||||
|
"email": "security@paragonie.com",
|
||||||
|
"homepage": "https://paragonie.com",
|
||||||
|
"role": "Maintainer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Steve 'Sc00bz' Thomas",
|
||||||
|
"email": "steve@tobtu.com",
|
||||||
|
"homepage": "https://www.tobtu.com",
|
||||||
|
"role": "Original Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
|
||||||
|
"keywords": [
|
||||||
|
"base16",
|
||||||
|
"base32",
|
||||||
|
"base32_decode",
|
||||||
|
"base32_encode",
|
||||||
|
"base64",
|
||||||
|
"base64_decode",
|
||||||
|
"base64_encode",
|
||||||
|
"bin2hex",
|
||||||
|
"encoding",
|
||||||
|
"hex",
|
||||||
|
"hex2bin",
|
||||||
|
"rfc4648"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "phpseclib/phpseclib",
|
||||||
|
"version": "2.0.19",
|
||||||
|
"version_normalized": "2.0.19.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/phpseclib/phpseclib.git",
|
||||||
|
"reference": "d2085db7b7394baa071a69c8f9159723c250f2ba"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/d2085db7b7394baa071a69c8f9159723c250f2ba",
|
||||||
|
"reference": "d2085db7b7394baa071a69c8f9159723c250f2ba",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=5.3.3"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phing/phing": "~2.7",
|
||||||
|
"phpunit/phpunit": "^4.8.35|^5.7|^6.0",
|
||||||
|
"sami/sami": "~2.0",
|
||||||
|
"squizlabs/php_codesniffer": "~2.0"
|
||||||
|
},
|
||||||
|
"suggest": {
|
||||||
|
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
|
||||||
|
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
|
||||||
|
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
|
||||||
|
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
|
||||||
|
},
|
||||||
|
"time": "2019-06-20T03:34:11+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"files": [
|
||||||
|
"phpseclib/bootstrap.php"
|
||||||
|
],
|
||||||
|
"psr-4": {
|
||||||
|
"phpseclib\\": "phpseclib/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jim Wigginton",
|
||||||
|
"email": "terrafrost@php.net",
|
||||||
|
"role": "Lead Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Patrick Monnerat",
|
||||||
|
"email": "pm@datasphere.ch",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Andreas Fischer",
|
||||||
|
"email": "bantu@phpbb.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Hans-Jürgen Petrich",
|
||||||
|
"email": "petrich@tronic-media.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Graham Campbell",
|
||||||
|
"email": "graham@alt-three.com",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
|
||||||
|
"homepage": "http://phpseclib.sourceforge.net",
|
||||||
|
"keywords": [
|
||||||
|
"BigInteger",
|
||||||
|
"aes",
|
||||||
|
"asn.1",
|
||||||
|
"asn1",
|
||||||
|
"blowfish",
|
||||||
|
"crypto",
|
||||||
|
"cryptography",
|
||||||
|
"encryption",
|
||||||
|
"rsa",
|
||||||
|
"security",
|
||||||
|
"sftp",
|
||||||
|
"signature",
|
||||||
|
"signing",
|
||||||
|
"ssh",
|
||||||
|
"twofish",
|
||||||
|
"x.509",
|
||||||
|
"x509"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "stomp-php/stomp-php",
|
||||||
|
"version": "4.5.1",
|
||||||
|
"version_normalized": "4.5.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/stomp-php/stomp-php.git",
|
||||||
|
"reference": "4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/stomp-php/stomp-php/zipball/4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158",
|
||||||
|
"reference": "4c5f0a95330085a86fd852b8ad0b1fbb4e8a4158",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": "^5.6 || ^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "^5.7"
|
||||||
|
},
|
||||||
|
"time": "2019-04-09T08:25:54+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Stomp\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"Apache-2.0"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Dejan Bosnanac",
|
||||||
|
"email": "dejan@nighttale.net",
|
||||||
|
"homepage": "http://www.nighttale.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sören Rohweder",
|
||||||
|
"email": "s.rohweder@blage.net",
|
||||||
|
"homepage": "http://www.monofone.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Jens Radtke",
|
||||||
|
"email": "swefl@fin-sn.de",
|
||||||
|
"homepage": "http://www.fin-sn.de"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "stomp support for PHP",
|
||||||
|
"homepage": "http://github.com/stomp-php/stomp-php",
|
||||||
|
"keywords": [
|
||||||
|
"activeMQ",
|
||||||
|
"apollomq",
|
||||||
|
"jms",
|
||||||
|
"messaging",
|
||||||
|
"rabbitmq",
|
||||||
|
"stomp"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
6
vendor/diogocomposer/xmpphp/.gitignore
vendored
Normal file
6
vendor/diogocomposer/xmpphp/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
composer.phar
|
||||||
|
/vendor/
|
||||||
|
|
||||||
|
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
|
||||||
|
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
|
||||||
|
# composer.lock
|
352
vendor/diogocomposer/xmpphp/LICENSE
vendored
Normal file
352
vendor/diogocomposer/xmpphp/LICENSE
vendored
Normal file
@ -0,0 +1,352 @@
|
|||||||
|
XMPPHP: The PHP XMPP Library
|
||||||
|
Copyright (C) 2008 Nathanael C. Fritz
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
|
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Library General
|
||||||
|
Public License instead of this License.
|
||||||
|
|
||||||
|
Exceptions:
|
||||||
|
|
||||||
|
As a special exception to this license, the "Enhanced Jabber Integration"
|
||||||
|
project, which is a plugin for vBulletin, may use and distribute XMPPHP
|
||||||
|
without extending the GPL license to the parent package.
|
||||||
|
|
||||||
|
If you would like an exception for your free software, please contact the
|
||||||
|
copyright holder.
|
20
vendor/diogocomposer/xmpphp/README.md
vendored
Normal file
20
vendor/diogocomposer/xmpphp/README.md
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
README
|
||||||
|
======
|
||||||
|
|
||||||
|
About XMPPHP
|
||||||
|
------------
|
||||||
|
|
||||||
|
XMPPHP is an elegant PHP library for XMPP (aka Jabber, Google Talk, etc).
|
||||||
|
|
||||||
|
* Homepage: [http://code.google.com/p/xmpphp]
|
||||||
|
* Chatroom: [xmpphp@conference.psi-im.org] (XMPP MUC)
|
||||||
|
* Author: Nathan Fritz, jabber id: fritzy [at] netflint.net
|
||||||
|
* Co-Author: Stephan Wentz, jabber id: stephan [at] wentz.it
|
||||||
|
* This fork: https://github.com/diogogithub/xmpphp
|
||||||
|
* Maintainer of this fork: Diogo Cordeiro <diogo@fc.up.pt>
|
||||||
|
|
||||||
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
* PHP 7.0
|
||||||
|
* SSL Support Compiled
|
49
vendor/diogocomposer/xmpphp/composer.json
vendored
Normal file
49
vendor/diogocomposer/xmpphp/composer.json
vendored
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
{
|
||||||
|
"name": "diogocomposer/xmpphp",
|
||||||
|
"description": "XMPP PHP Library",
|
||||||
|
"type": "library",
|
||||||
|
"keywords": ["jabber", "xmpphp", "xmpp"],
|
||||||
|
"license": "GPL-2.0+",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Nathan Fritz",
|
||||||
|
"email": "fritzy@netflint.net"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Stephan Wentz",
|
||||||
|
"email": "stephan@wentz.it"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Christian Weiske",
|
||||||
|
"email": "cweiske@cweiske.de"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Vito Tafuni",
|
||||||
|
"email": "vitotafuni@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Ivan Borzenkov",
|
||||||
|
"email": "ivan.borzenkov@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "bandroidx",
|
||||||
|
"email": "bandroidx@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BirknerAlex",
|
||||||
|
"email": "alex.birkner@gmail.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Diogo Cordeiro",
|
||||||
|
"email": "diogo@fc.up.pt"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": { "XMPPHP\\": "XMPPHP" }
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.0.0",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-xml": "*"
|
||||||
|
}
|
||||||
|
}
|
141
vendor/diogocomposer/xmpphp/examples/cli_longrun_example.php
vendored
Normal file
141
vendor/diogocomposer/xmpphp/examples/cli_longrun_example.php
vendored
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file: XMPPHP Cli example
|
||||||
|
*
|
||||||
|
* @info: If this script doesn't work, are you running 64-bit PHP with < 5.2.6?
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate full error reporting
|
||||||
|
* error_reporting(E_ALL & E_STRICT);
|
||||||
|
*
|
||||||
|
* XMPPHP Log levels:
|
||||||
|
*
|
||||||
|
* LEVEL_ERROR = 0;
|
||||||
|
* LEVEL_WARNING = 1;
|
||||||
|
* LEVEL_INFO = 2;
|
||||||
|
* LEVEL_DEBUG = 3;
|
||||||
|
* LEVEL_VERBOSE = 4;
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../vendor/autoload.php';
|
||||||
|
|
||||||
|
$conf = array(
|
||||||
|
'server' => 'talk.google.com',
|
||||||
|
'port' => 5222,
|
||||||
|
'username' => 'username',
|
||||||
|
'password' => 'password',
|
||||||
|
'proto' => 'xmpphp',
|
||||||
|
'domain' => 'gmail.com',
|
||||||
|
'printlog' => true,
|
||||||
|
'loglevel' => XMPPHP\Log::LEVEL_VERBOSE,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Easy and simple for access to variables with their names
|
||||||
|
extract($conf);
|
||||||
|
|
||||||
|
$conn = new XMPPHP\XMPP($server, $port, $username, $password, $proto, $domain, $printlog, $loglevel);
|
||||||
|
$conn->autoSubscribe();
|
||||||
|
|
||||||
|
$vcard_request = array();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn->connect();
|
||||||
|
|
||||||
|
while (!$conn->isDisconnected()) {
|
||||||
|
$events = array('message', 'presence', 'end_stream', 'session_start', 'vcard');
|
||||||
|
$payloads = $conn->processUntil($events);
|
||||||
|
|
||||||
|
foreach ($payloads as $result) {
|
||||||
|
list($event, $data) = $result;
|
||||||
|
|
||||||
|
if (isset($data)) {
|
||||||
|
extract($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($event) {
|
||||||
|
|
||||||
|
case 'message':
|
||||||
|
|
||||||
|
if (!$body) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo str_repeat('-', 80);
|
||||||
|
echo "Message from: $from";
|
||||||
|
|
||||||
|
if (isset($subject)) {
|
||||||
|
echo "Subject: $subject";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo $body;
|
||||||
|
echo str_repeat('-', 80);
|
||||||
|
|
||||||
|
$cmd = explode(' ', $body);
|
||||||
|
$body = "Mi no entender! '$body'";
|
||||||
|
$conn->message($from, $body, $type);
|
||||||
|
|
||||||
|
if (isset($cmd[0])) {
|
||||||
|
if ($cmd[0] == 'quit') {
|
||||||
|
$conn->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cmd[0] == 'break') {
|
||||||
|
$conn->send('</end>');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cmd[0] == 'vcard') {
|
||||||
|
if (!isset($cmd[1])) {
|
||||||
|
$cmd[1] = $conn->user;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Take a note which user requested which vcard
|
||||||
|
$vcard_request[$from] = $cmd[1];
|
||||||
|
// Request the vcard
|
||||||
|
$conn->getVCard($cmd[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'presence':
|
||||||
|
|
||||||
|
echo "Presence: $from [$show] $status\n";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'session_start':
|
||||||
|
|
||||||
|
echo "Session start\n";
|
||||||
|
$conn->getRoster();
|
||||||
|
$conn->presence('Quasar!');
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'vcard':
|
||||||
|
|
||||||
|
$deliver = array_keys($vcard_request, $from);
|
||||||
|
$msg = '';
|
||||||
|
|
||||||
|
foreach ($data as $key => $item) {
|
||||||
|
$msg .= $key . ': ';
|
||||||
|
|
||||||
|
if (is_array($item)) {
|
||||||
|
$msg .= "\n";
|
||||||
|
foreach ($item as $subkey => $subitem) {
|
||||||
|
$msg .= ' ' . $subkey . ':' . $subitem . "\n";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$msg .= $item . "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($deliver as $sendjid) {
|
||||||
|
unset($vcard_request[$sendjid]);
|
||||||
|
$conn->message($sendjid, $msg, 'chat');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (XMPPHP\Exception $e) {
|
||||||
|
die($e->getMessage());
|
||||||
|
}
|
104
vendor/diogocomposer/xmpphp/examples/cli_longrun_example_bosh.php
vendored
Normal file
104
vendor/diogocomposer/xmpphp/examples/cli_longrun_example_bosh.php
vendored
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file: XMPPHP Cli example BOSH
|
||||||
|
*
|
||||||
|
* @info: If this script doesn't work, are you running 64-bit PHP with < 5.2.6?
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate full error reporting
|
||||||
|
* error_reporting(E_ALL & E_STRICT);
|
||||||
|
*
|
||||||
|
* XMPPHP Log levels:
|
||||||
|
*
|
||||||
|
* LEVEL_ERROR = 0;
|
||||||
|
* LEVEL_WARNING = 1;
|
||||||
|
* LEVEL_INFO = 2;
|
||||||
|
* LEVEL_DEBUG = 3;
|
||||||
|
* LEVEL_VERBOSE = 4;
|
||||||
|
*/
|
||||||
|
|
||||||
|
require '../vendor/autoload.php';
|
||||||
|
|
||||||
|
$conf = array(
|
||||||
|
'server' => 'server.tld',
|
||||||
|
'port' => 5280,
|
||||||
|
'username' => 'username',
|
||||||
|
'password' => 'password',
|
||||||
|
'proto' => 'xmpphp',
|
||||||
|
'domain' => 'server.tld',
|
||||||
|
'printlog' => true,
|
||||||
|
'loglevel' => XMPPHP\Log::LEVEL_VERBOSE,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Easy and simple for access to variables with their names
|
||||||
|
extract($conf);
|
||||||
|
|
||||||
|
$conn = new XMPPHP\BOSH($server, $port, $username, $password, $proto, $domain, $printlog, $loglevel);
|
||||||
|
$conn->autoSubscribe();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$conn->connect('http://server.tld:5280/xmpp-httpbind');
|
||||||
|
|
||||||
|
while (!$conn->isDisconnected()) {
|
||||||
|
$events = array('message', 'presence', 'end_stream', 'session_start');
|
||||||
|
$payloads = $conn->processUntil($events);
|
||||||
|
|
||||||
|
foreach ($payloads as $result) {
|
||||||
|
list($event, $data) = $result;
|
||||||
|
|
||||||
|
if (isset($data)) {
|
||||||
|
extract($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($event) {
|
||||||
|
|
||||||
|
case 'message':
|
||||||
|
|
||||||
|
if (!$body) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo str_repeat('-', 80);
|
||||||
|
echo "Message from: $from";
|
||||||
|
|
||||||
|
if (isset($subject)) {
|
||||||
|
echo "Subject: $subject";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo $body;
|
||||||
|
echo str_repeat('-', 80);
|
||||||
|
|
||||||
|
$cmd = explode(' ', $body);
|
||||||
|
$body = "Mi no entender! '$body'";
|
||||||
|
$conn->message($from, $body, $type);
|
||||||
|
|
||||||
|
if (isset($cmd[0])) {
|
||||||
|
if ($cmd[0] == 'quit') {
|
||||||
|
$conn->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cmd[0] == 'break') {
|
||||||
|
$conn->send('</end>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'presence':
|
||||||
|
|
||||||
|
echo "Presence: $from [$show] $status\n";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'session_start':
|
||||||
|
|
||||||
|
echo "Session start\n";
|
||||||
|
$conn->getRoster();
|
||||||
|
$conn->presence('Quasar!');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (XMPPHP\Exception $e) {
|
||||||
|
die($e->getMessage());
|
||||||
|
}
|
47
vendor/diogocomposer/xmpphp/examples/sendmessage_example.php
vendored
Normal file
47
vendor/diogocomposer/xmpphp/examples/sendmessage_example.php
vendored
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file: XMPPHP Send message example
|
||||||
|
*
|
||||||
|
* @info: If this script doesn't work, are you running 64-bit PHP with < 5.2.6?
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Activate full error reporting
|
||||||
|
* error_reporting(E_ALL & E_STRICT);
|
||||||
|
*
|
||||||
|
* XMPPHP Log levels:
|
||||||
|
*
|
||||||
|
* LEVEL_ERROR = 0;
|
||||||
|
* LEVEL_WARNING = 1;
|
||||||
|
* LEVEL_INFO = 2;
|
||||||
|
* LEVEL_DEBUG = 3;
|
||||||
|
* LEVEL_VERBOSE = 4;
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once __DIR__.'/../vendor/autoload.php';
|
||||||
|
|
||||||
|
$conf = array(
|
||||||
|
'server' => 'talk.google.com',
|
||||||
|
'port' => 5222,
|
||||||
|
'username' => 'username',
|
||||||
|
'password' => 'password',
|
||||||
|
'proto' => 'xmpphp',
|
||||||
|
'domain' => 'gmail.com',
|
||||||
|
'printlog' => true,
|
||||||
|
'loglevel' => XMPPHP\Log::LEVEL_VERBOSE,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Easy and simple for access to variables with their names
|
||||||
|
extract($conf);
|
||||||
|
|
||||||
|
$XMPP = new XMPPHP\XMPP($server, $port, $username, $password, $proto, $domain, $printlog, $loglevel);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$XMPP->connect();
|
||||||
|
$XMPP->processUntil('session_start', 10);
|
||||||
|
$XMPP->presence();
|
||||||
|
$XMPP->message('target.user@jabber.domain.com', 'Hello, how are you?', 'chat');
|
||||||
|
$XMPP->disconnect();
|
||||||
|
} catch (XMPPHP\Exception $e) {
|
||||||
|
die($e->getMessage());
|
||||||
|
}
|
117
vendor/diogocomposer/xmpphp/examples/webclient_example.php
vendored
Normal file
117
vendor/diogocomposer/xmpphp/examples/webclient_example.php
vendored
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file: XMPPHP Cli example
|
||||||
|
*
|
||||||
|
* @info: If this script doesn't work, are you running 64-bit PHP with < 5.2.6?
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Activate full error reporting
|
||||||
|
* error_reporting(E_ALL & E_STRICT);
|
||||||
|
*
|
||||||
|
* XMPPHP Log levels:
|
||||||
|
*
|
||||||
|
* LEVEL_ERROR = 0;
|
||||||
|
* LEVEL_WARNING = 1;
|
||||||
|
* LEVEL_INFO = 2;
|
||||||
|
* LEVEL_DEBUG = 3;
|
||||||
|
* LEVEL_VERBOSE = 4;
|
||||||
|
*/
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
header('content-type', 'plain/text');
|
||||||
|
|
||||||
|
require '../vendor/autoload.php';
|
||||||
|
|
||||||
|
$conf = array(
|
||||||
|
'server' => 'talk.google.com',
|
||||||
|
'port' => 5222,
|
||||||
|
'username' => 'username',
|
||||||
|
'password' => 'password',
|
||||||
|
'proto' => 'xmpphp',
|
||||||
|
'domain' => 'gmail.com',
|
||||||
|
'printlog' => true,
|
||||||
|
'loglevel' => XMPPHP\Log::LEVEL_VERBOSE,
|
||||||
|
);
|
||||||
|
|
||||||
|
// Easy and simple for access to variables with their names
|
||||||
|
extract($conf);
|
||||||
|
|
||||||
|
$conn = new XMPPHP\XMPP($server, $port, $username, $password, $proto, $domain, $printlog, $loglevel);
|
||||||
|
$conn->autoSubscribe();
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (isset($_SESSION['messages'])) {
|
||||||
|
foreach ($_SESSION['messages'] as $message) {
|
||||||
|
echo $message;
|
||||||
|
flush();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$_SESSION['messages'] = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->connect('http://server.tld:5280/xmpp-httpbind', 1, true);
|
||||||
|
$events = array('message', 'presence', 'end_stream', 'session_start', 'vcard');
|
||||||
|
$payloads = $conn->processUntil($events);
|
||||||
|
|
||||||
|
foreach ($payloads as $result) {
|
||||||
|
list($event, $data) = $result;
|
||||||
|
|
||||||
|
if (isset($data)) {
|
||||||
|
extract($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($event) {
|
||||||
|
|
||||||
|
case 'message':
|
||||||
|
|
||||||
|
if (!$body) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cmd = explode(' ', $body);
|
||||||
|
$msg = str_repeat('-', 80);
|
||||||
|
$msg .= "\nMessage from: $from\n";
|
||||||
|
|
||||||
|
if (isset($subject)) {
|
||||||
|
$msg .= "Subject: $subject\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
$msg .= $body . "\n";
|
||||||
|
$msg .= str_repeat('-', 80);
|
||||||
|
echo "<pre>$msg</pre>";
|
||||||
|
|
||||||
|
if (isset($cmd[0])) {
|
||||||
|
if ($cmd[0] == 'quit') {
|
||||||
|
$conn->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($cmd[0] == 'break') {
|
||||||
|
$conn->send('</end>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$_SESSION['messages'][] = $msg;
|
||||||
|
flush();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'presence':
|
||||||
|
|
||||||
|
echo "Presence: $from [$show] $status\n";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'session_start':
|
||||||
|
|
||||||
|
echo "Session start\n";
|
||||||
|
$conn->getRoster();
|
||||||
|
$conn->presence('Quasar!');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (XMPPHP\Exception $e) {
|
||||||
|
die($e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$conn->saveSession();
|
||||||
|
|
||||||
|
echo '<img src="http://xmpp.org/images/xmpp.png" onload="window.location.reload()" />';
|
79
vendor/diogocomposer/xmpphp/tests/AllTests.php
vendored
Executable file
79
vendor/diogocomposer/xmpphp/tests/AllTests.php
vendored
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP: The PHP XMPP Library
|
||||||
|
* Copyright (C) 2008 Nathanael C. Fritz
|
||||||
|
* This file is part of SleekXMPP.
|
||||||
|
*
|
||||||
|
* XMPPHP is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* XMPPHP is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with XMPPHP; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* @category xmpphp
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Get current working directory with trailing slash
|
||||||
|
define('TESTS_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);
|
||||||
|
|
||||||
|
// Get class directory with trailing slash
|
||||||
|
define('CLASS_DIR', dirname(TESTS_DIR) . DIRECTORY_SEPARATOR);
|
||||||
|
|
||||||
|
/** XMPPHP_LogTest */
|
||||||
|
require_once TESTS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'LogTest.php';
|
||||||
|
|
||||||
|
/** XMPPHP_XMLObjTest */
|
||||||
|
require_once TESTS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'XMLObjTest.php';
|
||||||
|
|
||||||
|
/** XMPPHP_XMPPTest */
|
||||||
|
require_once TESTS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'XMPPTest.php';
|
||||||
|
|
||||||
|
if (!defined('PHPUnit_MAIN_METHOD')) {
|
||||||
|
define('PHPUnit_MAIN_METHOD', 'AllTests::main');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP AllTests
|
||||||
|
*
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
class AllTests
|
||||||
|
{
|
||||||
|
public static function main()
|
||||||
|
{
|
||||||
|
PHPUnit_TextUI_TestRunner::run(self::suite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function suite()
|
||||||
|
{
|
||||||
|
$suite = new PHPUnit_Framework_TestSuite();
|
||||||
|
$suite->addTestSuite('XMPPHP_LogTest');
|
||||||
|
$suite->addTestSuite('XMPPHP_XMLObjTest');
|
||||||
|
$suite->addTestSuite('XMPPHP_XMPPTest');
|
||||||
|
|
||||||
|
return $suite;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PHPUnit_MAIN_METHOD == 'AllTests::main') {
|
||||||
|
AllTests::main();
|
||||||
|
}
|
188
vendor/diogocomposer/xmpphp/tests/XMPPHP/LogTest.php
vendored
Executable file
188
vendor/diogocomposer/xmpphp/tests/XMPPHP/LogTest.php
vendored
Executable file
@ -0,0 +1,188 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP: The PHP XMPP Library
|
||||||
|
* Copyright (C) 2008 Nathanael C. Fritz
|
||||||
|
* This file is part of SleekXMPP.
|
||||||
|
*
|
||||||
|
* XMPPHP is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* XMPPHP is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with XMPPHP; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* @category xmpphp
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** XMPPHP_Log */
|
||||||
|
require_once CLASS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'Log.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP LogTest
|
||||||
|
*
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
class XMPPHP_LogTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testPrintoutNoOutput()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log();
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log('test');
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertEquals('', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPrintoutOutput()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(true);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains($msg, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPrintoutNoOutputWithDefaultLevel()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(true, XMPPHP_Log::LEVEL_ERROR);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPrintoutOutputWithDefaultLevel()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(true, XMPPHP_Log::LEVEL_INFO);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains($msg, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPrintoutNoOutputWithCustomLevel()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(true, XMPPHP_Log::LEVEL_INFO);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg, XMPPHP_Log::LEVEL_DEBUG);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testPrintoutOutputWithCustomLevel()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(true, XMPPHP_Log::LEVEL_INFO);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg, XMPPHP_Log::LEVEL_INFO);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains($msg, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExplicitPrintout()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(false);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExplicitPrintoutResult()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(false);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->printout();
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains($msg, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExplicitPrintoutClear()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(false);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->printout();
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains($msg, $result);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->printout();
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testExplicitPrintoutLevel()
|
||||||
|
{
|
||||||
|
$log = new XMPPHP_Log(false, XMPPHP_Log::LEVEL_ERROR);
|
||||||
|
$msg = 'I am a test log message';
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->log($msg);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
$log->printout(true, XMPPHP_Log::LEVEL_INFO);
|
||||||
|
$result = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertSame('', $result);
|
||||||
|
}
|
||||||
|
}
|
78
vendor/diogocomposer/xmpphp/tests/XMPPHP/XMLObjTest.php
vendored
Executable file
78
vendor/diogocomposer/xmpphp/tests/XMPPHP/XMLObjTest.php
vendored
Executable file
@ -0,0 +1,78 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP: The PHP XMPP Library
|
||||||
|
* Copyright (C) 2008 Nathanael C. Fritz
|
||||||
|
* This file is part of SleekXMPP.
|
||||||
|
*
|
||||||
|
* XMPPHP is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* XMPPHP is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with XMPPHP; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* @category xmpphp
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** XMPPHP_XMLObj */
|
||||||
|
require_once CLASS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'XMLObj.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP XMLObjectTest
|
||||||
|
*
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
class XMPPHP_XMLObjTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testToStringNameNamespace()
|
||||||
|
{
|
||||||
|
$xmlobj = new XMPPHP_XMLObj('testname', 'testNameSpace');
|
||||||
|
$expected = '<testname xmlns="testNameSpace"></testname>';
|
||||||
|
$result = $xmlobj->toString();
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testToStringNameNamespaceAttr()
|
||||||
|
{
|
||||||
|
$xmlobj = new XMPPHP_XMLObj('testName', 'testNameSpace', array('attr1' => 'valA', 'attr2' => 'valB'));
|
||||||
|
$expected = '<testname xmlns="testNameSpace" attr1="valA" attr2="valB"></testname>';
|
||||||
|
$result = $xmlobj->toString();
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testToStringNameNamespaceData()
|
||||||
|
{
|
||||||
|
$xmlobj = new XMPPHP_XMLObj('testName', 'testNameSpace', array(), 'I am test data');
|
||||||
|
$expected = '<testname xmlns="testNameSpace">I am test data</testname>';
|
||||||
|
$result = $xmlobj->toString();
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testToStringNameNamespaceSub()
|
||||||
|
{
|
||||||
|
$xmlobj = new XMPPHP_XMLObj('testName', 'testNameSpace');
|
||||||
|
$sub1 = new XMPPHP_XMLObj('subName', 'subNameSpace');
|
||||||
|
$xmlobj->subs = array($sub1);
|
||||||
|
$expected = '<testname xmlns="testNameSpace"><subname xmlns="subNameSpace"></subname></testname>';
|
||||||
|
$result = $xmlobj->toString();
|
||||||
|
$this->assertSame($expected, $result);
|
||||||
|
}
|
||||||
|
}
|
82
vendor/diogocomposer/xmpphp/tests/XMPPHP/XMPPTest.php
vendored
Executable file
82
vendor/diogocomposer/xmpphp/tests/XMPPHP/XMPPTest.php
vendored
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP: The PHP XMPP Library
|
||||||
|
* Copyright (C) 2008 Nathanael C. Fritz
|
||||||
|
* This file is part of SleekXMPP.
|
||||||
|
*
|
||||||
|
* XMPPHP is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* XMPPHP is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with XMPPHP; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* @category xmpphp
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** XMPPHP_XMPP */
|
||||||
|
require_once CLASS_DIR . 'XMPPHP' . DIRECTORY_SEPARATOR . 'XMPP.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* XMPPHP XMPPTest
|
||||||
|
*
|
||||||
|
* @package XMPPHP
|
||||||
|
* @author Nathanael C. Fritz <JID: fritzy@netflint.net>
|
||||||
|
* @author Stephan Wentz <JID: stephan@jabber.wentz.it>
|
||||||
|
* @author Michael Garvin <JID: gar@netflint.net>
|
||||||
|
* @copyright 2008 Nathanael C. Fritz
|
||||||
|
* @version $Id$
|
||||||
|
*/
|
||||||
|
class XMPPHP_XMPPTest extends PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testConnectException()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$xmpp = new XMPPHP_XMPP('talk.google.com', 1234, 'invalidusername', 'invalidpassword', 'xmpphp', 'talk.google.com', false, XMPPHP_Log::LEVEL_VERBOSE);
|
||||||
|
$xmpp->useEncryption(false);
|
||||||
|
$xmpp->connect(10);
|
||||||
|
$xmpp->processUntil('session_start');
|
||||||
|
$xmpp->presence();
|
||||||
|
$xmpp->message('stephan@jabber.wentz.it', 'This is a test message!');
|
||||||
|
$xmpp->disconnect();
|
||||||
|
} catch (XMPPHP_Exception $e) {
|
||||||
|
return;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail('Unexpected Exception thrown: '.$e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->fail('Expected XMPPHP_Exception not thrown!');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAuthException()
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
$xmpp = new XMPPHP_XMPP('jabber.wentz.it', 5222, 'invalidusername', 'invalidpassword', 'xmpphp', 'jabber.wentz.it', true, XMPPHP_Log::LEVEL_VERBOSE);
|
||||||
|
$xmpp->useEncryption(false);
|
||||||
|
$xmpp->connect(10);
|
||||||
|
$xmpp->processUntil('session_start');
|
||||||
|
$xmpp->presence();
|
||||||
|
$xmpp->message('stephan@jabber.wentz.it', 'This is a test message!');
|
||||||
|
$xmpp->disconnect();
|
||||||
|
} catch (XMPPHP_Exception $e) {
|
||||||
|
return;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail('Unexpected Exception thrown: '.$e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->fail('Expected XMPPHP_Exception not thrown!');
|
||||||
|
}
|
||||||
|
}
|
19
vendor/doctrine/inflector/LICENSE
vendored
19
vendor/doctrine/inflector/LICENSE
vendored
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2006-2015 Doctrine Project
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
|
||||||
the Software without restriction, including without limitation the rights to
|
|
||||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
||||||
of the Software, and to permit persons to whom the Software is furnished to do
|
|
||||||
so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
6
vendor/doctrine/inflector/README.md
vendored
6
vendor/doctrine/inflector/README.md
vendored
@ -1,6 +0,0 @@
|
|||||||
# Doctrine Inflector
|
|
||||||
|
|
||||||
Doctrine Inflector is a small library that can perform string manipulations
|
|
||||||
with regard to upper-/lowercase and singular/plural forms of words.
|
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/doctrine/inflector.svg?branch=master)](https://travis-ci.org/doctrine/inflector)
|
|
32
vendor/doctrine/inflector/composer.json
vendored
32
vendor/doctrine/inflector/composer.json
vendored
@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "doctrine/inflector",
|
|
||||||
"type": "library",
|
|
||||||
"description": "Common String Manipulations with regard to casing and singular/plural rules.",
|
|
||||||
"keywords": ["string", "inflection", "singularize", "pluralize"],
|
|
||||||
"homepage": "http://www.doctrine-project.org",
|
|
||||||
"license": "MIT",
|
|
||||||
"authors": [
|
|
||||||
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
|
||||||
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
|
||||||
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
|
||||||
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
|
|
||||||
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
|
||||||
],
|
|
||||||
"require": {
|
|
||||||
"php": "^7.1"
|
|
||||||
},
|
|
||||||
"require-dev": {
|
|
||||||
"phpunit/phpunit": "^6.2"
|
|
||||||
},
|
|
||||||
"autoload": {
|
|
||||||
"psr-4": { "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector" }
|
|
||||||
},
|
|
||||||
"autoload-dev": {
|
|
||||||
"psr-4": { "Doctrine\\Tests\\Common\\Inflector\\": "tests/Doctrine/Tests/Common/Inflector" }
|
|
||||||
},
|
|
||||||
"extra": {
|
|
||||||
"branch-alias": {
|
|
||||||
"dev-master": "1.3.x-dev"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,490 +0,0 @@
|
|||||||
<?php
|
|
||||||
/*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* This software consists of voluntary contributions made by many individuals
|
|
||||||
* and is licensed under the MIT license. For more information, see
|
|
||||||
* <http://www.doctrine-project.org>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace Doctrine\Common\Inflector;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Doctrine inflector has static methods for inflecting text.
|
|
||||||
*
|
|
||||||
* The methods in these classes are from several different sources collected
|
|
||||||
* across several different php projects and several different authors. The
|
|
||||||
* original author names and emails are not known.
|
|
||||||
*
|
|
||||||
* Pluralize & Singularize implementation are borrowed from CakePHP with some modifications.
|
|
||||||
*
|
|
||||||
* @link www.doctrine-project.org
|
|
||||||
* @since 1.0
|
|
||||||
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
|
|
||||||
* @author Jonathan H. Wage <jonwage@gmail.com>
|
|
||||||
*/
|
|
||||||
class Inflector
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Plural inflector rules.
|
|
||||||
*
|
|
||||||
* @var string[][]
|
|
||||||
*/
|
|
||||||
private static $plural = array(
|
|
||||||
'rules' => array(
|
|
||||||
'/(s)tatus$/i' => '\1\2tatuses',
|
|
||||||
'/(quiz)$/i' => '\1zes',
|
|
||||||
'/^(ox)$/i' => '\1\2en',
|
|
||||||
'/([m|l])ouse$/i' => '\1ice',
|
|
||||||
'/(matr|vert|ind)(ix|ex)$/i' => '\1ices',
|
|
||||||
'/(x|ch|ss|sh)$/i' => '\1es',
|
|
||||||
'/([^aeiouy]|qu)y$/i' => '\1ies',
|
|
||||||
'/(hive|gulf)$/i' => '\1s',
|
|
||||||
'/(?:([^f])fe|([lr])f)$/i' => '\1\2ves',
|
|
||||||
'/sis$/i' => 'ses',
|
|
||||||
'/([ti])um$/i' => '\1a',
|
|
||||||
'/(c)riterion$/i' => '\1riteria',
|
|
||||||
'/(p)erson$/i' => '\1eople',
|
|
||||||
'/(m)an$/i' => '\1en',
|
|
||||||
'/(c)hild$/i' => '\1hildren',
|
|
||||||
'/(f)oot$/i' => '\1eet',
|
|
||||||
'/(buffal|her|potat|tomat|volcan)o$/i' => '\1\2oes',
|
|
||||||
'/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|vir)us$/i' => '\1i',
|
|
||||||
'/us$/i' => 'uses',
|
|
||||||
'/(alias)$/i' => '\1es',
|
|
||||||
'/(analys|ax|cris|test|thes)is$/i' => '\1es',
|
|
||||||
'/s$/' => 's',
|
|
||||||
'/^$/' => '',
|
|
||||||
'/$/' => 's',
|
|
||||||
),
|
|
||||||
'uninflected' => array(
|
|
||||||
'.*[nrlm]ese',
|
|
||||||
'.*deer',
|
|
||||||
'.*fish',
|
|
||||||
'.*measles',
|
|
||||||
'.*ois',
|
|
||||||
'.*pox',
|
|
||||||
'.*sheep',
|
|
||||||
'people',
|
|
||||||
'cookie',
|
|
||||||
'police',
|
|
||||||
),
|
|
||||||
'irregular' => array(
|
|
||||||
'atlas' => 'atlases',
|
|
||||||
'axe' => 'axes',
|
|
||||||
'beef' => 'beefs',
|
|
||||||
'brother' => 'brothers',
|
|
||||||
'cafe' => 'cafes',
|
|
||||||
'chateau' => 'chateaux',
|
|
||||||
'niveau' => 'niveaux',
|
|
||||||
'child' => 'children',
|
|
||||||
'cookie' => 'cookies',
|
|
||||||
'corpus' => 'corpuses',
|
|
||||||
'cow' => 'cows',
|
|
||||||
'criterion' => 'criteria',
|
|
||||||
'curriculum' => 'curricula',
|
|
||||||
'demo' => 'demos',
|
|
||||||
'domino' => 'dominoes',
|
|
||||||
'echo' => 'echoes',
|
|
||||||
'foot' => 'feet',
|
|
||||||
'fungus' => 'fungi',
|
|
||||||
'ganglion' => 'ganglions',
|
|
||||||
'genie' => 'genies',
|
|
||||||
'genus' => 'genera',
|
|
||||||
'goose' => 'geese',
|
|
||||||
'graffito' => 'graffiti',
|
|
||||||
'hippopotamus' => 'hippopotami',
|
|
||||||
'hoof' => 'hoofs',
|
|
||||||
'human' => 'humans',
|
|
||||||
'iris' => 'irises',
|
|
||||||
'larva' => 'larvae',
|
|
||||||
'leaf' => 'leaves',
|
|
||||||
'loaf' => 'loaves',
|
|
||||||
'man' => 'men',
|
|
||||||
'medium' => 'media',
|
|
||||||
'memorandum' => 'memoranda',
|
|
||||||
'money' => 'monies',
|
|
||||||
'mongoose' => 'mongooses',
|
|
||||||
'motto' => 'mottoes',
|
|
||||||
'move' => 'moves',
|
|
||||||
'mythos' => 'mythoi',
|
|
||||||
'niche' => 'niches',
|
|
||||||
'nucleus' => 'nuclei',
|
|
||||||
'numen' => 'numina',
|
|
||||||
'occiput' => 'occiputs',
|
|
||||||
'octopus' => 'octopuses',
|
|
||||||
'opus' => 'opuses',
|
|
||||||
'ox' => 'oxen',
|
|
||||||
'passerby' => 'passersby',
|
|
||||||
'penis' => 'penises',
|
|
||||||
'person' => 'people',
|
|
||||||
'plateau' => 'plateaux',
|
|
||||||
'runner-up' => 'runners-up',
|
|
||||||
'sex' => 'sexes',
|
|
||||||
'soliloquy' => 'soliloquies',
|
|
||||||
'son-in-law' => 'sons-in-law',
|
|
||||||
'syllabus' => 'syllabi',
|
|
||||||
'testis' => 'testes',
|
|
||||||
'thief' => 'thieves',
|
|
||||||
'tooth' => 'teeth',
|
|
||||||
'tornado' => 'tornadoes',
|
|
||||||
'trilby' => 'trilbys',
|
|
||||||
'turf' => 'turfs',
|
|
||||||
'valve' => 'valves',
|
|
||||||
'volcano' => 'volcanoes',
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Singular inflector rules.
|
|
||||||
*
|
|
||||||
* @var string[][]
|
|
||||||
*/
|
|
||||||
private static $singular = array(
|
|
||||||
'rules' => array(
|
|
||||||
'/(s)tatuses$/i' => '\1\2tatus',
|
|
||||||
'/^(.*)(menu)s$/i' => '\1\2',
|
|
||||||
'/(quiz)zes$/i' => '\\1',
|
|
||||||
'/(matr)ices$/i' => '\1ix',
|
|
||||||
'/(vert|ind)ices$/i' => '\1ex',
|
|
||||||
'/^(ox)en/i' => '\1',
|
|
||||||
'/(alias)(es)*$/i' => '\1',
|
|
||||||
'/(buffal|her|potat|tomat|volcan)oes$/i' => '\1o',
|
|
||||||
'/(alumn|bacill|cact|foc|fung|nucle|radi|stimul|syllab|termin|viri?)i$/i' => '\1us',
|
|
||||||
'/([ftw]ax)es/i' => '\1',
|
|
||||||
'/(analys|ax|cris|test|thes)es$/i' => '\1is',
|
|
||||||
'/(shoe|slave)s$/i' => '\1',
|
|
||||||
'/(o)es$/i' => '\1',
|
|
||||||
'/ouses$/' => 'ouse',
|
|
||||||
'/([^a])uses$/' => '\1us',
|
|
||||||
'/([m|l])ice$/i' => '\1ouse',
|
|
||||||
'/(x|ch|ss|sh)es$/i' => '\1',
|
|
||||||
'/(m)ovies$/i' => '\1\2ovie',
|
|
||||||
'/(s)eries$/i' => '\1\2eries',
|
|
||||||
'/([^aeiouy]|qu)ies$/i' => '\1y',
|
|
||||||
'/([lr])ves$/i' => '\1f',
|
|
||||||
'/(tive)s$/i' => '\1',
|
|
||||||
'/(hive)s$/i' => '\1',
|
|
||||||
'/(drive)s$/i' => '\1',
|
|
||||||
'/(dive)s$/i' => '\1',
|
|
||||||
'/(olive)s$/i' => '\1',
|
|
||||||
'/([^fo])ves$/i' => '\1fe',
|
|
||||||
'/(^analy)ses$/i' => '\1sis',
|
|
||||||
'/(analy|diagno|^ba|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i' => '\1\2sis',
|
|
||||||
'/(c)riteria$/i' => '\1riterion',
|
|
||||||
'/([ti])a$/i' => '\1um',
|
|
||||||
'/(p)eople$/i' => '\1\2erson',
|
|
||||||
'/(m)en$/i' => '\1an',
|
|
||||||
'/(c)hildren$/i' => '\1\2hild',
|
|
||||||
'/(f)eet$/i' => '\1oot',
|
|
||||||
'/(n)ews$/i' => '\1\2ews',
|
|
||||||
'/eaus$/' => 'eau',
|
|
||||||
'/^(.*us)$/' => '\\1',
|
|
||||||
'/s$/i' => '',
|
|
||||||
),
|
|
||||||
'uninflected' => array(
|
|
||||||
'.*[nrlm]ese',
|
|
||||||
'.*deer',
|
|
||||||
'.*fish',
|
|
||||||
'.*measles',
|
|
||||||
'.*ois',
|
|
||||||
'.*pox',
|
|
||||||
'.*sheep',
|
|
||||||
'.*ss',
|
|
||||||
'data',
|
|
||||||
'police',
|
|
||||||
'pants',
|
|
||||||
'clothes',
|
|
||||||
),
|
|
||||||
'irregular' => array(
|
|
||||||
'abuses' => 'abuse',
|
|
||||||
'avalanches' => 'avalanche',
|
|
||||||
'caches' => 'cache',
|
|
||||||
'criteria' => 'criterion',
|
|
||||||
'curves' => 'curve',
|
|
||||||
'emphases' => 'emphasis',
|
|
||||||
'foes' => 'foe',
|
|
||||||
'geese' => 'goose',
|
|
||||||
'graves' => 'grave',
|
|
||||||
'hoaxes' => 'hoax',
|
|
||||||
'media' => 'medium',
|
|
||||||
'neuroses' => 'neurosis',
|
|
||||||
'waves' => 'wave',
|
|
||||||
'oases' => 'oasis',
|
|
||||||
'valves' => 'valve',
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Words that should not be inflected.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $uninflected = array(
|
|
||||||
'.*?media', 'Amoyese', 'audio', 'bison', 'Borghese', 'bream', 'breeches',
|
|
||||||
'britches', 'buffalo', 'cantus', 'carp', 'chassis', 'clippers', 'cod', 'coitus', 'compensation', 'Congoese',
|
|
||||||
'contretemps', 'coreopsis', 'corps', 'data', 'debris', 'deer', 'diabetes', 'djinn', 'education', 'eland',
|
|
||||||
'elk', 'emoji', 'equipment', 'evidence', 'Faroese', 'feedback', 'fish', 'flounder', 'Foochowese',
|
|
||||||
'Furniture', 'furniture', 'gallows', 'Genevese', 'Genoese', 'Gilbertese', 'gold',
|
|
||||||
'headquarters', 'herpes', 'hijinks', 'Hottentotese', 'information', 'innings', 'jackanapes', 'jedi',
|
|
||||||
'Kiplingese', 'knowledge', 'Kongoese', 'love', 'Lucchese', 'Luggage', 'mackerel', 'Maltese', 'metadata',
|
|
||||||
'mews', 'moose', 'mumps', 'Nankingese', 'news', 'nexus', 'Niasese', 'nutrition', 'offspring',
|
|
||||||
'Pekingese', 'Piedmontese', 'pincers', 'Pistoiese', 'plankton', 'pliers', 'pokemon', 'police', 'Portuguese',
|
|
||||||
'proceedings', 'rabies', 'rain', 'rhinoceros', 'rice', 'salmon', 'Sarawakese', 'scissors', 'sea[- ]bass',
|
|
||||||
'series', 'Shavese', 'shears', 'sheep', 'siemens', 'species', 'staff', 'swine', 'traffic',
|
|
||||||
'trousers', 'trout', 'tuna', 'us', 'Vermontese', 'Wenchowese', 'wheat', 'whiting', 'wildebeest', 'Yengeese'
|
|
||||||
);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method cache array.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $cache = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The initial state of Inflector so reset() works.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
private static $initialState = array();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts a word into the format for a Doctrine table name. Converts 'ModelName' to 'model_name'.
|
|
||||||
*/
|
|
||||||
public static function tableize(string $word) : string
|
|
||||||
{
|
|
||||||
return strtolower(preg_replace('~(?<=\\w)([A-Z])~', '_$1', $word));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Converts a word into the format for a Doctrine class name. Converts 'table_name' to 'TableName'.
|
|
||||||
*/
|
|
||||||
public static function classify(string $word) : string
|
|
||||||
{
|
|
||||||
return str_replace([' ', '_', '-'], '', ucwords($word, ' _-'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Camelizes a word. This uses the classify() method and turns the first character to lowercase.
|
|
||||||
*/
|
|
||||||
public static function camelize(string $word) : string
|
|
||||||
{
|
|
||||||
return lcfirst(self::classify($word));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Uppercases words with configurable delimeters between words.
|
|
||||||
*
|
|
||||||
* Takes a string and capitalizes all of the words, like PHP's built-in
|
|
||||||
* ucwords function. This extends that behavior, however, by allowing the
|
|
||||||
* word delimeters to be configured, rather than only separating on
|
|
||||||
* whitespace.
|
|
||||||
*
|
|
||||||
* Here is an example:
|
|
||||||
* <code>
|
|
||||||
* <?php
|
|
||||||
* $string = 'top-o-the-morning to all_of_you!';
|
|
||||||
* echo \Doctrine\Common\Inflector\Inflector::ucwords($string);
|
|
||||||
* // Top-O-The-Morning To All_of_you!
|
|
||||||
*
|
|
||||||
* echo \Doctrine\Common\Inflector\Inflector::ucwords($string, '-_ ');
|
|
||||||
* // Top-O-The-Morning To All_Of_You!
|
|
||||||
* ?>
|
|
||||||
* </code>
|
|
||||||
*
|
|
||||||
* @param string $string The string to operate on.
|
|
||||||
* @param string $delimiters A list of word separators.
|
|
||||||
*
|
|
||||||
* @return string The string with all delimeter-separated words capitalized.
|
|
||||||
*/
|
|
||||||
public static function ucwords(string $string, string $delimiters = " \n\t\r\0\x0B-") : string
|
|
||||||
{
|
|
||||||
return ucwords($string, $delimiters);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clears Inflectors inflected value caches, and resets the inflection
|
|
||||||
* rules to the initial values.
|
|
||||||
*/
|
|
||||||
public static function reset() : void
|
|
||||||
{
|
|
||||||
if (empty(self::$initialState)) {
|
|
||||||
self::$initialState = get_class_vars('Inflector');
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (self::$initialState as $key => $val) {
|
|
||||||
if ($key !== 'initialState') {
|
|
||||||
self::${$key} = $val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds custom inflection $rules, of either 'plural' or 'singular' $type.
|
|
||||||
*
|
|
||||||
* ### Usage:
|
|
||||||
*
|
|
||||||
* {{{
|
|
||||||
* Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables'));
|
|
||||||
* Inflector::rules('plural', array(
|
|
||||||
* 'rules' => array('/^(inflect)ors$/i' => '\1ables'),
|
|
||||||
* 'uninflected' => array('dontinflectme'),
|
|
||||||
* 'irregular' => array('red' => 'redlings')
|
|
||||||
* ));
|
|
||||||
* }}}
|
|
||||||
*
|
|
||||||
* @param string $type The type of inflection, either 'plural' or 'singular'
|
|
||||||
* @param array|iterable $rules An array of rules to be added.
|
|
||||||
* @param boolean $reset If true, will unset default inflections for all
|
|
||||||
* new rules that are being defined in $rules.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public static function rules(string $type, iterable $rules, bool $reset = false) : void
|
|
||||||
{
|
|
||||||
foreach ($rules as $rule => $pattern) {
|
|
||||||
if ( ! is_array($pattern)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($reset) {
|
|
||||||
self::${$type}[$rule] = $pattern;
|
|
||||||
} else {
|
|
||||||
self::${$type}[$rule] = ($rule === 'uninflected')
|
|
||||||
? array_merge($pattern, self::${$type}[$rule])
|
|
||||||
: $pattern + self::${$type}[$rule];
|
|
||||||
}
|
|
||||||
|
|
||||||
unset($rules[$rule], self::${$type}['cache' . ucfirst($rule)]);
|
|
||||||
|
|
||||||
if (isset(self::${$type}['merged'][$rule])) {
|
|
||||||
unset(self::${$type}['merged'][$rule]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($type === 'plural') {
|
|
||||||
self::$cache['pluralize'] = self::$cache['tableize'] = array();
|
|
||||||
} elseif ($type === 'singular') {
|
|
||||||
self::$cache['singularize'] = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self::${$type}['rules'] = $rules + self::${$type}['rules'];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a word in plural form.
|
|
||||||
*
|
|
||||||
* @param string $word The word in singular form.
|
|
||||||
*
|
|
||||||
* @return string The word in plural form.
|
|
||||||
*/
|
|
||||||
public static function pluralize(string $word) : string
|
|
||||||
{
|
|
||||||
if (isset(self::$cache['pluralize'][$word])) {
|
|
||||||
return self::$cache['pluralize'][$word];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$plural['merged']['irregular'])) {
|
|
||||||
self::$plural['merged']['irregular'] = self::$plural['irregular'];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$plural['merged']['uninflected'])) {
|
|
||||||
self::$plural['merged']['uninflected'] = array_merge(self::$plural['uninflected'], self::$uninflected);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$plural['cacheUninflected']) || !isset(self::$plural['cacheIrregular'])) {
|
|
||||||
self::$plural['cacheUninflected'] = '(?:' . implode('|', self::$plural['merged']['uninflected']) . ')';
|
|
||||||
self::$plural['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$plural['merged']['irregular'])) . ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/(.*)\\b(' . self::$plural['cacheIrregular'] . ')$/i', $word, $regs)) {
|
|
||||||
self::$cache['pluralize'][$word] = $regs[1] . $word[0] . substr(self::$plural['merged']['irregular'][strtolower($regs[2])], 1);
|
|
||||||
|
|
||||||
return self::$cache['pluralize'][$word];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/^(' . self::$plural['cacheUninflected'] . ')$/i', $word, $regs)) {
|
|
||||||
self::$cache['pluralize'][$word] = $word;
|
|
||||||
|
|
||||||
return $word;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (self::$plural['rules'] as $rule => $replacement) {
|
|
||||||
if (preg_match($rule, $word)) {
|
|
||||||
self::$cache['pluralize'][$word] = preg_replace($rule, $replacement, $word);
|
|
||||||
|
|
||||||
return self::$cache['pluralize'][$word];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a word in singular form.
|
|
||||||
*
|
|
||||||
* @param string $word The word in plural form.
|
|
||||||
*
|
|
||||||
* @return string The word in singular form.
|
|
||||||
*/
|
|
||||||
public static function singularize(string $word) : string
|
|
||||||
{
|
|
||||||
if (isset(self::$cache['singularize'][$word])) {
|
|
||||||
return self::$cache['singularize'][$word];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$singular['merged']['uninflected'])) {
|
|
||||||
self::$singular['merged']['uninflected'] = array_merge(
|
|
||||||
self::$singular['uninflected'],
|
|
||||||
self::$uninflected
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$singular['merged']['irregular'])) {
|
|
||||||
self::$singular['merged']['irregular'] = array_merge(
|
|
||||||
self::$singular['irregular'],
|
|
||||||
array_flip(self::$plural['irregular'])
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!isset(self::$singular['cacheUninflected']) || !isset(self::$singular['cacheIrregular'])) {
|
|
||||||
self::$singular['cacheUninflected'] = '(?:' . implode('|', self::$singular['merged']['uninflected']) . ')';
|
|
||||||
self::$singular['cacheIrregular'] = '(?:' . implode('|', array_keys(self::$singular['merged']['irregular'])) . ')';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/(.*)\\b(' . self::$singular['cacheIrregular'] . ')$/i', $word, $regs)) {
|
|
||||||
self::$cache['singularize'][$word] = $regs[1] . $word[0] . substr(self::$singular['merged']['irregular'][strtolower($regs[2])], 1);
|
|
||||||
|
|
||||||
return self::$cache['singularize'][$word];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (preg_match('/^(' . self::$singular['cacheUninflected'] . ')$/i', $word, $regs)) {
|
|
||||||
self::$cache['singularize'][$word] = $word;
|
|
||||||
|
|
||||||
return $word;
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (self::$singular['rules'] as $rule => $replacement) {
|
|
||||||
if (preg_match($rule, $word)) {
|
|
||||||
self::$cache['singularize'][$word] = preg_replace($rule, $replacement, $word);
|
|
||||||
|
|
||||||
return self::$cache['singularize'][$word];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self::$cache['singularize'][$word] = $word;
|
|
||||||
|
|
||||||
return $word;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Illuminate\Contracts\Auth\Access;
|
|
||||||
|
|
||||||
interface Authorizable
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if the entity has a given ability.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function can($ability, $arguments = []);
|
|
||||||
}
|
|
129
vendor/illuminate/contracts/Auth/Access/Gate.php
vendored
129
vendor/illuminate/contracts/Auth/Access/Gate.php
vendored
@ -1,129 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace Illuminate\Contracts\Auth\Access;
|
|
||||||
|
|
||||||
interface Gate
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Determine if a given ability has been defined.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function has($ability);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define a new ability.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param callable|string $callback
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function define($ability, $callback);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define a policy class for a given class type.
|
|
||||||
*
|
|
||||||
* @param string $class
|
|
||||||
* @param string $policy
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function policy($class, $policy);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a callback to run before all Gate checks.
|
|
||||||
*
|
|
||||||
* @param callable $callback
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function before(callable $callback);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Register a callback to run after all Gate checks.
|
|
||||||
*
|
|
||||||
* @param callable $callback
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function after(callable $callback);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if the given ability should be granted for the current user.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function allows($ability, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if the given ability should be denied for the current user.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function denies($ability, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if all of the given abilities should be granted for the current user.
|
|
||||||
*
|
|
||||||
* @param iterable|string $abilities
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function check($abilities, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if any one of the given abilities should be granted for the current user.
|
|
||||||
*
|
|
||||||
* @param iterable|string $abilities
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function any($abilities, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine if the given ability should be granted for the current user.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return \Illuminate\Auth\Access\Response
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Auth\Access\AuthorizationException
|
|
||||||
*/
|
|
||||||
public function authorize($ability, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the raw result from the authorization callback.
|
|
||||||
*
|
|
||||||
* @param string $ability
|
|
||||||
* @param array|mixed $arguments
|
|
||||||
* @return mixed
|
|
||||||
*/
|
|
||||||
public function raw($ability, $arguments = []);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a policy instance for a given class.
|
|
||||||
*
|
|
||||||
* @param object|string $class
|
|
||||||
* @return mixed
|
|
||||||
*
|
|
||||||
* @throws \InvalidArgumentException
|
|
||||||
*/
|
|
||||||
public function getPolicyFor($class);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a guard instance for the given user.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user
|
|
||||||
* @return static
|
|
||||||
*/
|
|
||||||
public function forUser($user);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get all of the defined abilities.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function abilities();
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user