コード例 #1
0
 private void Init(HttpContext context)
 {
     _options            = _options ?? context.RequestServices.GetRequiredService <IdentityServerOptions>();
     _clock              = _clock ?? context.RequestServices.GetRequiredService <ISystemClock>();
     _urls               = _urls ?? context.RequestServices.GetRequiredService <IServerUrls>();
     _logoutMessageStore = _logoutMessageStore ?? context.RequestServices.GetRequiredService <IMessageStore <LogoutMessage> >();
 }
コード例 #2
0
 private void Init(HttpContext context)
 {
     _options ??= context.RequestServices.GetRequiredService <IdentityServerOptions>();
     _userSession ??= context.RequestServices.GetRequiredService <IUserSession>();
     _errorMessageStore ??= context.RequestServices.GetRequiredService <IMessageStore <ErrorMessage> >();
     _urls = _urls ?? context.RequestServices.GetRequiredService <IServerUrls>();
     _clock ??= context.RequestServices.GetRequiredService <ISystemClock>();
 }
コード例 #3
0
    /// <summary>
    /// Returns the origin in unicode, and not in punycode (if we have a unicode hostname)
    /// </summary>
    public static string GetUnicodeOrigin(this IServerUrls urls)
    {
        var split  = urls.Origin.Split(new[] { "://" }, StringSplitOptions.RemoveEmptyEntries);
        var scheme = split.First();
        var host   = HostString.FromUriComponent(split.Last()).Value;

        return(scheme + "://" + host);
    }
コード例 #4
0
 public SecureService(
     IConfiguration Configuration,
     IServerUrls ServerUrls,
     IServiceAgent ServiceAgent)
     : base(Configuration, ServiceAgent)
 {
     serverUrls = ServerUrls;
 }
コード例 #5
0
 internal LoginPageResult(
     ValidatedAuthorizeRequest request,
     IdentityServerOptions options,
     IServerUrls urls,
     IAuthorizationParametersMessageStore authorizationParametersMessageStore = null)
     : this(request)
 {
     _options = options;
     _urls    = urls;
     _authorizationParametersMessageStore = authorizationParametersMessageStore;
 }
コード例 #6
0
 /// <summary>
 /// Returns an absolute URL for the URL or path.
 /// </summary>
 public static string GetAbsoluteUrl(this IServerUrls urls, string urlOrPath)
 {
     if (urlOrPath.IsLocalUrl())
     {
         if (urlOrPath.StartsWith("~/"))
         {
             urlOrPath = urlOrPath.Substring(1);
         }
         urlOrPath = urls.BaseUrl + urlOrPath.EnsureLeadingSlash();
     }
     return(urlOrPath);
 }
コード例 #7
0
 internal CustomRedirectResult(
     ValidatedAuthorizeRequest request,
     string url,
     IdentityServerOptions options,
     IServerUrls urls,
     IAuthorizationParametersMessageStore authorizationParametersMessageStore = null)
     : this(request, url)
 {
     _options = options;
     _urls    = urls;
     _authorizationParametersMessageStore = authorizationParametersMessageStore;
 }
コード例 #8
0
 internal EndSessionResult(
     EndSessionValidationResult result,
     IdentityServerOptions options,
     ISystemClock clock,
     IServerUrls urls,
     IMessageStore <LogoutMessage> logoutMessageStore)
     : this(result)
 {
     _options            = options;
     _clock              = clock;
     _urls               = urls;
     _logoutMessageStore = logoutMessageStore;
 }
コード例 #9
0
 /// <summary>
 /// Instantiates an instance of private_key_jwt secret validator
 /// </summary>
 public PrivateKeyJwtSecretValidator(
     IIssuerNameService issuerNameService,
     IReplayCache replayCache,
     IServerUrls urls,
     IdentityServerOptions options,
     ILogger <PrivateKeyJwtSecretValidator> logger)
 {
     _issuerNameService = issuerNameService;
     _replayCache       = replayCache;
     _urls    = urls;
     _options = options;
     _logger  = logger;
 }
コード例 #10
0
 public MessageCookie(
     ILogger <MessageCookie <TModel> > logger,
     IdentityServerOptions options,
     IHttpContextAccessor context,
     IServerUrls urls,
     IDataProtectionProvider provider)
 {
     _logger    = logger;
     _options   = options;
     _context   = context;
     _urls      = urls;
     _protector = provider.CreateProtector(MessageType);
 }
コード例 #11
0
 public DiscoveryEndpoint(
     IdentityServerOptions options,
     IIssuerNameService issuerNameService,
     IDiscoveryResponseGenerator responseGenerator,
     IServerUrls urls,
     ILogger <DiscoveryEndpoint> logger)
 {
     _logger            = logger;
     _options           = options;
     _issuerNameService = issuerNameService;
     _urls = urls;
     _responseGenerator = responseGenerator;
 }
コード例 #12
0
    /// <summary>
    /// Returns the URL into the server based on the relative path. The path parameter can start with "~/" or "/".
    /// </summary>
    public static string GetIdentityServerRelativeUrl(this IServerUrls urls, string path)
    {
        if (!path.IsLocalUrl())
        {
            return(null);
        }

        if (path.StartsWith("~/"))
        {
            path = path.Substring(1);
        }
        path = urls.BaseUrl + path.EnsureLeadingSlash();
        return(path);
    }
