using System.Net.Sockets; using Microsoft.Extensions.Logging; using NetCoreServer; namespace Server; public class AuthorizationServerSession : TcpSession { private readonly ILogger _logger; private readonly AesProvider _aesProvider; public AuthorizationServerSession(AuthorizationServer server, ILogger logger, AesProvider aesProvider) : base(server) { _logger = logger; _aesProvider = aesProvider; } public override long Send(byte[] buffer, long offset, long size) { var bytes = _aesProvider.Encrypt(buffer); return bytes.Length; } public override long Receive(byte[] buffer, long offset, long size) { var bytes = _aesProvider.Decrypt(buffer); return bytes.Length; } protected override void OnConnected() { _logger.LogInformation("Session with Id {Id} is connected.", Id); } protected override void OnDisconnected() { _logger.LogInformation("Session with Id {Id} is disconnected.", Id); } protected override void OnError(SocketError error) { _logger.LogError("Authorization session caught an error with code {error}", error); } }