owa cleanup

This commit is contained in:
zotlabs 2017-09-09 13:34:57 -07:00
parent 84c86f01c8
commit e2e7bee3cc
3 changed files with 10 additions and 26 deletions

View File

@ -142,11 +142,8 @@ class Magic extends \Zotlabs\Web\Controller {
$headers['X-Open-Web-Auth'] = random_string(); $headers['X-Open-Web-Auth'] = random_string();
$headers = \Zotlabs\Web\HTTPSig::create_sig('',$headers,$channel['channel_prvkey'], $headers = \Zotlabs\Web\HTTPSig::create_sig('',$headers,$channel['channel_prvkey'],
'acct:' . $channel['channel_address'] . '@' . \App::get_hostname(),false,true,'sha512'); 'acct:' . $channel['channel_address'] . '@' . \App::get_hostname(),false,true,'sha512');
$x = z_fetch_url($basepath . '/owa',false,$redirects,[ 'headers' => $headers ]); $x = z_fetch_url($basepath . '/owa',false,$redirects,[ 'headers' => $headers ]);
logger('owtfetch: ' . print_r($x,true));
if($x['success']) { if($x['success']) {
$j = json_decode($x['body'],true); $j = json_decode($x['body'],true);
if($j['success'] && $j['token']) { if($j['success'] && $j['token']) {
@ -161,16 +158,6 @@ class Magic extends \Zotlabs\Web\Controller {
$token = random_string(); $token = random_string();
// $token_sig = base64url_encode(rsa_sign($token,$channel['channel_prvkey']));
// $channel['token'] = $token;
// $channel['token_sig'] = $token_sig;
\Zotlabs\Zot\Verify::create('auth',$channel['channel_id'],$token,$x[0]['hubloc_url']); \Zotlabs\Zot\Verify::create('auth',$channel['channel_id'],$token,$x[0]['hubloc_url']);
$target_url = $x[0]['hubloc_callback'] . '/?f=&auth=' . urlencode(channel_reddress($channel)) $target_url = $x[0]['hubloc_callback'] . '/?f=&auth=' . urlencode(channel_reddress($channel))

View File

@ -15,8 +15,10 @@ namespace Zotlabs\Module;
class Owa extends \Zotlabs\Web\Controller { class Owa extends \Zotlabs\Web\Controller {
function init() { function init() {
foreach([ 'REDIRECT_REMOTE_USER', 'HTTP_AUTHORIZATION' ] as $head) {
$ret = [ 'success' => false ];
foreach([ 'REDIRECT_REMOTE_USER', 'HTTP_AUTHORIZATION' ] as $head) {
if(array_key_exists($head,$_SERVER) && substr(trim($_SERVER[$head]),0,9) === 'Signature') { if(array_key_exists($head,$_SERVER) && substr(trim($_SERVER[$head]),0,9) === 'Signature') {
if($head !== 'HTTP_AUTHORIZATION') { if($head !== 'HTTP_AUTHORIZATION') {
$_SERVER['HTTP_AUTHORIZATION'] = $_SERVER[$head]; $_SERVER['HTTP_AUTHORIZATION'] = $_SERVER[$head];
@ -35,23 +37,17 @@ class Owa extends \Zotlabs\Web\Controller {
if($r) { if($r) {
$hubloc = $r[0]; $hubloc = $r[0];
$verified = \Zotlabs\Web\HTTPSig::verify('',$hubloc['xchan_pubkey']); $verified = \Zotlabs\Web\HTTPSig::verify('',$hubloc['xchan_pubkey']);
if($verified && $verified['header_signed'] && $verified['header_valid']) { if($verified && $verified['header_signed'] && $verified['header_valid']) {
$ret['success'] = true;
$token = random_string(32); $token = random_string(32);
\Zotlabs\Zot\Verify::create('owt',0,$token,$r[0]['hubloc_addr']); \Zotlabs\Zot\Verify::create('owt',0,$token,$r[0]['hubloc_addr']);
$x = json_encode([ 'success' => true, 'token' => $token ]); $ret['token'] = $token;
header('Content-Type: application/x-zot+json');
echo $x;
killme();
} }
} }
} }
} }
} }
} }
$x = json_encode([ 'success' => false ]); json_return_and_die($ret,'application/x-zot+json');
header('Content-Type: application/x-zot+json');
echo $x;
killme();
} }
} }

View File

@ -296,12 +296,13 @@ function owt_init($token) {
$_SESSION['DNT'] = 1; $_SESSION['DNT'] = 1;
} }
$arr = array('xchan' => $hubloc, 'url' => \App::query_string, 'session' => $_SESSION); $arr = array('xchan' => $hubloc, 'url' => \App::$query_string, 'session' => $_SESSION);
call_hooks('magic_auth_success',$arr); call_hooks('magic_auth_success',$arr);
\App::set_observer($hubloc); \App::set_observer($hubloc);
require_once('include/security.php'); require_once('include/security.php');
\App::set_groups(init_groups_visitor($_SESSION['visitor_id'])); \App::set_groups(init_groups_visitor($_SESSION['visitor_id']));
info(sprintf( t('Welcome %s. Remote authentication successful.'),$hubloc['xchan_name'])); if(! get_config('system','hide_owa_greeting'))
info(sprintf( t('OpenWebAuth: %1$s welcomes %2$s'),\App::get_hostname(), $hubloc['xchan_name']));
logger('OpenWebAuth: auth success from ' . $hubloc['xchan_addr']); logger('OpenWebAuth: auth success from ' . $hubloc['xchan_addr']);