fix 敏感信息调整
This commit is contained in:
@@ -23,6 +23,7 @@ public class ObfuscateProviderJsonConverter : ObfuscateJsonConverter
|
||||
var sp = App.GetServiceProvider(true);
|
||||
var cache = sp.GetService<RedisCache>();
|
||||
var currentUser = sp.GetService<ICurrentUser>();
|
||||
|
||||
var range = cache.ListRange("datapermission:role");
|
||||
if (range.Contains(currentUser.GetUserClaim(ClaimTypes.Role)))
|
||||
{
|
||||
@@ -44,6 +45,47 @@ public class ObfuscateProviderJsonConverter : ObfuscateJsonConverter
|
||||
vc.Reverse();
|
||||
v = string.Join("", vc);
|
||||
|
||||
writer.WriteValue(v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ObfuscateProviderOnlyAdminJsonConverter : ObfuscateJsonConverter
|
||||
{
|
||||
private readonly int _last;
|
||||
|
||||
/// <inheritdoc />
|
||||
public ObfuscateProviderOnlyAdminJsonConverter(int last) : base(last)
|
||||
{
|
||||
_last = last;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
|
||||
{
|
||||
var sp = App.GetServiceProvider(true);
|
||||
var currentUser = sp.GetService<ICurrentUser>();
|
||||
|
||||
if (currentUser.GetRole() == "admin")
|
||||
{
|
||||
writer.WriteValue(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
var v = value?.ToString() ?? string.Empty;
|
||||
var vc = v.ToCharArray().Reverse().ToList();
|
||||
|
||||
for (int i = 0; i < vc.Count; i++)
|
||||
{
|
||||
if (i + 1 > _last)
|
||||
{
|
||||
vc[i] = '*';
|
||||
}
|
||||
}
|
||||
|
||||
vc.Reverse();
|
||||
v = string.Join("", vc);
|
||||
|
||||
writer.WriteValue(v);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user