Example #1
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain) throws java.io.IOException, javax.servlet.ServletException
        public override void DoFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
        {
            ValidateRequestType(servletRequest);
            ValidateResponseType(servletResponse);

//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest) servletRequest;
            HttpServletRequest request = ( HttpServletRequest )servletRequest;
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final javax.servlet.http.HttpServletResponse response = (javax.servlet.http.HttpServletResponse) servletResponse;
            HttpServletResponse response = ( HttpServletResponse )servletResponse;

            try
            {
                LoginContext loginContext = AuthDisabledLoginContext;
                string       userAgent    = request.getHeader(HttpHeaders.USER_AGENT);

                JettyHttpConnection.updateUserForCurrentConnection(loginContext.Subject().username(), userAgent);

                filterChain.doFilter(new AuthorizedRequestWrapper(BASIC_AUTH, "neo4j", request, loginContext), servletResponse);
            }
            catch (AuthorizationViolationException e)
            {
                UnauthorizedAccess(e.Message).accept(response);
            }
        }
Example #2
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @POST @Consumes({javax.ws.rs.core.MediaType.APPLICATION_JSON}) @Produces({javax.ws.rs.core.MediaType.APPLICATION_JSON}) public javax.ws.rs.core.Response executeStatementsInNewTransaction(final java.io.InputStream input, @Context final javax.ws.rs.core.UriInfo uriInfo, @Context final javax.servlet.http.HttpServletRequest request)
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
        public virtual Response ExecuteStatementsInNewTransaction(Stream input, UriInfo uriInfo, HttpServletRequest request)
        {
            _usage.get(features).flag(http_tx_endpoint);
            LoginContext      loginContext             = AuthorizedRequestWrapper.getLoginContextFromHttpServletRequest(request);
            long              customTransactionTimeout = HttpHeaderUtils.getTransactionTimeout(request, _log);
            TransactionHandle transactionHandle        = _facade.newTransactionHandle(_uriScheme, false, loginContext, customTransactionTimeout);

            return(CreatedResponse(transactionHandle, executeStatements(input, transactionHandle, uriInfo.BaseUri, request)));
        }
Example #3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @POST @Path("/commit") @Consumes({javax.ws.rs.core.MediaType.APPLICATION_JSON}) @Produces({javax.ws.rs.core.MediaType.APPLICATION_JSON}) public javax.ws.rs.core.Response commitNewTransaction(final java.io.InputStream input, @Context final javax.ws.rs.core.UriInfo uriInfo, @Context final javax.servlet.http.HttpServletRequest request)
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
        public virtual Response CommitNewTransaction(Stream input, UriInfo uriInfo, HttpServletRequest request)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.neo4j.server.rest.transactional.TransactionHandle transactionHandle;
            TransactionHandle transactionHandle;
            LoginContext      loginContext = AuthorizedRequestWrapper.getLoginContextFromHttpServletRequest(request);
            long customTransactionTimeout  = HttpHeaderUtils.getTransactionTimeout(request, _log);

            transactionHandle = _facade.newTransactionHandle(_uriScheme, true, loginContext, customTransactionTimeout);
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final javax.ws.rs.core.StreamingOutput streamingResults = executeStatementsAndCommit(input, transactionHandle, uriInfo.getBaseUri(), request);
            StreamingOutput streamingResults = ExecuteStatementsAndCommit(input, transactionHandle, uriInfo.BaseUri, request);

            return(OkResponse(streamingResults));
        }
