2016-04-18 08:35:09 +00:00
|
|
|
<?php
|
2021-12-03 03:01:39 +00:00
|
|
|
|
2016-04-18 08:35:09 +00:00
|
|
|
namespace Zotlabs\Module;
|
|
|
|
|
2019-09-10 04:03:33 +00:00
|
|
|
use App;
|
|
|
|
use Zotlabs\Web\Controller;
|
|
|
|
use Zotlabs\Module\Webfinger;
|
|
|
|
use Zotlabs\Module\Oauthinfo;
|
2016-04-18 08:35:09 +00:00
|
|
|
|
2021-12-02 23:02:31 +00:00
|
|
|
class Well_known extends Controller
|
|
|
|
{
|
2016-04-18 08:35:09 +00:00
|
|
|
|
2021-12-02 23:02:31 +00:00
|
|
|
public function init()
|
|
|
|
{
|
2018-05-22 02:25:03 +00:00
|
|
|
|
2021-12-02 23:02:31 +00:00
|
|
|
if (argc() > 1) {
|
|
|
|
$arr = ['server' => $_SERVER, 'request' => $_REQUEST];
|
|
|
|
call_hooks('well_known', $arr);
|
|
|
|
|
|
|
|
if (!check_siteallowed($_SERVER['REMOTE_ADDR'])) {
|
|
|
|
logger('well_known: site not allowed. ' . $_SERVER['REMOTE_ADDR']);
|
|
|
|
killme();
|
|
|
|
}
|
|
|
|
|
|
|
|
// from php.net re: REMOTE_HOST:
|
|
|
|
// Note: Your web server must be configured to create this variable.
|
|
|
|
// For example in Apache you'll need HostnameLookups On inside httpd.conf
|
|
|
|
// for it to exist. See also gethostbyaddr().
|
|
|
|
|
|
|
|
if (get_config('system', 'siteallowed_remote_host') && (!check_siteallowed($_SERVER['REMOTE_HOST']))) {
|
|
|
|
logger('well_known: site not allowed. ' . $_SERVER['REMOTE_HOST']);
|
|
|
|
killme();
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (argv(1)) {
|
|
|
|
case 'webfinger':
|
|
|
|
App::$argc -= 1;
|
|
|
|
array_shift(App::$argv);
|
|
|
|
App::$argv[0] = 'webfinger';
|
|
|
|
$module = new Webfinger();
|
|
|
|
$module->init();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'oauth-authorization-server':
|
|
|
|
case 'openid-configuration':
|
|
|
|
App::$argc -= 1;
|
|
|
|
array_shift(App::$argv);
|
|
|
|
App::$argv[0] = 'oauthinfo';
|
|
|
|
$module = new Oauthinfo();
|
|
|
|
$module->init();
|
|
|
|
break;
|
|
|
|
|
|
|
|
case 'dnt-policy.txt':
|
|
|
|
echo file_get_contents('doc/global/dnt-policy.txt');
|
|
|
|
killme();
|
|
|
|
|
|
|
|
default:
|
|
|
|
if (file_exists(App::$cmd)) {
|
|
|
|
echo file_get_contents(App::$cmd);
|
|
|
|
killme();
|
2021-12-03 03:01:39 +00:00
|
|
|
} elseif (file_exists(App::$cmd . '.php')) {
|
2021-12-02 23:02:31 +00:00
|
|
|
require_once(App::$cmd . '.php');
|
2021-12-03 03:01:39 +00:00
|
|
|
}
|
2021-12-02 23:02:31 +00:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
http_status_exit(404);
|
|
|
|
}
|
2016-04-18 08:35:09 +00:00
|
|
|
}
|