03 May, 2013

1 commit

  • 
    
    Implemented the HTTP access logger by taking inspiration from other loggers.
    Configured the new logger everywhere other loggers are configured.
    Logged the HTTP request in several places to cover all cases (happy paths, errors, etc.).
    
    
    
    config.ldif, 02-config.ldif, HTTPAccessLogPublisherConfiguration.xml, FileBasedHTTPAccessLogPublisherConfiguration.xml, HTTPAccessLogPublisherCfgDefn.properties, FileBasedHTTPAccessLogPublisherCfgDefn.properties: ADDED
    Added 2 new objectClasses HTTPAccessLogPublisherConfiguration and FileBasedHTTPAccessLogPublisherConfiguration.
    
    config.properties:
    Added new error messages for the HTTP access logger.
    
    HTTPAccessLogger.java, HTTPAccessLogPublisher.java, TextHTTPAccessLogPublisher.java, HTTPRequestInfo.java: ADDED
    HTTPRequestInfo.log() prevents double logging.
    
    CollectClientConnectionsFilter.java:
    Logged the request info when HttpServletResponse.setStatus(), sendAuthenticationFailure() and onFailure() are called.
    Pushed more data to the HTTPRequestContext + switched to use the more specific HttpServletRequest/HttpServletResponse
    
    SdkConnectionAdapter.java:
    Logged the request info when close() is called.
    
    LoggerConfigManager.java, TestCaseUtils.java:
    Configured the HTTP access logger.
    
    InProcessServerController.java: TO BE REMOVED (by Matt on the native packaging branch)
    
    
    
    Sample log:
    localhost bjensen [03/May/2013:10:14:54 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 500 "curl/7.27.0"
    localhost bjensen [03/May/2013:10:15:05 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 200 "curl/7.27.0"
    localhost  [03/May/2013:10:15:14 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 200 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0"
    localhost  [03/May/2013:10:16:40 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 401 "curl/7.27.0"
    localhost  [03/May/2013:10:16:50 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 200 "curl/7.27.0"
    localhost  [03/May/2013:10:16:51 +0200] "GET /favicon.ico/null HTTP/1.1" 404 "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:20.0) Gecko/20100101 Firefox/20.0"
    localhost  [03/May/2013:10:17:10 +0200] "GET /users/_queryFilter=true&_prettyPrint=true HTTP/1.1" 200 "curl/7.27.0"
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8832 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

25 Apr, 2013

1 commit

  • 
    Consolidated common code for the *Logger classes prior to implementing the HTTP access log.
    
    
    AbstractLogger.java: ADDED
    Pulled up from the *Logger classes.
    
    AccessLogger.java, ErrorLogger.java, DebugLogger.java:
    Now inherit from AbstractLogger.
    Removed code pulled up into AbstractLogger: initializeErrorLogger(), isConfigurationAddAcceptable(), applyConfigurationAdd(), applyConfigurationChange(), isConfigurationDeleteAcceptable(), applyConfigurationDelete(), isJavaClassAcceptable(), getErrorPublisher().
    Added the loggerStorage static variable.
    Added a ctor + implemented getJavaClassPropertyDefinition() and getStorage().
    
    LoggerConfigManager.java:
    Replaced the calls to the various initialize*Logger() methods with calling initializeLogger().
    Extracted method getLoggerInstance() and used it in all the other methods.
    
    
    LogPublisherConfiguration.xml:
    Pulled up the declaration of "java-class" property here from sub configurations.
    
    AccessLogPublisherConfiguration.xml, DebugLogPublisherConfiguration.xml, ErrorLogPublisherConfiguration.xml, LogPublisherConfiguration.xml:
    Replaced the declaration of "java-class" property by a property-override.
    
    StaticUtils.java:
    Added close(Collection<Closeable>)
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8802 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

22 Apr, 2013

1 commit

  • 
    
    Limited the number of concurrent operations per client connection.
    
    
    
    SdkConnectionAdapter.java:
    Changed the queueing strategy to BoundedWorkQueueStrategy.
    
    BoundedWorkQueueStrategy.java: ADDED
    
    AbandonOperationWrapper.java, xtendedOperationWrapper.java, UnbindOperationWrapper.java: ADDED
    
    DirectoryServer.java:
    Extracted checkCanEnqueueRequest() from enqueueRequest().
    Added tryEnqueueRequest().
    
    WorkQueue.java:
    Pulled computeNumWorkerThreads() here from sub classes.
    Added abstract method trySubmitOperation().
    Added abstract getter getNumWorkerThreads().
    
    ParallelWorkQueue.java:
    Implemented trySubmitOperation() and getter getNumWorkerThreads().
    Renamed getNumWorkerThreads() to computeNumWorkerThreads() + moved it to WorkQueue.
    
    TraditionalWorkQueue.java:
    Implemented trySubmitOperation() and getter getNumWorkerThreads().
    Renamed getNumWorkerThreads() to computeNumWorkerThreads() + moved it to WorkQueue.
    Extacted overloaded method submitOperation(Operation, boolean) from submitOperation(Operation).
    
    
    
    ClientConnection.java, JmxClientConnection.java, HTTPClientConnection.java, InternalClientConnection.java, MockClientConnection.java, LDAPClientConnection.java:
    Added abstract method isConnectionValid() + implemented it in subclasses.
    
    
    
    02-config.ldif, HTTPConnectionHandlerConfiguration.xml:
    Added property max-concurrent-ops-per-connection
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8775 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

12 Apr, 2013

1 commit

  • Added the possibility for the HTTP Connection Handler to accept unauthenticated requests.
    
    CollectClientConnectionsFilter.java:
    Extracted method getAuthenticationInfo() and added support for unauthenticated requests here.
    
    CollectClientConnectionsFilterTest.java:
    Added tests.
    
    HTTPConnectionHandler.java:
    Added acceptUnauthenticatedRequests().
    
    config.ldif, 02-config.ldif, HTTPConnectionHandlerConfiguration.xml, HTTPConnectionHandlerCfgDefn.properties:
    Added property 'ds-cfg-authentication-required' with default 'true' to HTTP Connection Handler
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8733 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

25 Mar, 2013

1 commit

  • Added support for using the Rest2LDAP servlet from OpenDJ HTTPConnectionHandler.
    
    
    
    HTTPConnectionHandler.java:
    Added support for using the Rest2LDAP servlet + removed the FakeServlet.
    Added the JSON_MAPPER constant to parse the JSON config file for Rest2LDAP.
    Added getClientConnectionsMap() getter.
    Added getConnectionFactory() method, heavily inspired from org.forgerock.opendj.rest2ldap.servlet.Rest2LDAPConnectionFactoryProvider.getConnectionFactory().
    In startHttpServer(), silenced Grizzly logging + set the IOThreadStrategy to be single threaded + changed the access path to the servlet.
    
    CollectClientConnectionsFilter.java:
    Added support for using the Rest2LDAP servlet.
    Removed clientConnections instance member, now get this value from the HTTPConnectionHandler.
    
    config.ldif, 02-config.ldif, HTTPConnectionHandlerConfiguration.xml, HTTPConnectionHandlerCfgDefn.properties:
    Added ds-cfg-config-file property to ds-cfg-http-connection-handler objectClass.
    
    http-config.json: ADDED (copied from opendj-rest2ldap-servlet project)
    
    
    ivy.xml:
    Added dependencies to Rest2LDAP.
    
    ivysettings.xml:
    Added support for updating SNAPSHOTS.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8638 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

20 Mar, 2013

1 commit

  • Added the HTTPConnnectionHandler implemented using Grizzly.
    Added support for all configuration similar to the LDAPConnectionHandler.
    Missing support for ds-cfg-keep-stats and ds-cfg-num-request-handlers.
    
    
    config.ldif, 02-config.ldif:
    Added new entry for HTTP connection handler + defaults.
    
    HTTPConnectionHandlerCfgDefn.properties, HTTPConnectionHandlerConfiguration.xml: ADDED
    
    LDAPConnectionHandlerConfiguration.xml:
    Moved properties common to HTTPConnectionHandlerConfiguration.xml to Package.xml .
    
    protocol*.properties:
    Merged protocol messages between LDAP, HTTP and JMX. Made them non LDAP specific.
    Added 2 new protocol messages for HTTP.
    
    
    CollectClientConnectionsFilter.java, HTTPClientConnection.java, HTTPConnectionHandler.java, package-info.java: ADDED
    
    JmxClientConnection.java, JmxConnectionHandler.java, LDAPClientConnection.java:
    Used common protocol messages.
    
    LDAPConnectionHandler.java
    Used common protocol messages.
    Extracted method configureSSL()
    Simplified the code in getEnabledSSLCipherSuites() and getEnabledSSLProtocols() and protected against a multi threaded change ofg the SSL engine by using a local copy.
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8613 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     

14 Mar, 2013

1 commit


20 Feb, 2013

1 commit


21 Dec, 2012

2 commits


19 Dec, 2012

1 commit


12 Dec, 2012

1 commit


16 Nov, 2012

1 commit

  • git-svn-id: https://svn.forgerock.org/opendj/trunk@8328 41b1ffd8-f28e-4786-ab96-9950f0a78031
    mark
     

08 Nov, 2012

1 commit


10 Aug, 2012

1 commit


07 Aug, 2012

1 commit


13 Jun, 2012

1 commit

  • …ing/decoding entries and protocol messages
    
    * introduce global option max-internal-buffer-size (default 32KB) for managing the maximum size of internal buffers
    * use simpler ASN1Writer implementation for LDAP client connections
    * minor fix to SASL confidentiality and integrity for large packets.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@8046 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew
     

14 May, 2012

2 commits


11 May, 2012

1 commit

  • A huge thanks to Manuel Gaupp for this contribution.
    
    In addition to the original contributed change I have made the following alterations:
    
    * make the CertificateSyntax strictness configurable. By default the syntax will enforce the syntax, but this can be disabled if needed
    
    * add a new method "isHumanReadable" to AttributeSyntax and AttributeType classes in order to make it easier to determine whether or not a syntax/type is human readable. This can be used in order to determine whether or not an attribute value can be included in log messages, for example.
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@7979 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew
     

19 Mar, 2012

1 commit


23 Feb, 2012

1 commit


12 Dec, 2011

1 commit


08 Dec, 2011

1 commit


24 Nov, 2011

1 commit


09 Nov, 2011

1 commit


03 Nov, 2011

2 commits


24 Oct, 2011

1 commit


20 Oct, 2011

1 commit


14 Oct, 2011

2 commits

  • Add support for changing the format of the access log:
    
    * configurable timestamp format
    * enable logging of request and response control OIDS
    * change the format to a "combined" mode where operations are logged using a single log record rather than individual request and response records.
    
    Also fixed a bug in the time thread which prevented applications from deregistering time formatters.
    
    
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@7379 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew
     
  • * Rename client-* properties to connection-*
    * Remove default behavior aliases since they clutter up the display of a filtering criteria in dsconfig interactive mode
    * Make protocol matching string based instead of enumeration: this will be forwards compatible with new protocols as they are added
    * Fix and optimize protocol and port matching.
    
    
    
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@7377 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew
     

13 Oct, 2011

2 commits


11 Oct, 2011

1 commit


07 Oct, 2011

2 commits


30 Sep, 2011

1 commit

  • Many thanks to Nemanja Lukic and his colleagues at Profiq S.R.O for this kind contribution.
    
    The contribution has been modified as follows:
    
    *) use the admin framework for validating the attribute renaming mapping
    *) relax the constraint that attribute names must conform to RFC 4512 since non-compliant attribute names are good candidates for removing and renaming
    *) modify the rename target attribute validation to support attribute descriptions
    *) added schema element definitions for configuration attributes
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@7332 41b1ffd8-f28e-4786-ab96-9950f0a78031
    matthew
     

28 Sep, 2011

2 commits