Example #4
0
        private static Instances KernelTransactionWithInternals(LoginContext loginContext)
        {
            TransactionHeaderInformation        headerInformation        = new TransactionHeaderInformation(-1, -1, new sbyte[0]);
            TransactionHeaderInformationFactory headerInformationFactory = mock(typeof(TransactionHeaderInformationFactory));

            when(headerInformationFactory.Create()).thenReturn(headerInformation);

            StorageEngine storageEngine = mock(typeof(StorageEngine));
            StorageReader storageReader = mock(typeof(StorageReader));

            when(storageEngine.NewReader()).thenReturn(storageReader);

            KernelTransactionImplementation transaction = new KernelTransactionImplementation(Config.defaults(), mock(typeof(StatementOperationParts)), mock(typeof(SchemaWriteGuard)), new TransactionHooks(), mock(typeof(ConstraintIndexCreator)), new Procedures(), headerInformationFactory, mock(typeof(TransactionRepresentationCommitProcess)), mock(typeof(TransactionMonitor)), mock(typeof(AuxiliaryTransactionStateManager)), mock(typeof(Pool)), Clocks.nanoClock(), new AtomicReference <CpuClock>(CpuClock.NOT_AVAILABLE), new AtomicReference <HeapAllocation>(HeapAllocation.NOT_AVAILABLE), NULL, LockTracer.NONE, Org.Neo4j.Io.pagecache.tracing.cursor.PageCursorTracerSupplier_Fields.Null, storageEngine, new CanWrite(), AutoIndexing.UNSUPPORTED, mock(typeof(ExplicitIndexStore)), EmptyVersionContextSupplier.EMPTY, ON_HEAP, new StandardConstraintSemantics(), mock(typeof(SchemaState)), mock(typeof(IndexingService)), mockedTokenHolders(), new Dependencies());

            StatementLocks statementLocks = new SimpleStatementLocks(new NoOpClient());

            transaction.Initialize(0, 0, statementLocks, KernelTransaction.Type.@implicit, loginContext.Authorize(s => - 1, GraphDatabaseSettings.DEFAULT_DATABASE_NAME), 0L, 1L);

            return(new Instances(transaction));
        }
Example #5
0
        private void SetUpMocks()
        {
            _database             = mock(typeof(Database));
            _databaseFacade       = mock(typeof(GraphDatabaseFacade));
            _resolver             = mock(typeof(DependencyResolver));
            _executionEngine      = mock(typeof(ExecutionEngine));
            _statementBridge      = mock(typeof(ThreadToStatementContextBridge));
            _databaseQueryService = mock(typeof(GraphDatabaseQueryService));
            _kernelTransaction    = mock(typeof(KernelTransaction));
            _statement            = mock(typeof(Statement));
            _request = mock(typeof(HttpServletRequest));

            InternalTransaction transaction = new TopLevelTransaction(_kernelTransaction);

            LoginContext loginContext = AUTH_DISABLED;

            KernelTransaction.Type  type = KernelTransaction.Type.@implicit;
            QueryRegistryOperations registryOperations = mock(typeof(QueryRegistryOperations));

            when(_statement.queryRegistration()).thenReturn(registryOperations);
            when(_statementBridge.get()).thenReturn(_statement);
            when(_kernelTransaction.securityContext()).thenReturn(loginContext.Authorize(s => - 1, GraphDatabaseSettings.DEFAULT_DATABASE_NAME));
            when(_kernelTransaction.transactionType()).thenReturn(type);
            when(_database.Graph).thenReturn(_databaseFacade);
            when(_databaseFacade.DependencyResolver).thenReturn(_resolver);
            when(_resolver.resolveDependency(typeof(QueryExecutionEngine))).thenReturn(_executionEngine);
            when(_resolver.resolveDependency(typeof(ThreadToStatementContextBridge))).thenReturn(_statementBridge);
            when(_resolver.resolveDependency(typeof(GraphDatabaseQueryService))).thenReturn(_databaseQueryService);
            when(_databaseQueryService.beginTransaction(type, loginContext)).thenReturn(transaction);
            when(_databaseQueryService.beginTransaction(type, loginContext, CUSTOM_TRANSACTION_TIMEOUT, TimeUnit.MILLISECONDS)).thenReturn(transaction);
            when(_databaseQueryService.DependencyResolver).thenReturn(_resolver);
            when(_request.Scheme).thenReturn("http");
            when(_request.RemoteAddr).thenReturn("127.0.0.1");
            when(_request.RemotePort).thenReturn(5678);
            when(_request.ServerName).thenReturn("127.0.0.1");
            when(_request.ServerPort).thenReturn(7474);
            when(_request.RequestURI).thenReturn("/");
        }
