public void PublishAuthenticatedUserInfoToDBServer(ISessionId sessionId) { if (!loggedInSessionsOnCS.Contains(sessionId)) { loggedInSessionsOnCS.Add(sessionId); } }
public ManagementSession(ManagementServer server, UserCredentials credentials) { this.dbMgtServer = server; this._sessionStartTime = DateTime.Now; _sessionId = new RouterSessionId(); _sessionId.SessionId = Guid.NewGuid().ToString(); _rpcService = new RPCService <ManagementSession>(new TargetObject <ManagementSession>(this)); ManagementProvider.Provider = this; }
public void PublishAuthenticatedUserInfoToDBServer(ISessionId sessionId, string username) { try { if (ConfigurationServer != null) { ConfigurationServer.PublishAuthenticatedUserInfoToDBServer(sessionId, username); } } catch (Exception exc) { if (LoggerManager.Instance.SecurityLogger != null && LoggerManager.Instance.SecurityLogger.IsErrorEnabled) { LoggerManager.Instance.SecurityLogger.Error("SecurityManager.PublishLoginInfo", exc); } } }
public bool Authorize(IDBOperation operation, bool isInitializeCall) { if (_nodeContext.StatusLatch.IsAnyBitsSet(NodeStatus.Initializing)) { _nodeContext.StatusLatch.WaitForAny(NodeStatus.Running); } bool isInitialized = true; if (!isInitializeCall) //This portion is to verify if database is initialized or not, it has nothing to do with security (authorization or authentication) { ClientSessionId clientSessionId = operation.SessionId as ClientSessionId; if (!(initializedDatabases != null && initializedDatabases.ContainsKey(operation.Database) && (initializedDatabases[operation.Database].Contains(operation.SessionId) || (clientSessionId != null && initializedDatabases[operation.Database].Contains(clientSessionId.RouterSessionId))))) { isInitialized = false; } //throw new DistributorException(ErrorCodes.Distributor.DATABASE_NOT_INITIALIZED, new[] {operation.Database}); } //Authorization bool isAuthorized = false; ISessionId sessionId = operation.SessionId; Permission permission = null; switch (operation.OperationType) { case DatabaseOperationType.Get: case DatabaseOperationType.GetChunk: case DatabaseOperationType.ReadQuery: case DatabaseOperationType.DisposeReader: permission = Permission.Read; break; case DatabaseOperationType.Insert: case DatabaseOperationType.Delete: case DatabaseOperationType.Replace: case DatabaseOperationType.Update: case DatabaseOperationType.WriteQuery: permission = Permission.Write; break; case DatabaseOperationType.Init: permission = Permission.Init; break; } //if(LoggerManager.Instance.SecurityLogger != null && LoggerManager.Instance.SecurityLogger.IsInfoEnabled) //{ // LoggerManager.Instance.SecurityLogger.Info("DataBaseEngine.Authorize", "Operation: " + operation.OperationType); //} if (permission != null) { ResourceId resourceId; ResourceId superResourceId; Security.Impl.SecurityManager.GetSecurityInformation(permission, operation.Database, out resourceId, out superResourceId, null); isAuthorized = SecurityManager.Authorize(_nodeContext.LocalShardName, sessionId, resourceId, superResourceId, permission); _nodeContext.TopologyImpl.IsOpertionAllow(operation.Database); } if (isAuthorized && !isInitialized) { this.InitializeDatabase(new InitDatabaseOperation() { Database = operation.Database, SessionId = operation.SessionId }); } return(isAuthorized); }
public void Deserialize(Serialization.IO.CompactReader reader) { SessionId = reader.ReadObject() as string; Username = reader.ReadObject() as string; RouterSessionId = reader.ReadObject() as ISessionId; }
public void PublishAuthenticatedUserInfoToDBServer(string cluster, string shard, ISessionId sessionId, string username) { ManagementCommand command = GetManagementCommand(ConfigurationCommandUtil.MethodName.PublishAuthenticatedUserInfoToDBServer); command.Parameters.AddParameter(cluster); command.Parameters.AddParameter(shard); command.Parameters.AddParameter(sessionId); command.Parameters.AddParameter(username); ExecuteCommandOnMgtServer(command, false); }
/// <summary> /// Indicates that a message was received. /// </summary> public void OnMessage(ISessionId sessionId, string topicPath, IContent content, IReceiveContext context) => WriteLine($"Handler for {topicPath} has received message: {content.AsString()}.");
/// <summary> /// Indicates that a response message was received. /// </summary> public void OnResponse(ISessionId sessionId, string response) => WriteLine($"Received response: '{response}'.");
/// <summary> /// Indicates that a error response message was received. /// </summary> public void OnResponseError(ISessionId sessionId, Exception exception) => WriteLine($"Response error received from session {sessionId}: '{exception}'.");
public IUser GetAuthenticatedUserInfoFromConfigServer(ISessionId sessionId) { return(_session.GetAuthenticatedUserInfoFromConfigServer(sessionId)); }
public bool IsAuthorized(ISessionId sessionId, ResourceId resourceId, ResourceId superResourceId, Permission operationPermission) { return(_session.IsAuthorized(sessionId, resourceId, superResourceId, operationPermission)); }
/// <summary> /// Indicates that a response message was received. /// </summary> public void OnResponse(ISessionId sessionId, string response) { Response = response; SessionId = sessionId; ResponseEvent.Set(); }
public void PublishAuthenticatedUserInfoToDBServer(ISessionId sessionId) { _clientSessionManager.PublishAuthenticatedUserInfoToDBServer(sessionId); }
public IUser GetAuthenticatedUserInfoFromConfigServer(ISessionId sessionId) { throw new NotImplementedException(); }
public void OnReply(ISessionId sessionId, Dictionary <string, string> properties) { vals = properties; }
public void PublishAuthenticatedUserInfoToDBServer(string cluster, string shard, ISessionId sessionId, string username) { dbMgtServer.PublishAuthenticatedUserInfoToDBServer(cluster, shard, sessionId, username); }
public void OnUnknownSession(ISessionId sessionId) { Console.WriteLine("no"); }
public bool IsAuthorized(ISessionId sessionId, Common.Security.Impl.ResourceId resourceId, Common.Security.Impl.ResourceId superResourceId, Common.Security.Impl.Permission operationPermission) { return(false); }