コード例 #1
0
ファイル: OktaClient.cs プロジェクト: yhq1119/okta-sdk-dotnet
        /// <summary>
        /// Initializes a new instance of the <see cref="OktaClient"/> class.
        /// </summary>
        /// <param name="apiClientConfiguration">
        /// The client configuration. If <c>null</c>, the library will attempt to load
        /// configuration from an <c>okta.yaml</c> file or environment variables.
        /// </param>
        /// <param name="logger">The logging interface to use, if any.</param>
        /// <param name="serializer">The JSON serializer to use, if any. Using the <c>DefaultSerializer</c> is still strongly recommended since it has all the behavior this SDK needs to work properly.
        /// If a custom serializer is used, the developer is responsible to add the required logic for this SDK to continue working properly. See <see cref="DefaultSerializer"/> to check out what can be configured.
        /// </param>
        public OktaClient(OktaClientConfiguration apiClientConfiguration = null, ILogger logger = null, ISerializer serializer = null)
        {
            Configuration = GetConfigurationOrDefault(apiClientConfiguration);
            OktaClientConfigurationValidator.Validate(Configuration);

            logger     = logger ?? NullLogger.Instance;
            serializer = serializer ?? new DefaultSerializer();

            var defaultClient = DefaultHttpClient.Create(
                Configuration.ConnectionTimeout,
                Configuration.Proxy,
                logger);

            var resourceFactory = new ResourceFactory(this, logger);
            IOAuthTokenProvider oAuthTokenProvider = (Configuration.AuthorizationMode == AuthorizationMode.PrivateKey) ? new DefaultOAuthTokenProvider(Configuration, resourceFactory, logger: logger) : NullOAuthTokenProvider.Instance;
            var requestExecutor = new DefaultRequestExecutor(Configuration, defaultClient, logger, oAuthTokenProvider: oAuthTokenProvider);

            _dataStore = new DefaultDataStore(
                requestExecutor,
                serializer,
                resourceFactory,
                logger);

            PayloadHandler.TryRegister <PkixCertPayloadHandler>();
            PayloadHandler.TryRegister <PemFilePayloadHandler>();
            PayloadHandler.TryRegister <X509CaCertPayloadHandler>();
        }
コード例 #2
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="endpointAddress"></param>
        /// <param name="locale"></param>
        public ECommerceClient(String endpointAddress, String locale)
        {
            var serviceConfig = new SimpleServiceConfiguration();

            serviceConfig.ServiceEndpoint = new Uri(endpointAddress + "/" + locale);
            serviceConfig.Timeout         = 1000;

            IOAuthTokenProvider defaultTokenProvider = DiscoveryServiceProvider.DefaultTokenProvider;

            service = new ODataV4Service(new SDLECommerce(serviceConfig.ServiceEndpoint), serviceConfig, defaultTokenProvider);
        }
コード例 #3
0
 public ModelServiceClient(string modelServiceUri)
 {
     try
     {
         ModelServiceBaseUri = GetModelServiceUri(modelServiceUri);
     }
     catch (Exception e)
     {
         Logger.Error("Error initializing ModelServiceClient.", e);
     }
     _tokenProvider = DiscoveryServiceProvider.DefaultTokenProvider;
 }
コード例 #4
0
 public ModelServiceClient()
 {
     try
     {
         ModelServiceBaseUri = GetModelServiceUri(null); // force discovery service lookup
     }
     catch (Exception)
     {
         // something went wrong with discovery lookup of model-service. we could continue
         // trying each time the model-service is requested
         ModelServiceBaseUri = null;
         throw;
     }
     _tokenProvider = DiscoveryServiceProvider.DefaultTokenProvider;
 }
コード例 #5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DefaultRequestExecutor"/> class.
        /// </summary>
        /// <param name="configuration">The client configuration.</param>
        /// <param name="httpClient">The HTTP client to use, if any.</param>
        /// <param name="logger">The logging interface.</param>
        /// <param name="retryStrategy">The retry strategy interface.</param>
        /// <param name="oAuthTokenProvider">The OAuth token provider interface.</param>
        public DefaultRequestExecutor(OktaClientConfiguration configuration, HttpClient httpClient, ILogger logger, IRetryStrategy retryStrategy = null, IOAuthTokenProvider oAuthTokenProvider = null, IHttpRequestMessageProvider httpRequestMessageProvider = null)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            _oktaDomain                 = configuration.OktaDomain;
            _logger                     = logger;
            _httpClient                 = httpClient ?? throw new ArgumentNullException(nameof(httpClient));
            _retryStrategy              = retryStrategy ?? new DefaultRetryStrategy(configuration.MaxRetries.Value, configuration.RequestTimeout.Value);
            _oAuthTokenProvider         = oAuthTokenProvider ?? NullOAuthTokenProvider.Instance;
            _oktaConfiguration          = configuration;
            _httpRequestMessageProvider = httpRequestMessageProvider ?? HttpRequestMessageProvider.Default;
            ApplyDefaultClientSettings(_httpClient, _oktaDomain, configuration);
        }
コード例 #6
0
        public ModelServiceClient()
        {
            _modelServiceBaseUri = GetModelServiceUri();
            Log.Debug($"{ModelServiceName} found at URL '{_modelServiceBaseUri}'");
            _tokenProvider = DiscoveryServiceProvider.DefaultTokenProvider;
            int n;

            _serviceRetryCount = int.TryParse(
                WebConfigurationManager.AppSettings["model-builder-service-retries"], out n)
                ? n
                : 4; // default to 4 retry attempts

            _serviceTimeout = int.TryParse(
                WebConfigurationManager.AppSettings["model-builder-service-timeout"], out n)
                ? n
                : 100000; // default 100seconds
        }
コード例 #7
0
 public TestDefaultRequestExecutor(OktaClientConfiguration configuration, HttpClient httpClient, ILogger logger, IRetryStrategy retryStrategy = null, IOAuthTokenProvider oAuthTokenProvider = null)
 {
     VerbExecutionCounts = new Dictionary <HttpVerb, int>
     {
         { HttpVerb.Get, 0 },
         { HttpVerb.Post, 0 },
         { HttpVerb.Put, 0 },
         { HttpVerb.Delete, 0 },
     };
 }
コード例 #8
0
 public OAuth(IOAuthTokenProvider tokenProvider)
 {
     _tokenProvider = tokenProvider;
 }
コード例 #9
0
 public AuthService(IUsersService usersService, IOAuthTokenProvider oAuthTokenProvider)
 {
     _usersService       = usersService;
     _oAuthTokenProvider = oAuthTokenProvider;
 }
コード例 #10
0
 public ModelServiceClient(string modelServiceUri)
 {
     ModelServiceBaseUri = GetModelServiceUri(modelServiceUri);
     _tokenProvider      = DiscoveryServiceProvider.DefaultTokenProvider;
 }
コード例 #11
0
 public ModelServiceClient()
 {
     ModelServiceBaseUri = GetModelServiceUri(null); // force discovery service lookup
     _tokenProvider      = DiscoveryServiceProvider.DefaultTokenProvider;
 }