82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| namespace Zotlabs\Module;
 | |
| 
 | |
| 
 | |
| class Well_known extends \Zotlabs\Web\Controller {
 | |
| 
 | |
| 	function init(){
 | |
| 	
 | |
| 		if(argc() > 1) {
 | |
| 	
 | |
| 			$arr = array('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 'zot-info':
 | |
| 					\App::$argc -= 1;
 | |
| 					array_shift(\App::$argv);
 | |
| 					\App::$argv[0] = 'zfinger';
 | |
| 					$module = new \Zotlabs\Module\Zfinger();
 | |
| 					$module->init();
 | |
| 					break;
 | |
| 	
 | |
| 				case 'webfinger':
 | |
| 					\App::$argc -= 1;
 | |
| 					array_shift(\App::$argv);
 | |
| 					\App::$argv[0] = 'wfinger';
 | |
| 					$module = new \Zotlabs\Module\Wfinger();
 | |
| 					$module->init();
 | |
| 					break;
 | |
| 	
 | |
| 				case 'host-meta':
 | |
| 					\App::$argc -= 1;
 | |
| 					array_shift(\App::$argv);
 | |
| 					\App::$argv[0] = 'hostxrd';
 | |
| 					$module = new \Zotlabs\Module\Hostxrd();
 | |
| 					$module->init();
 | |
| 					break;
 | |
| 
 | |
| 				case 'oauth-authorization-server':
 | |
| 				case 'openid-configuration':
 | |
| 					\App::$argc -= 1;
 | |
| 					array_shift(\App::$argv);
 | |
| 					\App::$argv[0] = 'oauthinfo';
 | |
| 					$module = new \Zotlabs\Module\Oauthinfo();
 | |
| 					$module->init();
 | |
| 					break;
 | |
| 
 | |
| 				case 'dnt-policy.txt':
 | |
| 					echo file_get_contents('doc/dnt-policy.txt');
 | |
| 					killme();
 | |
| 
 | |
| 				default:
 | |
| 					if(file_exists(\App::$cmd)) {
 | |
| 						echo file_get_contents(\App::$cmd); 
 | |
| 						killme();
 | |
| 					}
 | |
| 					elseif(file_exists(\App::$cmd . '.php'))
 | |
| 						require_once(\App::$cmd . '.php');
 | |
| 					break;
 | |
| 	
 | |
| 			}
 | |
| 		}
 | |
| 	
 | |
| 		http_status_exit(404);
 | |
| 	}
 | |
| }
 |