|
|
|
@ -65,7 +65,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.GrantType }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.GrantType}); |
|
|
|
|
|
|
|
b.Property(x => x.GrantType).HasMaxLength(ClientGrantTypeConsts.GrantTypeMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -76,15 +76,16 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.RedirectUri }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.RedirectUri}); |
|
|
|
|
|
|
|
if (IsMySql(builder, options)) |
|
|
|
if (IsDatabaseProvider(builder, options, EfCoreDatabaseProvider.MySql)) |
|
|
|
{ |
|
|
|
b.Property(x => x.RedirectUri).HasMaxLength(300).IsRequired(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
b.Property(x => x.RedirectUri).HasMaxLength(ClientRedirectUriConsts.RedirectUriMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.RedirectUri).HasMaxLength(ClientRedirectUriConsts.RedirectUriMaxLength) |
|
|
|
.IsRequired(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
@ -94,15 +95,16 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.PostLogoutRedirectUri }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.PostLogoutRedirectUri}); |
|
|
|
|
|
|
|
if (IsMySql(builder, options)) |
|
|
|
if (IsDatabaseProvider(builder, options, EfCoreDatabaseProvider.MySql)) |
|
|
|
{ |
|
|
|
b.Property(x => x.PostLogoutRedirectUri).HasMaxLength(300).IsRequired(); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
b.Property(x => x.PostLogoutRedirectUri).HasMaxLength(ClientPostLogoutRedirectUriConsts.PostLogoutRedirectUriMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.PostLogoutRedirectUri) |
|
|
|
.HasMaxLength(ClientPostLogoutRedirectUriConsts.PostLogoutRedirectUriMaxLength).IsRequired(); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
@ -112,7 +114,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Scope }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Scope}); |
|
|
|
|
|
|
|
b.Property(x => x.Scope).HasMaxLength(ClientScopeConsts.ScopeMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -123,11 +125,11 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Type, x.Value }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Type, x.Value}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(SecretConsts.TypeMaxLength).IsRequired(); |
|
|
|
|
|
|
|
if (IsMySql(builder, options)) |
|
|
|
if (IsDatabaseProvider(builder, options, EfCoreDatabaseProvider.MySql, EfCoreDatabaseProvider.Oracle)) |
|
|
|
{ |
|
|
|
b.Property(x => x.Value).HasMaxLength(300).IsRequired(); |
|
|
|
} |
|
|
|
@ -145,7 +147,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Type, x.Value }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Type, x.Value}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(ClientClaimConsts.TypeMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.Value).HasMaxLength(ClientClaimConsts.ValueMaxLength).IsRequired(); |
|
|
|
@ -157,7 +159,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Provider }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Provider}); |
|
|
|
|
|
|
|
b.Property(x => x.Provider).HasMaxLength(ClientIdPRestrictionConsts.ProviderMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -168,7 +170,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Origin }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Origin}); |
|
|
|
|
|
|
|
b.Property(x => x.Origin).HasMaxLength(ClientCorsOriginConsts.OriginMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -179,7 +181,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ClientId, x.Key }); |
|
|
|
b.HasKey(x => new {x.ClientId, x.Key}); |
|
|
|
|
|
|
|
b.Property(x => x.Key).HasMaxLength(ClientPropertyConsts.KeyMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.Value).HasMaxLength(ClientPropertyConsts.ValueMaxLength).IsRequired(); |
|
|
|
@ -197,7 +199,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
b.Property(x => x.ClientId).HasMaxLength(PersistedGrantConsts.ClientIdMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.CreationTime).IsRequired(); |
|
|
|
|
|
|
|
if (IsMySql(builder, options)) |
|
|
|
if (IsDatabaseProvider(builder, options, EfCoreDatabaseProvider.MySql)) |
|
|
|
{ |
|
|
|
b.Property(x => x.Data).HasMaxLength(10000).IsRequired(); |
|
|
|
} |
|
|
|
@ -208,7 +210,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.HasKey(x => x.Key); //TODO: What about Id!!!
|
|
|
|
|
|
|
|
b.HasIndex(x => new { x.SubjectId, x.ClientId, x.Type }); |
|
|
|
b.HasIndex(x => new {x.SubjectId, x.ClientId, x.Type}); |
|
|
|
b.HasIndex(x => x.Expiration); |
|
|
|
}); |
|
|
|
|
|
|
|
@ -234,7 +236,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.IdentityResourceId, x.Type }); |
|
|
|
b.HasKey(x => new {x.IdentityResourceId, x.Type}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(UserClaimConsts.TypeMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -263,12 +265,12 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ApiResourceId, x.Type, x.Value }); |
|
|
|
b.HasKey(x => new {x.ApiResourceId, x.Type, x.Value}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(SecretConsts.TypeMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.Description).HasMaxLength(SecretConsts.DescriptionMaxLength); |
|
|
|
|
|
|
|
if (IsMySql(builder, options)) |
|
|
|
if (IsDatabaseProvider(builder, options, EfCoreDatabaseProvider.MySql, EfCoreDatabaseProvider.Oracle)) |
|
|
|
{ |
|
|
|
b.Property(x => x.Value).HasMaxLength(300).IsRequired(); |
|
|
|
} |
|
|
|
@ -284,7 +286,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ApiResourceId, x.Type }); |
|
|
|
b.HasKey(x => new {x.ApiResourceId, x.Type}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(UserClaimConsts.TypeMaxLength).IsRequired(); |
|
|
|
}); |
|
|
|
@ -295,13 +297,13 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ApiResourceId, x.Name }); |
|
|
|
b.HasKey(x => new {x.ApiResourceId, x.Name}); |
|
|
|
|
|
|
|
b.Property(x => x.Name).HasMaxLength(ApiScopeConsts.NameMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.DisplayName).HasMaxLength(ApiScopeConsts.DisplayNameMaxLength); |
|
|
|
b.Property(x => x.Description).HasMaxLength(ApiScopeConsts.DescriptionMaxLength); |
|
|
|
|
|
|
|
b.HasMany(x => x.UserClaims).WithOne().HasForeignKey(x => new { x.ApiResourceId, x.Name }).IsRequired(); |
|
|
|
b.HasMany(x => x.UserClaims).WithOne().HasForeignKey(x => new {x.ApiResourceId, x.Name}).IsRequired(); |
|
|
|
}); |
|
|
|
|
|
|
|
builder.Entity<ApiScopeClaim>(b => |
|
|
|
@ -310,7 +312,7 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
|
|
|
|
b.ConfigureByConvention(); |
|
|
|
|
|
|
|
b.HasKey(x => new { x.ApiResourceId, x.Name, x.Type }); |
|
|
|
b.HasKey(x => new {x.ApiResourceId, x.Name, x.Type}); |
|
|
|
|
|
|
|
b.Property(x => x.Type).HasMaxLength(UserClaimConsts.TypeMaxLength).IsRequired(); |
|
|
|
b.Property(x => x.Name).HasMaxLength(ApiScopeConsts.NameMaxLength).IsRequired(); |
|
|
|
@ -329,18 +331,27 @@ namespace Volo.Abp.IdentityServer.EntityFrameworkCore |
|
|
|
b.Property(x => x.Expiration).IsRequired(); |
|
|
|
b.Property(x => x.Data).HasMaxLength(50000).IsRequired(); |
|
|
|
|
|
|
|
b.HasIndex(x => new { x.UserCode }).IsUnique(); |
|
|
|
b.HasIndex(x => new {x.UserCode}).IsUnique(); |
|
|
|
b.HasIndex(x => x.DeviceCode).IsUnique(); |
|
|
|
b.HasIndex(x => x.Expiration); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private static bool IsMySql( |
|
|
|
private static bool IsDatabaseProvider( |
|
|
|
ModelBuilder modelBuilder, |
|
|
|
IdentityServerModelBuilderConfigurationOptions options) |
|
|
|
IdentityServerModelBuilderConfigurationOptions options, |
|
|
|
params EfCoreDatabaseProvider[] providers) |
|
|
|
{ |
|
|
|
return options.DatabaseProvider == EfCoreDatabaseProvider.MySql || |
|
|
|
modelBuilder.IsUsingMySQL(); |
|
|
|
foreach (var provider in providers) |
|
|
|
{ |
|
|
|
if (options.DatabaseProvider == EfCoreDatabaseProvider.MySql || |
|
|
|
modelBuilder.GetDatabaseProvider() == provider) |
|
|
|
{ |
|
|
|
return true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |