1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
--TEST--
|
|
|
|
Test External Authentication errors with oci_connect
|
|
|
|
--SKIPIF--
|
|
|
|
<?php
|
|
|
|
if (!extension_loaded('oci8')) die ("skip no oci8 extension");
|
|
|
|
if (substr(PHP_OS, 0, 3) == 'WIN') die("skip feature not available on Windows platforms");
|
|
|
|
?>
|
|
|
|
--INI--
|
|
|
|
oci8.privileged_connect=1
|
|
|
|
--FILE--
|
|
|
|
<?php
|
|
|
|
|
|
|
|
// Run Test
|
|
|
|
|
|
|
|
echo "Test 1\n";
|
|
|
|
|
|
|
|
$c = oci_connect('/', 'notemtpy', 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 2\n";
|
|
|
|
|
|
|
|
$c = oci_connect('notemtpy', 'notemtpy', 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 3\n";
|
|
|
|
|
|
|
|
$c = oci_connect('notemtpy', '', 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 4\n";
|
|
|
|
|
|
|
|
$c = oci_connect('a', 'b', 'c', null, OCI_SYSDBA+OCI_SYSOPER);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 5\n";
|
|
|
|
|
|
|
|
$c = oci_connect('a', 'b', 'c', null, OCI_SYSDBA+OCI_SYSOPER+OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 6\n";
|
|
|
|
|
|
|
|
$c = oci_connect('', '', 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 7\n";
|
|
|
|
|
|
|
|
$c = oci_connect('/', '', 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 8\n";
|
|
|
|
|
|
|
|
$c = oci_connect('/', null, 'anything', null, OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 9\n";
|
|
|
|
|
|
|
|
$c = oci_connect('/', '', 'c', null, OCI_SYSDBA+OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
echo "Test 10\n";
|
|
|
|
|
|
|
|
$c = oci_connect('/', '', 'c', null, OCI_SYSOPER+OCI_CRED_EXT);
|
|
|
|
if (!$c) {
|
|
|
|
$m = oci_error();
|
|
|
|
var_dump($m);
|
|
|
|
}
|
|
|
|
var_dump($c);
|
|
|
|
|
|
|
|
|
|
|
|
?>
|
|
|
|
===DONE===
|
|
|
|
<?php exit(0); ?>
|
|
|
|
--EXPECTF--
|
|
|
|
Test 1
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 2
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 3
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 4
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_SYSDBA and OCI_SYSOPER cannot be used together in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 5
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_SYSDBA and OCI_SYSOPER cannot be used together in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 6
|
|
|
|
|
|
|
|
Warning: oci_connect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
|
|
|
|
bool(false)
|
|
|
|
bool(false)
|
|
|
|
Test 7
|
|
|
|
|
2009-10-05 22:51:21 +00:00
|
|
|
Warning: oci_connect(): ORA-12154: %s in %s on line %d
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
array(4) {
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"code"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(12154)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"message"]=>
|
2009-10-05 22:51:21 +00:00
|
|
|
%unicode|string%(%d) "ORA-12154: %s"
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"offset"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(0)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"sqltext"]=>
|
|
|
|
%unicode|string%(0) ""
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
}
|
|
|
|
bool(false)
|
|
|
|
Test 8
|
|
|
|
|
2009-10-05 22:51:21 +00:00
|
|
|
Warning: oci_connect(): ORA-12154: %s in %s on line %d
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
array(4) {
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"code"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(12154)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"message"]=>
|
2009-10-05 22:51:21 +00:00
|
|
|
%unicode|string%(%d) "ORA-12154: %s"
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"offset"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(0)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"sqltext"]=>
|
|
|
|
%unicode|string%(0) ""
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
}
|
|
|
|
bool(false)
|
|
|
|
Test 9
|
|
|
|
|
2009-07-19 16:04:57 +00:00
|
|
|
Warning: oci_connect(): ORA-%d: TNS:%s in %s on line %d
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
array(4) {
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"code"]=>
|
|
|
|
int(%d)
|
|
|
|
[%u|b%"message"]=>
|
|
|
|
%unicode|string%(%d) "ORA-%d: %s"
|
|
|
|
[%u|b%"offset"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(0)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"sqltext"]=>
|
|
|
|
%unicode|string%(0) ""
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
}
|
|
|
|
bool(false)
|
|
|
|
Test 10
|
|
|
|
|
2009-07-19 16:04:57 +00:00
|
|
|
Warning: oci_connect(): ORA-%d: TNS:%s in %s on line %d
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
array(4) {
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"code"]=>
|
|
|
|
int(%d)
|
|
|
|
[%u|b%"message"]=>
|
|
|
|
%unicode|string%(%d) "ORA-%d: %s"
|
|
|
|
[%u|b%"offset"]=>
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
int(0)
|
2009-07-19 16:04:57 +00:00
|
|
|
[%u|b%"sqltext"]=>
|
|
|
|
%unicode|string%(0) ""
|
1. Merged ARG_INFO patch (Felipe)
2. Allow an empty username/password to be passed so Oracle can do
non-password based authentication, i.e. "External Authentication".
http://news.php.net/php.internals/37545
[DOC]
A new OCI_CRED_EXT flag can be passed as the "session_mode" parameter
to oci_connect(), oci_new_connect() and oci_pconnect().
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT);
This tells Oracle to do external or OS authentication, if configured
in the database.
OCI_CRED_EXT can only be used with username of "/" and a empty
password. Oci8.privileged_connection may be On or Off.
The new flag may be combined with the existing OCI_SYSOPER or
OCI_SYSDBA modes (note: oci8.privileged_connection needs to be On for
OCI_SYSDBA and OCI_SYSOPER mode), e.g.:
$c1 = oci_connect("/", "", $db, null, OCI_CRED_EXT+OCI_SYSOPER);
2008-07-16 22:14:03 +00:00
|
|
|
}
|
|
|
|
bool(false)
|
|
|
|
===DONE===
|