Skip to content

Commit b2bd36d

Browse files
committed
Security Improvement
1 parent 8a701c6 commit b2bd36d

5 files changed

Lines changed: 62 additions & 47 deletions

File tree

Dockerfile-Kubernetes

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
1+
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
22

3-
RUN sed -i "s|MinProtocol = TLSv1.2|MinProtocol = TLSv1|g" /etc/ssl/openssl.cnf && \
4-
sed -i 's|CipherString = DEFAULT@SECLEVEL=2|CipherString = DEFAULT@SECLEVEL=1|g' /etc/ssl/openssl.cnf
3+
RUN sed -i 's/\[openssl_init\]/# [openssl_init]/' /etc/ssl/openssl.cnf &&\
4+
printf "\n\n[openssl_init]\nssl_conf = ssl_sect" >> /etc/ssl/openssl.cnf &&\
5+
printf "\n\n[ssl_sect]\nsystem_default = ssl_default_sect" >> /etc/ssl/openssl.cnf &&\
6+
printf "\n\n[ssl_default_sect]\nMinProtocol = TLSv1\nCipherString = DEFAULT@SECLEVEL=0\n" >> /etc/ssl/openssl.cnf
57

68
RUN apt-get update && apt-get install -y --no-install-recommends curl
79

@@ -15,17 +17,19 @@ COPY . ./
1517

1618
RUN dotnet publish Gnoss.BackgroundTask.SocialCacheRefresh/Gnoss.BackgroundTask.SocialCacheRefresh.csproj -c Release -o out
1719

18-
FROM mcr.microsoft.com/dotnet/aspnet:6.0
20+
FROM mcr.microsoft.com/dotnet/aspnet:8.0
1921

20-
RUN sed -i "s|MinProtocol = TLSv1.2|MinProtocol = TLSv1|g" /etc/ssl/openssl.cnf && \
21-
sed -i 's|CipherString = DEFAULT@SECLEVEL=2|CipherString = DEFAULT@SECLEVEL=1|g' /etc/ssl/openssl.cnf
22+
RUN sed -i 's/\[openssl_init\]/# [openssl_init]/' /etc/ssl/openssl.cnf &&\
23+
printf "\n\n[openssl_init]\nssl_conf = ssl_sect" >> /etc/ssl/openssl.cnf &&\
24+
printf "\n\n[ssl_sect]\nsystem_default = ssl_default_sect" >> /etc/ssl/openssl.cnf &&\
25+
printf "\n\n[ssl_default_sect]\nMinProtocol = TLSv1\nCipherString = DEFAULT@SECLEVEL=0\n" >> /etc/ssl/openssl.cnf
2226

2327
RUN apt-get update && apt-get install -y --no-install-recommends curl
2428

2529
WORKDIR /app
26-
RUN useradd -r gnoss
27-
RUN chown -R gnoss:gnoss /app
28-
RUN chmod -R 777 /app
30+
RUN groupadd -g 1000 gnoss && useradd -u 1000 -g 1000 gnoss &&\
31+
mkdir -p logs trazas &&\
32+
chown -R gnoss:gnoss logs trazas && chmod -R 777 logs trazas
2933
USER gnoss
3034

3135
COPY --from=build-env /app/out .

Gnoss.BackgroundTask.SocialCacheRefresh/ControladorRefrescoCache.cs

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
using Es.Riam.Gnoss.Elementos.ParametroAplicacion;
2929
using Es.Riam.Gnoss.Web.Controles.ParametroAplicacionGBD;
3030
using Es.Riam.AbstractsOpen;
31+
using Microsoft.Extensions.Logging;
32+
using Es.Riam.Gnoss.Elementos.Suscripcion;
3133

3234
namespace Es.Riam.Gnoss.Win.RefrescoCache
3335
{
@@ -45,7 +47,8 @@ internal class ControladorRefrescoCache : ControladorServicioGnoss
4547
private List<string> mIdiomasList = new List<string>();
4648

4749
private int mNumeroMaxPeticionesWebSimultaneas = 5;
48-
50+
private ILogger mlogger;
51+
private ILoggerFactory mLoggerFactory;
4952

5053
#endregion
5154

@@ -55,11 +58,12 @@ internal class ControladorRefrescoCache : ControladorServicioGnoss
5558
/// Constructor
5659
/// </summary>
5760
/// <param name="pFicheroConfiguracionSitioWeb">Ruta al archivo de configuración del sitio Web</param>
58-
public ControladorRefrescoCache(int pNumeroMaxPeticionesWebSimultaneas, IServiceScopeFactory scopedFactory, ConfigService configService)
59-
: base(scopedFactory, configService)
61+
public ControladorRefrescoCache(int pNumeroMaxPeticionesWebSimultaneas, IServiceScopeFactory scopedFactory, ConfigService configService, ILogger<ControladorRefrescoCache> logger, ILoggerFactory loggerFactory)
62+
: base(scopedFactory, configService,logger,loggerFactory)
6063
{
6164
mNumeroMaxPeticionesWebSimultaneas = pNumeroMaxPeticionesWebSimultaneas;
62-
65+
mlogger = logger;
66+
mLoggerFactory = loggerFactory;
6367
CargarIdiomas();
6468
}
6569

@@ -132,7 +136,7 @@ private void RealizarMantenimientoBD()
132136
RealizarMantenimientoRabbitMQ(loggingService);
133137
}
134138

