Exemplo n.º 1
0
    $userid = $attributes[$useridattr][0];
} else {
    $as = SimpleSAML_Auth_Source::getById($authsource);
    $as->initLogin(\SimpleSAML\Utils\HTTP::getSelfURL());
}
function requireOwnership($entry, $userid)
{
    if (!isset($entry['owner'])) {
        throw new Exception('OAuth Consumer has no owner. Which means no one is granted access, not even you.');
    }
    if ($entry['owner'] !== $userid) {
        throw new Exception('OAuth Consumer has an owner that is not equal to your userid, hence you are not granted access.');
    }
}
if (isset($_REQUEST['delete'])) {
    $entryc = $store->get('consumers', $_REQUEST['delete'], '');
    $entry = $entryc['value'];
    requireOwnership($entry, $userid);
    $store->remove('consumers', $entry['key'], '');
}
$list = $store->getList('consumers');
$slist = array('mine' => array(), 'others' => array());
if (is_array($list)) {
    foreach ($list as $listitem) {
        if (array_key_exists('owner', $listitem['value'])) {
            if ($listitem['value']['owner'] === $userid) {
                $slist['mine'][] = $listitem;
                continue;
            }
        }
        $slist['others'][] = $listitem;
Exemplo n.º 2
0
    }
    $userid = $attributes[$useridattr][0];
} else {
    SimpleSAML_Auth_Default::initLogin($authsource, SimpleSAML_Utilities::selfURL());
}
function requireOwnership($entry, $userid)
{
    if (!isset($entry['owner'])) {
        throw new Exception('OAuth Consumer has no owner. Which means no one is granted access, not even you.');
    }
    if ($entry['owner'] !== $userid) {
        throw new Exception('OAuth Consumer has an owner that is not equal to your userid, hence you are not granted access.');
    }
}
if (array_key_exists('editkey', $_REQUEST)) {
    $entryc = $store->get('consumers', $_REQUEST['editkey'], '');
    $entry = $entryc['value'];
    requireOwnership($entry, $userid);
} else {
    $entry = array('owner' => $userid, 'key' => SimpleSAML_Utilities::generateID(), 'secret' => SimpleSAML_Utilities::generateID());
}
$editor = new sspmod_oauth_Registry();
if (isset($_POST['submit'])) {
    $editor->checkForm($_POST);
    $entry = $editor->formToMeta($_POST, array(), array('owner' => $userid));
    requireOwnership($entry, $userid);
    #	echo('<pre>Created: '); print_r($entry); exit;
    $store->set('consumers', $entry['key'], '', $entry);
    $template = new SimpleSAML_XHTML_Template($config, 'oauth:registry.saved.php');
    $template->data['entry'] = $entry;
    $template->show();
Exemplo n.º 3
0
function push($file, $fileWithoutExt, $aid, $type)
{
    if (!file_exists($file)) {
        throw new Exception('Could not find file: ' . $file);
    }
    $fileContent = file_get_contents($file);
    global $baseDir;
    require_once $baseDir . '/modules/oauth/libextinc/OAuth.php';
    $translationconfig = SimpleSAML_Configuration::getConfig('translation.php');
    $baseurl = $translationconfig->getString('baseurl');
    $key = $translationconfig->getString('key');
    $secret = $translationconfig->getString('secret');
    echo 'Using OAuth to authenticate you to the translation portal' . "\n";
    $consumer = new sspmod_oauth_Consumer($key, $secret);
    $storage = new sspmod_core_Storage_SQLPermanentStorage('oauth_clientcache');
    $cachedAccessToken = $storage->get('accesstoken', 'translation', '');
    $accessToken = NULL;
    if (empty($cachedAccessToken)) {
        // Get the request token
        $requestToken = $consumer->getRequestToken($baseurl . '/module.php/oauth/requestToken.php');
        echo "Got a request token from the OAuth service provider [" . $requestToken->key . "] with the secret [" . $requestToken->secret . "]\n";
        // Authorize the request token
        $url = $consumer->getAuthorizeRequest($baseurl . '/module.php/oauth/authorize.php', $requestToken, FALSE);
        echo 'Go to this URL to authenticate/authorize the request: ' . $url . "\n";
        system('open ' . $url);
        ssp_readline('Click enter when you have completed the authorization step using your web browser...');
        // Replace the request token with an access token
        $accessToken = $consumer->getAccessToken($baseurl . '/module.php/oauth/accessToken.php', $requestToken);
        echo "Got an access token from the OAuth service provider [" . $accessToken->key . "] with the secret [" . $accessToken->secret . "]\n";
        $storage->set('accesstoken', 'translation', '', $accessToken);
    } else {
        $accessToken = $cachedAccessToken['value'];
        echo 'Successfully read OAuth Access Token from cache [' . $accessToken->key . ']' . "\n";
    }
    $pushURL = $baseurl . '/module.php/translationportal/push.php';
    $request = array('data' => base64_encode($fileContent), 'file' => $fileWithoutExt, 'aid' => $aid, 'type' => $type);
    $result = $consumer->postRequest($pushURL, $accessToken, $request);
    echo $result;
}