public function oauthReturn(GithubService $api, VariableMap $variableMap, Session $session, SessionBasedOauth $sessionBasedOauth) { $code = $variableMap->getVariable('code', false); $state = $variableMap->getVariable('state', false); $oauthUnguessable = $session->getSessionVariable('oauthUnguessable', null); if (!$code || !$state || !$oauthUnguessable) { $errorContext = OauthErrorContext::create("Missing data: '{$code}' '{$state}' '{$oauthUnguessable}'"); return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]); } if ($state !== $oauthUnguessable) { //Miss-match on what we're tring to validated. $errorContext = OauthErrorContext::create("Mismatch on secret'"); return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]); } try { $oauthOperation = $api->getOauthAuthorization(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, $code, $oauthUnguessable); $oauthOperation->setRedirect_uri("http://" . SERVER_HOSTNAME . "/oauthReturn"); $accessResponse = $oauthOperation->execute(); $session->setSessionVariable(GITHUB_ACCESS_RESPONSE_KEY, $accessResponse); $authToken = new Oauth2Token($accessResponse->accessToken); $sessionBasedOauth->save($authToken); $oauthSuccessContext = OauthSuccessContext::create($accessResponse); return JigExecutable::createWithSharedObjects("pages/oauth/success", [$oauthSuccessContext]); } catch (GithubArtaxServiceException $fae) { $errorContext = OauthErrorContext::create($fae->getMessage()); return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]); } }
public static function createAuthBox(Session $session) { $data = $session->getData(); if (array_key_exists('username', $data)) { return LogoutBox::createFromUsername($data['username']); } return new LoginBox(); }
public function display() { $sessionData = $this->session->getData(); if (isset($sessionData['uris']) && is_array($sessionData['uris'])) { echo "<ul>"; foreach ($sessionData['uris'] as $uri) { echo "<li>" . $uri . "</li>"; } echo "</ul>"; } else { echo "No previous uris"; } }
public function notepad(TierJig $tierJig, VariableMap $variableMap, Session $session) { $data = $session->getData(); $value = $variableMap->getVariable('data', false); if ($value !== false && strlen(trim($value)) != 0) { $data[] = $value; $session->setData($data); } $value = $variableMap->getVariable('submit', false); if ($value !== false && strcmp($value, "Clear") === 0) { $session->setData([]); } $session->save(); return $tierJig->createJigExecutable('pages/notepad'); }
public static function initialExecutable(Session $session) { $data = $session->getSessionVariable(GITHUB_ACCESS_RESPONSE_KEY, null); $token = new NullToken(); $oauthContext = new OauthContext(false, $token); if (strlen($data) > 0) { if (strpos($data, 'token ') === 0) { $data = substr($data, strlen('token ')); } $token = new Oauth2Token($data); $oauthContext = new OauthContext(true, $token); } $aliases = []; $aliases['GithubService\\AuthToken'] = get_class($token); return new InjectionParams([$oauthContext, $token], $aliases); }
/** * @param Session $session * @param HeadersSet $headerSet * @return int */ public static function addSessionHeader(Session $session, HeadersSet $headerSet) { $headers = $session->getHeaders(\ASM\SessionManager::CACHE_PRIVATE); foreach ($headers as $key => $value) { $headerSet->addHeader($key, $value); } return TierApp::PROCESS_CONTINUE; }