using IdentityServer8; using IdentityServer8.Models; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Yavsc.Settings; namespace Yavsc; public static class Config { public static string? Authority { get; set; } public static IConfigurationRoot? GoogleWebClientConfiguration { get; set; } public static GoogleServiceAccount? GServiceAccount { get; set; } public static SiteSettings SiteSetup { get; set; } = new SiteSettings(); public static FileServerOptions? UserFilesOptions { get; set; } public static FileServerOptions? GitOptions { get; set; } public static string AvatarsDirName { set; get; } = "Avatars"; public static string GitDirName { set; get; } = "Git"; public static GoogleAuthSettings? GoogleSettings { get; set; } public static SmtpSettings? SmtpSetup { get; set; } public static string? Temp { get; set; } public static FileServerOptions? AvatarsOptions { get; set; } public static string UserBillsDirName { set; get; } = "Bills"; public static string UserFilesDirName { set; get; } = "Files"; /// /// Lists Available user profile classes, /// populated at startup, using reflexion. /// public static List ProfileTypes = new List(); public static IEnumerable IdentityResources => new IdentityResource[] { new IdentityResources.OpenId(), new IdentityResources.Profile(), new IdentityResources.Email() }; public static IEnumerable ApiScopes => new ApiScope[] { new ApiScope("scope1",new string[] {"scope1"}), new ApiScope("scope2",new string[] {"scope2"}), }; public static IEnumerable Clients => new Client[] { // m2m client credentials flow client new Client { ClientId = "m2m.client", ClientName = "Client Credentials Client", AllowedGrantTypes = GrantTypes.ClientCredentials, ClientSecrets = { new Secret("511536EF-F270-4058-80CA-1C89C192F69A".Sha256()) }, AllowedScopes = { "scope1" } }, // interactive client using code flow + pkce new Client { ClientId = "mvc", ClientSecrets = { new Secret("49C1A7E1-0C79-4A89-A3D6-A37998FB86B0".Sha256()) }, AllowedGrantTypes = GrantTypes.Code, AlwaysIncludeUserClaimsInIdToken = true, RedirectUris = { "https://localhost:5003/signin-oidc", "http://localhost:5002/signin-oidc" }, PostLogoutRedirectUris = { "https://localhost:5003/signout-callback-oidc", "http://localhost:5002/signout-callback-oidc" }, AllowedScopes = { IdentityServerConstants.StandardScopes.OpenId, IdentityServerConstants.StandardScopes.Profile, IdentityServerConstants.StandardScopes.Email, IdentityServerConstants.StandardScopes.OfflineAccess, "scope2" } }, }; public static PayPalSettings? PayPalSettings { get; set; } }