135-
BaseComunidadCN baseComunidadCN = new BaseComunidadCN(entityContext, loggingService, entityContextBASE, mConfigService, servicesUtilVirtuosoAndReplication);
139+
BaseComunidadCN baseComunidadCN = new BaseComunidadCN(entityContext, loggingService, entityContextBASE, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<BaseComunidadCN>(), mLoggerFactory);
136140
baseComunidadCN.EliminarColaRefrescoCachePendientesRepetidas();
137141
BaseComunidadDS baseComunidadDS = baseComunidadCN.ObtenerColaRefrescoCacheBandejaMensajesPendientes();
138142

@@ -153,7 +157,7 @@ private void RealizarMantenimientoBD()
153157
}
154158
catch (Exception ex)
155159
{
156-
loggingService.GuardarLog("ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace);
160+
loggingService.GuardarLog("ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace,mlogger);
157161
ControladorConexiones.CerrarConexiones();
158162
}
159163
finally
@@ -173,7 +177,7 @@ private void RealizarMantenimientoRabbitMQ(LoggingService loggingService, bool r
173177
RabbitMQClient.ReceivedDelegate funcionProcesarItem = new RabbitMQClient.ReceivedDelegate(ProcesarItem);
174178
RabbitMQClient.ShutDownDelegate funcionShutDown = new RabbitMQClient.ShutDownDelegate(OnShutDown);
175179

176-
RabbitMQClient rabbitMQClient = new RabbitMQClient(RabbitMQClient.BD_SERVICIOS_WIN, COLA_REFRESCO_CACHE, loggingService, mConfigService, EXCHANGE, COLA_REFRESCO_CACHE);
180+
RabbitMQClient rabbitMQClient = new RabbitMQClient(RabbitMQClient.BD_SERVICIOS_WIN, COLA_REFRESCO_CACHE, loggingService, mConfigService, mLoggerFactory.CreateLogger<RabbitMQClient>(), mLoggerFactory, EXCHANGE, COLA_REFRESCO_CACHE);
177181

178182
try
179183
{
@@ -183,7 +187,7 @@ private void RealizarMantenimientoRabbitMQ(LoggingService loggingService, bool r
183187
catch (Exception ex)
184188
{
185189
mReiniciarLecturaRabbit = true;
186-
loggingService.GuardarLogError(ex);
190+
loggingService.GuardarLogError(ex,mlogger);
187191
}
188192
}
189193
}
@@ -223,7 +227,7 @@ private bool ProcesarItem(string pFila)
223227
}
224228
catch (Exception ex)
225229
{
226-
loggingService.GuardarLogError(ex);
230+
loggingService.GuardarLogError(ex, mlogger);
227231
return true;
228232
}
229233
finally
@@ -294,7 +298,7 @@ private void ActualizarCachesRemitenteYDestinatarios(BaseComunidadDS.ColaRefresc
294298
{
295299
// Cargar los datos del proyecto
296300
string urlPropiaProyecto = string.Empty;
297-
ProyectoCN proyCN = new ProyectoCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
301+
ProyectoCN proyCN = new ProyectoCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<ProyectoCN>(), mLoggerFactory);
298302
urlPropiaProyecto = proyCN.ObtenerURLPropiaProyecto(pFilaCola.ProyectoID);
299303
proyCN.Dispose();
300304

@@ -310,8 +314,8 @@ private void ActualizarCachesRemitenteYDestinatarios(BaseComunidadDS.ColaRefresc
310314
List<Guid> listaPerfilesDestinatarios = new List<Guid>();
311315

312316
// Por cada idioma debemos calculas las cachés de las bandejas del usuario.
313-
IdentidadCN identCN = new IdentidadCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
314-
PersonaCN personaCN = new PersonaCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
317+
IdentidadCN identCN = new IdentidadCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<IdentidadCN>(), mLoggerFactory);
318+
PersonaCN personaCN = new PersonaCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<PersonaCN>(), mLoggerFactory);
315319

316320
Guid identidadID = new Guid();
317321

@@ -469,7 +473,7 @@ private void RefrescarCacheFaceta_Mensajes(CargadorFacetas pCargadorFacetasHome,
469473
{
470474
//Fallo tras el segundo reintento...
471475
pFilaCola.Estado = 1;
472-
loggingService.GuardarLog("Error al refrescar los resultados la fila " + pFilaCola.ColaID + " ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace);
476+
loggingService.GuardarLog("Error al refrescar los resultados la fila " + pFilaCola.ColaID + " ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace, mlogger);
473477
}
474478
}
475479
}
@@ -495,7 +499,7 @@ private void RefrescarCacheResultados_Mensajes(CargadorResultados pCargadorResul
495499
{
496500
//Fallo tras el segundo reintento...
497501
pFilaCola.Estado = 1;
498-
loggingService.GuardarLog("Error al refrescar los resultados la fila " + pFilaCola.ColaID + " ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace);
502+
loggingService.GuardarLog("Error al refrescar los resultados la fila " + pFilaCola.ColaID + " ERROR: Excepción: " + ex.ToString() + "\n\n\tTraza: " + ex.StackTrace, mlogger);
499503
}
500504
}
501505
}
@@ -506,7 +510,7 @@ private void RefrescarCacheResultados_Mensajes(CargadorResultados pCargadorResul
506510
/// <param name="pPerfiles">Lista de perfiles que han recibido un correo.</param>
507511
private void AgregarNotificacionCorreoNuevoAIdentidades(List<Guid> pPerfiles, EntityContext entityContext, LoggingService loggingService, VirtuosoAD virtuosoAD, IServicesUtilVirtuosoAndReplication servicesUtilVirtuosoAndReplication)
508512
{
509-
LiveCN liveCN = new LiveCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
513+
LiveCN liveCN = new LiveCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<LiveCN>(), mLoggerFactory);
510514
foreach (Guid perfilID in pPerfiles)
511515
{
512516
liveCN.AumentarContadorNuevosMensajes(perfilID);
@@ -518,9 +522,9 @@ private void AgregarNotificacionCorreoNuevoAIdentidades(List<Guid> pPerfiles, En
518522

519523
private void EstablecerNumeroMensajesSinLeer(Guid pPerfilID, EntityContext entityContext, LoggingService loggingService, VirtuosoAD virtuosoAD, IServicesUtilVirtuosoAndReplication servicesUtilVirtuosoAndReplication)
520524
{
521-
LiveCN liveCN = new LiveCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
522-
FacetadoAD facetadoAD = new FacetadoAD(mFicheroConfiguracionHomeBD, mUrlIntragnoss, loggingService, entityContext, mConfigService, virtuosoAD, servicesUtilVirtuosoAndReplication);
523-
IdentidadCN identidadCN = new IdentidadCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication);
525+
LiveCN liveCN = new LiveCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<LiveCN>(), mLoggerFactory);
526+
FacetadoAD facetadoAD = new FacetadoAD(mFicheroConfiguracionHomeBD, mUrlIntragnoss, loggingService, entityContext, mConfigService, virtuosoAD, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<FacetadoAD>(), mLoggerFactory);
527+
IdentidadCN identidadCN = new IdentidadCN(entityContext, loggingService, mConfigService, servicesUtilVirtuosoAndReplication, mLoggerFactory.CreateLogger<IdentidadCN>(), mLoggerFactory);
524528

525529
Guid? identidadID = identidadCN.ObtenerIdentidadIDDePerfilEnProyecto(ProyectoAD.MetaProyecto, pPerfilID);
526530

@@ -596,7 +600,7 @@ private List<string> BuscarTagFiltroEnCadena(ref string pCadena, string pClaveFi
596600

597601
protected override ControladorServicioGnoss ClonarControlador()
598602
{
599-
return new ControladorRefrescoCache(mNumeroMaxPeticionesWebSimultaneas, ScopedFactory, mConfigService);
603+
return new ControladorRefrescoCache(mNumeroMaxPeticionesWebSimultaneas, ScopedFactory, mConfigService, mLoggerFactory.CreateLogger<ControladorRefrescoCache>(), mLoggerFactory);
600604
}
601605

602606
#endregion

Gnoss.BackgroundTask.SocialCacheRefresh/Gnoss.BackgroundTask.SocialCacheRefresh.csproj

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
<Project Sdk="Microsoft.NET.Sdk.Worker">
22

3-
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
5-
<UserSecretsId>dotnet-Gnoss.BackgroundTask.SocialCacheRefresh-1C411735-BE9F-4726-B0E4-D615380BB653</UserSecretsId>
6-
</PropertyGroup>
3+
<PropertyGroup>
4+
<TargetFramework>net8.0</TargetFramework>
5+
<UserSecretsId>dotnet-Gnoss.BackgroundTask.SocialCacheRefresh-1C411735-BE9F-4726-B0E4-D615380BB653</UserSecretsId>
6+
<ServerGarbageCollection>false</ServerGarbageCollection>
7+
</PropertyGroup>
78

8-
<ItemGroup>
9-
<PackageReference Include="Microsoft.Extensions.Hosting" Version="5.0.0" />
10-
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="5.0.1" />
11-
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="5.0.1" />
12-
<PackageReference Include="Npgsql" Version="6.0.11" />
13-
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="6.0.8" />
14-
<PackageReference Include="Oracle.EntityFrameworkCore" Version="6.21.90" />
15-
</ItemGroup>
9+
<ItemGroup>
10+
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
11+
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
12+
<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="8.0.1" />
13+
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.1" />
14+
<PackageReference Include="Npgsql" Version="8.0.5" />
15+
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
16+
<PackageReference Include="Oracle.EntityFrameworkCore" Version="8.23.60" />
17+
</ItemGroup>
1618

1719
<ItemGroup>
1820
<ProjectReference Include="..\..\Gnoss.Commons\Es.Riam.Gnoss.AD\Es.Riam.Gnoss.AD.csproj" />

Gnoss.BackgroundTask.SocialCacheRefresh/Program.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
using Es.Riam.Gnoss.Util.Configuracion;
99
using Es.Riam.Gnoss.Util.General;
1010
using Es.Riam.Gnoss.Util.Seguridad;
11+
using Es.Riam.Interfaces.InterfacesOpen;
12+
using Es.Riam.Open;
1113
using Es.Riam.OpenReplication;
1214
using Es.Riam.Util;
1315
using Microsoft.EntityFrameworkCore;
@@ -64,6 +66,7 @@ public static IHostBuilder CreateHostBuilder(string[] args) =>
6466
services.AddScoped(typeof(GnossCache));
6567
services.AddScoped<IServicesUtilVirtuosoAndReplication, ServicesVirtuosoAndBidirectionalReplicationOpen>();
6668
services.AddScoped(typeof(RelatedVirtuosoCL));
69+
services.AddScoped<IAvailableServices, AvailableServicesOpen>();
6770
string bdType = "";
6871
IDictionary environmentVariables = Environment.GetEnvironmentVariables();
6972
if (environmentVariables.Contains("connectionType"))
@@ -102,11 +105,10 @@ public static IHostBuilder CreateHostBuilder(string[] args) =>
102105
if (bdType.Equals("0"))
103106
{
104107
services.AddDbContext<EntityContext>(options =>
105-
options.UseSqlServer(acid)
108+
options.UseSqlServer(acid, o => o.UseCompatibilityLevel(110))
106109
);
107110
services.AddDbContext<EntityContextBASE>(options =>
108-
options.UseSqlServer(baseConnection)
109-
111+
options.UseSqlServer(baseConnection, o => o.UseCompatibilityLevel(110))
110112
);
111113
}
112114
else if (bdType.Equals("1"))

Gnoss.BackgroundTask.SocialCacheRefresh/SocialCacheRefreshWorker.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Es.Riam.Gnoss.Elementos.Suscripcion;
12
using Es.Riam.Gnoss.Servicios;
23
using Es.Riam.Gnoss.Util.Configuracion;
34
using Es.Riam.Gnoss.Win.RefrescoCache;
@@ -14,22 +15,24 @@ namespace Gnoss.BackgroundTask.SocialCacheRefresh
1415
{
1516
public class SocialCacheRefreshWorker : Worker
1617
{
17-
private readonly ILogger<SocialCacheRefreshWorker> _logger;
1818
private readonly ConfigService _configService;
19+
private ILogger mlogger;
20+
private ILoggerFactory mLoggerFactory;
1921

20-
public SocialCacheRefreshWorker(ILogger<SocialCacheRefreshWorker> logger, ConfigService configService, IServiceScopeFactory scopeFactory)
22+
public SocialCacheRefreshWorker(ConfigService configService, IServiceScopeFactory scopeFactory, ILogger<SocialCacheRefreshWorker> logger, ILoggerFactory loggerFactory)
2123
: base(logger, scopeFactory)
2224
{
23-
_logger = logger;
2425
_configService = configService;
26+
mlogger = logger;
27+
mLoggerFactory = loggerFactory;
2528
}
2629

2730
protected override List<ControladorServicioGnoss> ObtenerControladores()
2831
{
2932
List<ControladorServicioGnoss> controladores = new List<ControladorServicioGnoss>();
3033
int numMaxPeticionesWebSimultaneas = _configService.ObtenerNumMaxPeticionesWebSimultaneas();
3134

32-
controladores.Add(new ControladorRefrescoCache(numMaxPeticionesWebSimultaneas, ScopedFactory, _configService));
35+
controladores.Add(new ControladorRefrescoCache(numMaxPeticionesWebSimultaneas, ScopedFactory, _configService, mLoggerFactory.CreateLogger<ControladorRefrescoCache>(), mLoggerFactory));
3336
return controladores;
3437
}
3538
}

0 commit comments

Comments
 (0)