summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/cmscore
Commit message (Collapse)AuthorAgeFilesLines
* Fixed synchronization problem in CertificateRepository.ticket-365Endi Sukma Dewata2012-10-181-57/+43
| | | | | | | | Some synchronized methods in CertificateRepository may block modifyCeritifcateRecord() too long, so they have been moved back into CRLIssuingPoint and CertStatusUpdateThread. Ticket #313
* Added PKIPrincipal.Endi Sukma Dewata2012-10-182-26/+60
| | | | | | | | | | | Previously in PKIRealm the authentication token was stored in a thread local variable. This does not work for multiple operations executed using the same session because each operation may be handled by different threads. A new PKIPrincipal has been added to store the authentication token so that the threads can get the correct token for the session. Ticket #357
* Return to d9 behavior for RetrieveModificationsTaskAde Lee2012-10-111-3/+3
|
* Renamed escapeDN() into escapeRDNValue().Endi Sukma Dewata2012-09-271-20/+20
| | | | | | | The escapeDN() has been renamed into escapeRDNValue() for better clarity. Ticket #193
* Use getStatus servlet to provide startup statusAde Lee2012-09-211-0/+6
| | | | Ticket 314
* Changes to use standard dbuserAde Lee2012-09-192-0/+53
| | | | | | | | | | | | | | | | | We create a user that can be used to connect to the database using the subsystem cert for client auth. We identified this user, using the seeAlso attribute and provided certmap rules to this effect. For this user, we used to reuse the uid = user CA-hostname-port, which is already created for inter-system communication. But this is problematic if more than one dbuser exists, as the directory server may bind as the incorrect user. In any replication topology, there must be only one dbuser using the subsystem cert. To simplify things, we create a new user specifically for this purpose (pkidbuser), and we remove the seeAlso attribute from the older dbusers. A script is needed to convert existing dogtag 9 istances to use the new user, and set the relevant acls. This will be done in a separate commit.
* Added DN and filter escaping in UGSubsystem.Endi Sukma Dewata2012-09-191-26/+27
| | | | | | | The UGSubsystem has been modified to escape values used in DN or filter according to LDAP standard. Ticket #193
* Bugzilla Bug# 852855 - rhcs81 - remove unexpected anonymous binds to ↵Jack Magne2012-09-101-17/+19
| | | | internal db in cert status thread.
* Added proxy realm.Endi Sukma Dewata2012-09-051-167/+0
| | | | | | | | | | | | | | | | | CMS engine is a singleton and it's used by PKI realm to authenticate users accessing the subsystem. Since a Tomcat instance may contain multiple subsystems, each having separate realm, the PKI JAR links need to be moved into WEB-INF/lib so that they will run inside separate class loaders. Tomcat also requires that the authenticator and realm classes be available in common/lib. To address this a new package pki-tomcat.jar has been added. The package contains the authenticator and a proxy realm. When the subsystems start running, they will register their own realms into the proxy realms such that the authentications will be forwarded to the appropriate subsystems. Ticket #89
* Fixed anon connection factory to make no anonymous bindsAde Lee2012-08-312-14/+24
| | | | This allow server to come up with DS where anon binds are turned off.
* Fixed exceptions during shutdown.Endi Sukma Dewata2012-08-2811-28/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | The shutdown() methods in several classes have been fixed to allow more graceful shutdown and clean restart. There are two types of object attributes that need to be handled differently. Attributes that are initialized by the constructor should not be nulled during shutdown because they won't be reinitialized during restart. If they require a cleanup (e.g. emptying collections, closing LDAP connections) it's not necessary to check for null before calling the cleanup method because they're never null. For attributes that are initialized during init(), it may not be necessary to do a cleanup or null the attribute since they might still be used by other threads and they will be reinitialized during restart so the old objects will be garbage collected. If they do need a cleanup they should be checked for null because they might still be null due to init() failure or initialization conditionals. If the attributes are initialized conditionally, the logic has been modified to ensure the attributes are either initialized or set to null. Ticket #247
* Added default for pidDir for dogtag 9 instancesAde Lee2012-08-171-1/+2
|
* Refactored PKI JNDI realm.Endi Sukma Dewata2012-07-313-947/+407
| | | | | | | | | The PKI JNDI realm has been modified to utilize the authentication and authorization subsystems in PKI engine directly. It's no longer necessary to define the LDAP connection settings in Tomcat's configuration files. Ticket #126
* Added SSL authenticator with fallback.Endi Sukma Dewata2012-07-311-0/+167
| | | | | | | | A custom Tomcat authenticator has been added to authenticate users using client certificate if provided, otherwise it will fallback to BASIC/FORM authentication. Ticket #107
* Patch 25 - Misc FixesAbhishek Koneru2012-07-256-8/+4
|
* PKI Deployment ScriptletsMatthew Harmsen2012-07-191-9/+12
| | | | | | | | | | | | | | | | | | | | * Integration of Tomcat 7 * Introduction of dependency upon tomcatjss 7.0 * Removal of http filtering configuration mechanisms * Introduction of additional slot substitution to support revised filesystem layout * Addition of 'pkiuser' uid:gid creation methods * Inclusion of per instance '*.profile' files * Introduction of configurable 'configurationRoot' parameter * Introduction of default configuration of 'log4j' mechanism (alee) * Modify web.xml to use new Application classes to bootstrap servers (alee) * Introduction of "Wrapper" logic to support Tomcat 6 --> Tomcat 7 API change (jmagne) * Added jython helper function to allow attaching a remote java debugger (e. g. - eclipse)
* Misc Fixes Remaining part of the code.Abhishek Koneru2012-07-187-11/+9
|
* NO_HASHCODE_OVERRIDDENAbhishek Koneru2012-07-125-12/+16
|
* SE_BAD_FIELD, MIGHT_IGNORE , STATIC_INNER_CLASSAbhishek Koneru2012-07-106-14/+17
|
* Coverity CATCH_REXCEPTION and UNREAD_FIELD_CASESAbhishek Koneru2012-07-068-109/+105
|
* LeftOver Cases in Resource Leaks and NULL_RETURNSAbhishek Koneru2012-07-023-7/+13
|
* Fixes for Guarded_By_Violation issues shown in CoverityAbhishek Koneru2012-07-0210-17/+24
|
* Fix for handling null object value passed to DBAttrMapper as part of ↵Abhishek Koneru2012-06-2916-59/+113
| | | | Coverity fix for Forward NULL cases in DogTag 10.
* Fixes for Forward Null Cases in Coverity for DogTag10Abhishek Koneru2012-06-295-92/+76
| | | | Addressed review coments.
* Fixed problem removing user certificate.Endi Sukma Dewata2012-06-271-45/+59
| | | | | | | | | | Generally the user LDAP entry does not contain a seeAlso attribute unless it's a special database user. The UGSubsystem.removeUserCert() would fail because it tried to remove the seeAlso attribute. Now the code has been fixed to remove the seeAlso using a separate modify operation and ignore the error if it fails due to missing attribute. Ticket #182
* Fixes for Coverity issues of type Resource Leaks - RemainingAbhishek Koneru2012-06-254-25/+63
|
* Fixes for Coverity Issues of type Null Returns - Part 3Abhishek Koneru2012-06-203-13/+36
|
* Fixes for Coverity issues of type Stringbuffer, NO_EQUALS_METHOD , ↵Abhishek Koneru2012-06-155-45/+56
| | | | REVERSE_INULL,Wrong_Map_Iterators
* Fixes for NULL_RETURNS Coverity Issues - Part 2Abhishek Koneru2012-06-145-3/+19
|
* Minor Fix In a CertificateInfo classAbhishek Koneru2012-06-051-2/+2
|
* Fixes for NULL_RETURN cases review commentsAbhishek Koneru2012-06-053-22/+18
|
* Fixes for Null_Returns Cases - 1 For CommitAbhishek Koneru2012-06-0511-48/+51
|
* Patch with fixes for review comments 0529Abhishek Koneru2012-06-012-3/+4
|
* Fixes for Coverity Issues CALL_SUPER,UNCONFIRMEDCAST,DEAD_STORE,TOSTRING_ARRAYAbhishek Koneru2012-06-015-9/+18
|
* Added group REST service.Endi Sukma Dewata2012-05-311-0/+27
| | | | | | | The group REST service is based on UsrGrpAdminServlet. It provides an interface to manage groups and group members. Ticket #160
* Added user REST service.Endi Sukma Dewata2012-05-311-1/+1
| | | | | | | The user REST service is based on UsrGrpAdminServlet. It provides an interface to manage users and user certificates. Ticket #160
* Added Auditor service.Endi Sukma Dewata2012-05-292-0/+218
| | | | | | | | | A new Auditor service has been added to replace the audit service that was previously only available to subclasses of AdminServlet. The new service can be used by other components including REST services. The AdminServlet will be modified to use the Auditor service separately. Ticket #160
* Patch for fixes for Review CommentsAbhishek Koneru2012-05-2410-28/+26
|
* Fixes for Coverity Defects of Category : ↵Abhishek Koneru2012-05-241-7/+7
| | | | FB.SBSC_USE_STRINGBUFFER_CONCATENATION --Remaining
* Fixes for Coverity Defects of Category : FB.SBSC_USE_STRINGBUFFER_CONCATENATIONAbhishek Koneru2012-05-2414-134/+129
|
* Fixes for Coverity Defects of Category : FB.DM_NUMBER_CTOR, ↵Abhishek Koneru2012-05-243-3/+5
| | | | FB.DM_STRING_CTOR, FB.DM_STRING_VOID_CTOR
* Fixes for Coverity Defects of Category : FB.DM_BOOLEAN_CTORAbhishek Koneru2012-05-2415-50/+45
|
* Fixes for Coverity Defects of Category : FB.BC_VACUOUS_INSTANCEOFAbhishek Koneru2012-05-244-15/+6
|
* JNDI realm enhancement to handle multiple entry ACLs.Jack Magne2012-05-041-4/+10
| | | | | | Currently the realm only returns the last acl result in a multiple entry ACL. Since most of them only have one entry, this is mistly ok. This simple fix allows the code to handle multiple entries correctly. Ticket #123.
* Replaced key status update thread with executor service.Endi Sukma Dewata2012-04-192-82/+95
| | | | | | | The Thread.stop() is deprecated, so the key status update thread is now implemented with executor service to allow stopping the task gracefully. Ticket #3
* Removed unused private fields.Endi Sukma Dewata2012-04-1228-98/+26
| | | | | | | Most of unused private fields have been removed because they generate warnings in Eclipse. Some are kept because it might be useful later. Ticket #139
* Removed unnecessary type casts.Endi Sukma Dewata2012-04-0951-304/+252
| | | | | | Unnecessary type casts have been removed using Eclipse Quick Fix. Ticket #134
* Removed whitespaces from Java code.Endi Sukma Dewata2012-04-09154-751/+751
| | | | | | | | Whitespaces in Java code have been removed with the following command: find . -not -path .git -name *.java -exec sed -i 's/[[:blank:]]\+$//' {} \; Ticket #134
* Replaced deprecated LDAPVirtualListResponse.parseResponse().Endi Sukma Dewata2012-04-091-19/+35
| | | | | | | The VLV control can be obtained directly from the list of response controls by checking its type. Ticket #3
* Fix for Bug 745278 - [RFE] ECC encryption keys cannot be archived.Christina Fu2012-04-051-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the ECC plan and the different phases, please refer to http://pki.fedoraproject.org/wiki/ECC_in_Dogtag Design for each phase is on the same wiki page. Note: the designs beyond phase 2 were more like a brain dump. Although I said "Do Not Review," you are free to take a peak at what's intended down the road. I will go back and take a closer look and refine/adjust the designs when I begin implementation for each new phase. What you need to know: * Problem 1 - nethsm issue: On the server side, if you turn on FIPS mode, in addition to nethsm, you need to attach certicom as well to have ECC SSL working on the server side. This problem has already been reported to Thales last year and they said they'd look into putting the item on their next release. Recently through a different contact, we learned there might be a way to "turn it on" (still waiting for their further instruction) * Problem 2- Certicom issue: This is a show-stopper for deployment. Initially, on the client side, I used Kai's special version of Xulrunner/Firefox, attached to Certicom token, so that the CRMF requests can be generated with key archival option. However, I encountered (or, re-encountered) an issue with certicom token. Certicom generates ECC keys with the wrong format (not PKCS7 conforming), which makes ECC key archival impossible on the server side if you use non-certicom token with DRM (but we expect an HSM in most product deployment). I have contacted Certicom for this issue, and they confirmed that they indeed have such issue. We are hoping they will fix it. But then you might ask, "I thought I saw some ECC enrollment profiles/javascripts being checked in? How were the tests done?" The tests for those profiles were done against this ECC key archival/recovery DRM prototype I implemented last year (needs to be turned on manually in 8.1), where I "cheated" (yeah, that's why it's called a prototype) by decrypting the private key in the CRMF on DRM, and then manipulating the byte array to strip off the offending bytes before archival. In the real, non-prototype implementation, which is what's in this patch, for security reasons, private keys are unwrapped directly onto the token during key archival, so there is no way to manipulate the keys in memory and bypass the Certicom issue. A word about Kai's special version of Xulrunner/Firefox. It is not yet publicly available (due out in Firefox 10.0.4 on RHEL 5.8). * Problem 3- Firefox with nethsm issue: Another option was to connect Kai's special version firefox with an HSM to test my DRM/JSS code. However, for whatever reason, I could not get SSL going between such Firefox and ECC CA ( I did not try very hard though, as I have one other option -- writing my own ECC CRMF generation tool. I might come back to try the nethsm Firefox idea later) My solution (how I work on this official implementation): * I hacked up a ECC CRMF tool by taking the CRMFPopClient (existing in current releases), gutting out the RSA part of the code, and replacing it with ECC code. I call it CRMFPopClientEC. Two types of ECC key pairs could be generated: ECDSA or ECDH (That's another benefit of writing my own tool -- I don't know if you can select which type to generate in the Javascript... maybe you can, I just don't know). I'm in no way condoning archival of signing keys!! This is just a test tool. This tool takes a curve name as option (along with others), generates an ECC key pair, crafts up an CRMF request with key archival option, and sends request directly to the specified CA. You will see a "Deferred" message in the HTML response (see attachment for example) Once CA agent approves the request, the archival request goes to DRM and the user private key is archived. For recovery, DRM agent selects key recovery, etc, and you get your pkcs12. I did some sanity test with the pkcs12 recovered: * Import the recovered pkcs12 into a certicom library: pk12util -d . -h "Certicom FIPS Cert/Key Services" -i userEC.p12 I also tested by retrieving a p12, importing it into a browser, and adding the user as an agent and the user could act as agent via ssl client auth to the CA. Finally, much of the RSA-centric code had been cleared out of the way at the time when I worked on the DRM ECC prototype, so you don't see much of that in this round. How do you test? Well, unless you want to use my CRMFPopClientEC tool hooked up with a nethsm (like I did), or write your own tool, you can't really test it until Certicom fixes their issue. (BTW CRMFPopClientEC can also be changed to work with ceriticom, although you would run into the same issue I mentioned above)