Example #6
0
 public override KernelTransaction BeginTransaction(KernelTransaction.Type type, LoginContext ignored, long timeout)
 {
     try
     {
         _availability.assertDatabaseAvailable();
         KernelTransaction kernelTx = _sourceModule.kernelAPI.get().beginTransaction(type, this._securityContext, timeout);
         kernelTx.RegisterCloseListener(txId => _threadToTransactionBridge.unbindTransactionFromCurrentThread());
         _threadToTransactionBridge.bindTransactionToCurrentThread(kernelTx);
         return(kernelTx);
     }
     catch (TransactionFailureException e)
     {
         throw new Org.Neo4j.Graphdb.TransactionFailureException(e.Message, e);
     }
 }
Example #7
0
 internal static KernelTransaction KernelTransaction(LoginContext loginContext)
 {
     return(KernelTransactionWithInternals(loginContext).Transaction);
 }
Example #8
0
//JAVA TO C# CONVERTER WARNING: 'final' parameters are ignored unless the option to convert to C# 7.2 'in' parameters is selected:
//ORIGINAL LINE: public AuthorizedRequestWrapper(final String authType, final String username, final javax.servlet.http.HttpServletRequest request, org.neo4j.internal.kernel.api.security.LoginContext loginContext)
        public AuthorizedRequestWrapper(string authType, string username, HttpServletRequest request, LoginContext loginContext) : base(request)
        {
            this._authType  = authType;
            this._principal = new DelegatingPrincipal(username, loginContext);
        }
Example #9
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.neo4j.kernel.api.KernelTransaction beginTransaction(org.neo4j.internal.kernel.api.Transaction_Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, long timeout) throws org.neo4j.internal.kernel.api.exceptions.TransactionFailureException
		 public override KernelTransaction BeginTransaction( [email protected]_Type type, LoginContext loginContext, long timeout )
		 {
			  _health.assertHealthy( typeof( TransactionFailureException ) );
			  KernelTransaction transaction = _transactions.newInstance( type, loginContext, timeout );
			  _transactionMonitor.transactionStarted();
			  return transaction;
		 }
Example #10
0
 protected internal virtual void SetupAuthManagerAndSubject()
 {
     UserManagerSupplier = new BasicAuthManager(UserRepository, PasswordPolicy, mock(typeof(AuthenticationStrategy)), new InMemoryUserRepository());
     Neo4jContext        = new BasicLoginContext(Neo4jUser, AuthenticationResult.SUCCESS);
 }
Example #11
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: public org.neo4j.kernel.api.KernelTransaction beginTransaction(org.neo4j.internal.kernel.api.Transaction_Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext) throws org.neo4j.internal.kernel.api.exceptions.TransactionFailureException
		 public override KernelTransaction BeginTransaction( [email protected]_Type type, LoginContext loginContext )
		 {
			  if ( !_isRunning )
			  {
					throw new System.InvalidOperationException( "Kernel is not running, so it is not possible to use it" );
			  }
			  return BeginTransaction( type, loginContext, _config.get( transaction_timeout ).toMillis() );
		 }
Example #12
0
 internal DelegatingPrincipal(string username, LoginContext loginContext)
 {
     this._username     = username;
     this._loginContext = loginContext;
 }
Example #13
0
 public override InternalTransaction BeginTransaction(KernelTransaction.Type type, LoginContext loginContext, long timeout, TimeUnit unit)
 {
     return(_graph.beginTransaction(type, loginContext, timeout, unit));
 }
Example #14
0
 public override InternalTransaction BeginTransaction(KernelTransaction.Type type, LoginContext loginContext)
 {
     return(_graph.beginTransaction(type, loginContext));
 }
 public BasicAuthenticationResult(LoginContext loginContext)
 {
     this._loginContext = loginContext;
 }
Example #16
0
 public virtual TransactionHandle NewTransactionHandle(TransactionUriScheme uriScheme, bool implicitTransaction, LoginContext loginContext, long customTransactionTimeout)
 {
     return(new TransactionHandle(_kernel, _engine, _queryService, _registry, uriScheme, implicitTransaction, loginContext, customTransactionTimeout, _logProvider));
 }