コード例 #13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultUserSession"/> class.
 /// </summary>
 /// <param name="httpContextAccessor">The HTTP context accessor.</param>
 /// <param name="handlers">The handlers.</param>
 /// <param name="options">The options.</param>
 /// <param name="clock">The clock.</param>
 /// <param name="urls"></param>
 /// <param name="logger">The logger.</param>
 public DefaultUserSession(
     IHttpContextAccessor httpContextAccessor,
     IAuthenticationHandlerProvider handlers,
     IdentityServerOptions options,
     ISystemClock clock,
     IServerUrls urls,
     ILogger <IUserSession> logger)
 {
     HttpContextAccessor = httpContextAccessor;
     Handlers            = handlers;
     Options             = options;
     Clock  = clock;
     Urls   = urls;
     Logger = logger;
 }
コード例 #14
0
 public DeviceAuthorizationEndpoint(
     IClientSecretValidator clientValidator,
     IDeviceAuthorizationRequestValidator requestValidator,
     IDeviceAuthorizationResponseGenerator responseGenerator,
     IEventService events,
     IServerUrls urls,
     ILogger <DeviceAuthorizationEndpoint> logger)
 {
     _clientValidator   = clientValidator;
     _requestValidator  = requestValidator;
     _responseGenerator = responseGenerator;
     _events            = events;
     _urls   = urls;
     _logger = logger;
 }
コード例 #15
0
 internal AuthorizeResult(
     AuthorizeResponse response,
     IdentityServerOptions options,
     IUserSession userSession,
     IMessageStore <ErrorMessage> errorMessageStore,
     IServerUrls urls,
     ISystemClock clock)
     : this(response)
 {
     _options           = options;
     _userSession       = userSession;
     _errorMessageStore = errorMessageStore;
     _urls  = urls;
     _clock = clock;
 }
コード例 #16
0
 public OidcReturnUrlParser(
     IdentityServerOptions options,
     IAuthorizeRequestValidator validator,
     IUserSession userSession,
     IServerUrls urls,
     ILogger <OidcReturnUrlParser> logger,
     IAuthorizationParametersMessageStore authorizationParametersMessageStore = null)
 {
     _options     = options;
     _validator   = validator;
     _userSession = userSession;
     _urls        = urls;
     _logger      = logger;
     _authorizationParametersMessageStore = authorizationParametersMessageStore;
 }
コード例 #17
0
    public MockHttpContextAccessor(
        IdentityServerOptions options = null,
        IUserSession userSession      = null,
        IMessageStore <LogoutNotificationContext> endSessionStore = null,
        IServerUrls urls = null)
    {
        options = options ?? TestIdentityServerOptions.Create();

        var services = new ServiceCollection();

        services.AddSingleton(options);

        services.AddSingleton <IAuthenticationSchemeProvider>(Schemes);
        services.AddSingleton <IAuthenticationService>(AuthenticationService);

        services.AddAuthentication(auth =>
        {
            auth.DefaultAuthenticateScheme = Schemes.Default;
        });

        if (userSession == null)
        {
            services.AddScoped <IUserSession, DefaultUserSession>();
        }
        else
        {
            services.AddSingleton(userSession);
        }

        if (endSessionStore == null)
        {
            services.AddTransient <IMessageStore <LogoutNotificationContext>, ProtectedDataMessageStore <LogoutNotificationContext> >();
        }
        else
        {
            services.AddSingleton(endSessionStore);
        }

        if (urls != null)
        {
            services.AddSingleton <IServerUrls>(urls);
        }

        _context.RequestServices = services.BuildServiceProvider();
    }
コード例 #18
0
        public void Configure(IApplicationBuilder app, IServerUrls serverUrls)
        {
            if (!string.IsNullOrEmpty(Configuration["Host"]))
            {
                app.Use(async(_, next) =>
                {
                    serverUrls.Origin = Configuration["Host"];
                    await next();
                });
            }

            if (Environment.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();

            app.UseCors(builder =>
            {
                var allowOrigins = GetAllowOrigins();
                builder          = allowOrigins.Any()
                    ? builder.WithOrigins(allowOrigins)
                    : builder.AllowAnyOrigin();

                builder
                .AllowAnyHeader()
                .AllowAnyMethod();
            });

            app.UseRouting();
            app.UseIdentityServer();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapDefaultControllerRoute();
            });
        }
コード例 #19
0
 /// <summary>
 /// ctor
 /// </summary>
 /// <param name="options"></param>
 /// <param name="urls"></param>
 /// <param name="httpContextAccessor">The HTTP context accessor</param>
 public DefaultIssuerNameService(IdentityServerOptions options, IServerUrls urls, IHttpContextAccessor httpContextAccessor)
 {
     _options             = options;
     _urls                = urls;
     _httpContextAccessor = httpContextAccessor;
 }
コード例 #20
0
 public ServiceAgent(HttpClient Client, IServerUrls ServerUrls)
 {
     client     = Client;
     serverUrls = ServerUrls;
 }
コード例 #21
0
 private void Init(HttpContext context)
 {
     _options = _options ?? context.RequestServices.GetRequiredService <IdentityServerOptions>();
     _urls    = _urls ?? context.RequestServices.GetRequiredService <IServerUrls>();
     _authorizationParametersMessageStore = _authorizationParametersMessageStore ?? context.RequestServices.GetService <IAuthorizationParametersMessageStore>();
 }