/// <summary> /// 运营后台获取应用详情 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public async Task <AppDetailResponse> AppDetail(AppDetailRequest request) { return(await new AppDetailExecutor().Client(this).Execute <AppDetailResponse, AppDetailResult, AppDetailRequest>(request).ConfigureAwait(false)); }
public override async Task <AppDetailReply> GetAppDetails(AppDetailRequest request, ServerCallContext context) { AuthApp app = await _authDbContext.AuthApp .Include(a => a.LdapAppSettings) .Include(a => a.UserGroups) .Include(a => a.LdapAppSettings) .Include(a => a.OidcAppSettings) .Include(a => a.ProxyAppSettings) .Include(a => a.ScimAppSettings) .SingleAsync(f => f.Id == new Guid(request.Id)); AppDetailReply reply = new AppDetailReply { Id = app.Id.ToString(), Name = app.Name, Description = app.Description, Url = app.Url, }; switch (app.DirectoryMethod) { case AuthApp.DirectoryMethodEnum.NONE: break; case AuthApp.DirectoryMethodEnum.LDAP: reply.LdapDirectorySetting = new AppDetailReply.Types.LdapDirectorySetting { BaseDn = app.LdapAppSettings.BaseDn, Password = _ldapSettingsDataProtector.Unprotect(app.LdapAppSettings.BindUserPassword), Username = app.LdapAppSettings.BindUser, }; break; case AuthApp.DirectoryMethodEnum.SCIM: reply.ScimDirectorySetting = new AppDetailReply.Types.ScimDirectorySetting { Credentials = app.ScimAppSettings.Credentials, Endpoint = app.ScimAppSettings.Endpoint, }; break; } switch (app.HostingType) { case AuthApp.HostingTypeEnum.WEB_GENERIC: reply.HostingType = HostingType.WebGeneric; break; case AuthApp.HostingTypeEnum.WEB_GATEKEEPER_PROXY: reply.HostingType = HostingType.WebGatekeeperProxy; reply.ProxyAuthSetting = new AppDetailReply.Types.ProxyAuthSetting { InternalHostname = app.ProxyAppSettings.InternalHostname, PublicHostname = app.ProxyAppSettings.PublicHostname, }; if (app.ProxyAppSettings.EndpointsWithoutAuth != null) { reply.ProxyAuthSetting.PublicEndpoints.AddRange(app.ProxyAppSettings.EndpointsWithoutAuth); } break; case AuthApp.HostingTypeEnum.NON_WEB: reply.HostingType = HostingType.NonWeb; break; } switch (app.AuthMethod) { case AuthApp.AuthMethodEnum.LDAP: reply.LdapAuthSetting = new AppDetailReply.Types.LdapAuthSetting { BaseDn = app.LdapAppSettings.BaseDn, }; break; case AuthApp.AuthMethodEnum.OIDC: reply.OidcAuthSetting = new AppDetailReply.Types.OidcAuthSetting { ClientId = app.OidcAppSettings.ClientId, ClientSecret = app.OidcAppSettings.ClientSecret, RedirectUri = app.OidcAppSettings.RedirectUrl, }; break; } foreach (UserGroup group in app.UserGroups) { GrantedAppGroup appGroup = new GrantedAppGroup { Id = group.Id.ToString(), Name = group.Name, }; reply.Groups.Add(appGroup); } return(reply); }
/// <summary> /// 运营后台获取应用详情 /// </summary> /// <param name="request">请求参数信息</param> /// <returns>请求结果信息</returns> public AppDetailResponse AppDetail(AppDetailRequest request) { return(new AppDetailExecutor().Client(this).Execute <AppDetailResponse, AppDetailResult, AppDetailRequest>(request)); }