├── .gitignore
├── admin
├── library-name
├── darcs-ignore
├── checkimport
├── checkimports
├── syntaxcheck
├── nobadbraces
├── findglobals
├── findallphp
├── findphp
├── otb_test.php
├── webtest.php
├── nobadcase
├── prepare-release
├── docblocks
├── fixperms
├── open_tag
├── nolonglines
├── mathlib
├── makedoc.sh
├── notabs
├── docblocks.pl
├── package.xml
├── adminutil.php
├── longlines.pl
├── gettlds.py
├── runtests
├── xmlconfig.py
├── package2.xml
├── tutorials
│ └── OpenID
│ │ └── OpenID.pkg
├── brace_style.pl
├── phpaliases.py
└── packagexml.py
├── examples
├── server
│ ├── index.php
│ ├── lib
│ │ ├── render
│ │ │ ├── idpXrds.php
│ │ │ ├── idpage.php
│ │ │ ├── userXrds.php
│ │ │ ├── about.php
│ │ │ ├── trust.php
│ │ │ └── login.php
│ │ ├── common.php
│ │ ├── render.php
│ │ ├── session.php
│ │ └── actions.php
│ ├── server.php
│ └── openid-server.css
├── consumer
│ ├── index.php
│ ├── try_auth.php
│ ├── common.php
│ └── finish_auth.php
├── discover.php
└── README.md
├── Tests
├── Auth
│ ├── Yadis
│ │ ├── data
│ │ │ ├── not-xrds.xml
│ │ │ ├── no-xrd.xml
│ │ │ ├── example-xrds.xml
│ │ │ ├── brian.multi_uri.xrds
│ │ │ ├── brian.xrds
│ │ │ ├── uri_priority.xrds
│ │ │ ├── README
│ │ │ ├── pip.xrds
│ │ │ ├── brian_priority.xrds
│ │ │ ├── spoof1.xrds
│ │ │ ├── spoof2.xrds
│ │ │ ├── brian.multi.xrds
│ │ │ ├── spoof3.xrds
│ │ │ ├── test1-xrd.xml
│ │ │ ├── delegated-20060809.xrds
│ │ │ ├── delegated-20060809-r1.xrds
│ │ │ ├── delegated-20060809-r2.xrds
│ │ │ ├── prefixsometimes.xrds
│ │ │ ├── sometimesprefix.xrds
│ │ │ ├── subsegments.xrds
│ │ │ ├── test1-discover.txt
│ │ │ ├── accept.txt
│ │ │ ├── test1-parsehtml.txt
│ │ │ └── ref.xrds
│ │ ├── TestUtil.php
│ │ ├── ParseHTML.php
│ │ ├── Yadis.php
│ │ └── DiscoverData.php
│ └── OpenID
│ │ ├── data
│ │ ├── test_discover_yadis_no_delegate.xml
│ │ ├── test_discover_openid_no_delegate.html
│ │ ├── test_discover_openid2_xrds_no_local_id.xml
│ │ ├── test_discover_yadis_0entries.xml
│ │ ├── openid.html
│ │ ├── test_discover_yadis_idp.xml
│ │ ├── test_discover_openid2_xrds.xml
│ │ ├── test_discover_openid.html
│ │ ├── test_discover_openid2.html
│ │ ├── test_discover_openid_1_and_2.html
│ │ ├── test_discover_yadis_idp_delegate.xml
│ │ ├── test_discover_yadis_another_delegate.xml
│ │ ├── test_discover_openid_and_yadis.html
│ │ ├── test_discover_yadis_2_bad_local_id.xml
│ │ ├── test_discover_openid_1_and_2_xrds.xml
│ │ ├── test_discover_openid_1_and_2_xrds_bad_delegate.xml
│ │ ├── test_discover_openid_ssl.xml
│ │ ├── test_discover_yadis_2entries_idp.xml
│ │ ├── test_discover_yadis_2entries_delegate.xml
│ │ ├── urinorm.txt
│ │ ├── hmac-sha256.txt
│ │ └── hmac-sha1.txt
│ │ ├── Extension.php
│ │ ├── CryptUtil.php
│ │ ├── Association.php
│ │ ├── TestUtil.php
│ │ ├── URINorm.php
│ │ ├── MemStore.php
│ │ └── Nonce.php
└── TestDriver.php
├── contrib
└── google
│ └── php-openid-apps-discover-1.0.1.tar.gz
├── README.Debian
├── README.git
├── composer.json
├── Auth
├── OpenID
│ ├── ServerRequest.php
│ ├── Extension.php
│ ├── MySQLStore.php
│ ├── SQLiteStore.php
│ ├── KVForm.php
│ ├── Nonce.php
│ ├── HMAC.php
│ ├── DiffieHellman.php
│ ├── DumbStore.php
│ ├── CryptUtil.php
│ ├── PostgreSQLStore.php
│ └── DatabaseConnection.php
└── Yadis
│ ├── Misc.php
│ └── XRIRes.php
├── CHANGES-2.1.0
├── NEWS.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | vendor
2 |
--------------------------------------------------------------------------------
/admin/library-name:
--------------------------------------------------------------------------------
1 | php-openid
--------------------------------------------------------------------------------
/admin/darcs-ignore:
--------------------------------------------------------------------------------
1 | ~$
2 | ^doc(/|$)
3 | ^CHANGELOG$
4 |
--------------------------------------------------------------------------------
/admin/checkimport:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 |
--------------------------------------------------------------------------------
/examples/server/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/not-xrds.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/admin/checkimports:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | ./admin/findphp | xargs -L 1 ./admin/checkimport
--------------------------------------------------------------------------------
/admin/syntaxcheck:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | for file in `./admin/findallphp`
4 | do php -l $file
5 | done
6 |
--------------------------------------------------------------------------------
/admin/nobadbraces:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | ./admin/findphp | xargs -L 1 /usr/bin/env perl admin/brace_style.pl
5 |
--------------------------------------------------------------------------------
/contrib/google/php-openid-apps-discover-1.0.1.tar.gz:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/openid/php-openid/HEAD/contrib/google/php-openid-apps-discover-1.0.1.tar.gz
--------------------------------------------------------------------------------
/admin/findglobals:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Find all PHP modules that are likely to have global variables
3 | set -e
4 |
5 | ./admin/findphp | xargs grep '^\$'
6 |
--------------------------------------------------------------------------------
/admin/findallphp:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | find Auth Tests \
4 | -name _darcs -prune -o \
5 | \( -type f \
6 | -a -name \*.php \
7 | -a ! -name .\* \
8 | \)
9 |
--------------------------------------------------------------------------------
/admin/findphp:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | find Auth Tests \
4 | -name _darcs -prune -o \
5 | \( -type f \
6 | -a -name \*.php \
7 | -a ! -name .\* \
8 | \) | grep -v Tests
9 |
--------------------------------------------------------------------------------
/admin/otb_test.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.Debian:
--------------------------------------------------------------------------------
1 | Development Environment Setup
2 | =============================
3 |
4 | Janrain note: You'll need to run these commands to generate
5 | documentation for this project:
6 |
7 | apt-get install php4-pear
8 | pear install PhpDocumentor
9 |
--------------------------------------------------------------------------------
/admin/webtest.php:
--------------------------------------------------------------------------------
1 | addSuites($suites);
10 | $gui->show();
11 |
12 | ?>
13 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/no-xrd.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/admin/nobadcase:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | bad=$(./admin/findphp | xargs egrep -n "^[^\'\"]*\b(TRUE|FALSE|NULL)\b")
4 |
5 | if [ ! -z "$bad" ]
6 | then
7 | cat <&2
8 | These files contain wrongly capitalized constants:
9 |
10 | $bad
11 |
12 | EOF
13 | exit 1
14 | fi
15 |
--------------------------------------------------------------------------------
/admin/prepare-release:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Prepare this repository for release
4 |
5 | REPO_ROOT=$(dirname $(dirname $(readlink --canonicalize "$0")))
6 | cd "$REPO_ROOT"
7 |
8 | bash ./admin/fixperms
9 |
10 | ./admin/makedoc.sh
11 |
12 | darcs changes --from-tag=. --summary > CHANGELOG
13 |
--------------------------------------------------------------------------------
/admin/docblocks:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #set -e
3 |
4 | bad_files=$(./admin/findphp | xargs -L 1 /usr/bin/env perl admin/docblocks.pl)
5 |
6 | if [ "$bad_files" ]
7 | then
8 | cat <&2
9 | These files do not start with docblocks:
10 |
11 | $bad_files
12 |
13 | EOF
14 | exit 1
15 | fi
16 |
--------------------------------------------------------------------------------
/README.git:
--------------------------------------------------------------------------------
1 | GitHub is the new home for php-openid library development.
2 |
3 | This library was originally written by JanRain and managed using the darcs RCS. This file is home to notes regarding the migration from darcs to git, and the move from openidenabled.com to github.com.
4 |
5 | Contact:
6 | Brian Ellin
7 | brian@janrain.com
8 |
--------------------------------------------------------------------------------
/admin/fixperms:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | cat <&2
11 | These PHP files do NOT begin with &2
9 | Found lines > 80 characters in:
10 |
11 | $files_with_long_lines
12 | EOF
13 | exit 1
14 | fi
15 |
--------------------------------------------------------------------------------
/admin/mathlib:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env php
2 | type;
16 | }
17 |
18 | ?>
19 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_no_delegate.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | http://openid.net/signon/1.0
8 | http://www.myopenid.com/server
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/admin/makedoc.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | set -v
3 | phpdoc -p on -t doc -d Auth,admin/tutorials -ti "JanRain OpenID Library" \
4 | --ignore \*~,BigMath.php,Discover.php,CryptUtil.php,DiffieHellman.php,HMACSHA1.php,KVForm.php,Parse.php,TrustRoot.php,HTTPFetcher.php,ParanoidHTTPFetcher.php,PlainHTTPFetcher.php,ParseHTML.php,URINorm.php,XRI.php,XRIRes.php,Misc.php \
5 | -dn "OpenID" -o "HTML:frames:phphtmllib"
6 |
--------------------------------------------------------------------------------
/admin/notabs:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Look in the local directory for PHP files that have tabs in them. If
4 | # there are files with tabs, print the list of files and exit with
5 | # non-zero status.
6 |
7 | tabs=$(./admin/findphp | xargs egrep -n ' ' | sort)
8 |
9 | if [ ! -z "$tabs" ]
10 | then
11 | cat <&2
12 | Found tabs in:
13 | $tabs
14 | EOF
15 | exit 1
16 | fi
17 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_no_delegate.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 | foo
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/example-xrds.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
8 |
9 | http://example.com/
10 | http://www.openidenabled.com/
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid2_xrds_no_local_id.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | http://specs.openid.net/auth/2.0/signon
8 | http://www.myopenid.com/server
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_0entries.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | http://is-not-openid.unittest/
9 | http://noffing.unittest./
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/openid.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 |
9 | foo
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_idp.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | http://specs.openid.net/auth/2.0/server
9 | http://www.myopenid.com/server
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid2_xrds.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | http://specs.openid.net/auth/2.0/signon
8 | http://www.myopenid.com/server
9 | http://smoker.myopenid.com/
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 |
9 | foo
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/brian.multi_uri.xrds:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://www.myopenid.com/server
11 | http://example.com/server
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 |
9 | foo
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/brian.xrds:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://www.myopenid.com/server
11 | http://brian.myopenid.com/
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_1_and_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 |
9 | foo
10 |
11 |
12 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/uri_priority.xrds:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://no.priority/
11 | http://one.priority/
12 | http://zero.priority/
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_idp_delegate.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 | http://specs.openid.net/auth/2.0/server
9 | http://www.myopenid.com/server
10 | http://smoker.myopenid.com/
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_another_delegate.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://vroom.unittest/server
11 | http://smoker.myopenid.com/
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/admin/docblocks.pl:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env perl -w
2 |
3 | use strict;
4 |
5 | my $filename = $ARGV[0];
6 |
7 | if (!$filename) {
8 | print "Usage: docblocks.pl \n";
9 | exit(1);
10 | }
11 |
12 | my %allowed = ("" => 1,
13 | " 1);
14 |
15 | open(HANDLE, "<", $filename) or die "Cannot open $filename\n";
16 |
17 | while () {
18 | chomp;
19 |
20 | if ($_ =~ /\/\*\*/) {
21 | exit(0);
22 | } elsif (!$allowed{$_}) {
23 | print $filename."\n";
24 | exit(1);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_and_yadis.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Identity Page for Smoker
5 |
6 |
7 |
8 |
9 |
10 | foo
11 |
12 |
13 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_2_bad_local_id.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://specs.openid.net/auth/2.0/signon
10 | http://www.myopenid.com/server
11 | http://smoker.myopenid.com/
12 | http://localid.mismatch.invalid/
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/README:
--------------------------------------------------------------------------------
1 | delegated-20060809.xrds - results from proxy.xri.net, determined by
2 | Drummond and Kevin to be incorrect.
3 | delegated-20060809-r1.xrds - Drummond's 1st correction
4 | delegated-20060809-r2.xrds - Drummond's 2nd correction
5 |
6 | spoofs: keturn's (=!E4)'s attempts to log in with Drummond's i-number (=!D2)
7 | spoof1.xrds
8 | spoof2.xrds
9 | spoof3.xrds - attempt to steal @!C0!D2 by having "at least one" CanonicalID
10 | match the $res service ProviderID.
11 |
12 | ref.xrds - resolving @ootao*test.ref, which refers to a neustar XRI.
13 |
--------------------------------------------------------------------------------
/admin/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | %(package_name)s
4 | %(package_summary)s
5 |
6 | %(package_description)s
7 |
8 | %(license_name)s
9 | %(maintainers)s
10 |
11 | %(version)s
12 | %(date)s
13 | %(release_stability)s
14 |
15 |
18 |
19 | %(contents_version_1)s
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_1_and_2_xrds.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://specs.openid.net/auth/2.0/signon
10 | http://openid.net/signon/1.1
11 | http://www.myopenid.com/server
12 | http://smoker.myopenid.com/
13 | http://smoker.myopenid.com/
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "openid/php-openid",
3 | "description": "OpenID library for PHP5",
4 | "keywords": ["openid", "authentication", "yadis", "auth"],
5 | "license": "Apache-2.0",
6 | "homepage": "http://github.com/openid/php-openid",
7 | "authors": [
8 | {
9 | "name": "JanRain Inc.",
10 | "homepage": "http://www.openidenabled.com"
11 | }
12 | ],
13 | "require": {
14 | "php": ">=5.6",
15 | "ext-gmp": "*",
16 | "ext-curl": "*",
17 | "ext-dom": "*"
18 | },
19 | "autoload": {
20 | "classmap": ["Auth"]
21 | },
22 | "include-path": ["."]
23 | }
24 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/pip.xrds:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.1
10 | http://openid.net/sreg/1.0
11 | https://pip.verisignlabs.com/server
12 |
13 |
14 |
15 | http://openid.net/signon/1.0
16 | http://openid.net/sreg/1.0
17 | https://pip.verisignlabs.com/server
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_1_and_2_xrds_bad_delegate.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://specs.openid.net/auth/2.0/signon
10 | http://openid.net/signon/1.0
11 | http://openid.net/signon/1.1
12 | http://www.myopenid.com/server
13 | http://smoker.myopenid.com/
14 | http://localid.mismatch.invalid/
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/data/brian_priority.xrds:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://www.schtuff.com/?action=openid_server
11 | http://users.schtuff.com/brian
12 |
13 |
14 |
15 | http://openid.net/signon/1.0
16 | http://www.myopenid.com/server
17 | http://brian.myopenid.com/
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_openid_ssl.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 | http://openid.net/signon/1.0
10 | http://nossl.vroom.unittest/server
11 | http://smoker.myopenid.com/
12 |
13 |
14 | http://openid.net/signon/1.0
15 | https://ssl.vroom.unittest/server
16 | http://smoker.myopenid.com/
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/admin/adminutil.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Tests/Auth/OpenID/data/test_discover_yadis_2entries_idp.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 | =!1000
8 |
9 |
10 | http://specs.openid.net/auth/2.0/signon
11 | http://www.myopenid.com/server
12 | http://smoker.myopenid.com/
13 |
14 |
15 |
16 | http://specs.openid.net/auth/2.0/server
17 | http://www.livejournal.com/openid/server.bml
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/examples/server/lib/render/idpXrds.php:
--------------------------------------------------------------------------------
1 |
9 |
12 |
13 |
14 | %s
15 | %s
16 |
17 |
18 |
19 | ');
20 |
21 | function idpXrds_render()
22 | {
23 | $headers = ['Content-type: application/xrds+xml'];
24 |
25 | $body = sprintf(idp_xrds_pat,
26 | Auth_OpenID_TYPE_2_0_IDP,
27 | buildURL());
28 |
29 | return [$headers, $body];
30 | }
31 |
32 | ?>
--------------------------------------------------------------------------------
/Tests/Auth/Yadis/TestUtil.php:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 | This is the identity page for users of this server.
14 |
15 |