Project

General

Profile

  • svn:keywords: Author Date RCSfile

# Date Author Comment
9051 12/31/2014 03:49 PM Jing Tao

Add the code to support the sereis id on isAuthorized and systemMetadataChanged method.

9050 12/30/2014 04:34 PM Jing Tao

Add the code to handle the sid in the delete and archive method.

9047 12/30/2014 11:04 AM Jing Tao

Add a check that the sid shouldn't equals the pid in the update and create method.

9045 12/29/2014 05:06 PM Jing Tao

Add the enforcement for the sid in the create method.

9041 12/29/2014 12:23 PM Jing Tao

Add the code to handle the deleted identifier in the checking v1 system metadata existing method.

9037 12/24/2014 09:47 AM Jing Tao

Implement the series id in the getSystemMetadata method.

9036 12/23/2014 04:53 PM Jing Tao

Looking for sid for the method describe.

9033 12/22/2014 02:31 PM Jing Tao

Refactor the code to check a pid exists in the v1 api.

9032 12/19/2014 04:59 PM Jing Tao

Modified the get method to handle the sid in the v2 api.

9024 12/16/2014 06:50 PM Jing Tao

Fixed a bug that the method getLocalId swallowed an exception incorrectly in the IdentifierManager.

9023 12/12/2014 04:25 PM Jing Tao

Fixed a bug that some service failure exceptions were handled as the NotFound exception.

9017 12/11/2014 03:24 PM Jing Tao

1. In the identifierExists method, the code to check if the identifier exist on the serial-id fields of the system metadata table.
2. Fixed a bug on the identifierExists - it considered an identifier didn't exist when the determining process threw an exception.

8971 11/17/2014 04:30 PM Jing Tao

Add delete log for data objects on CNs.

8948 10/31/2014 05:36 PM Jing Tao

Write the input stream into the file system without alteration in dataone create and update methods.

8903 10/15/2014 04:34 PM Jing Tao

Added the code to inform users the pid was deleted in the NotFound exception.

8901 10/14/2014 06:11 PM Jing Tao

Added the code to check if a not-found object was deleted in the isAuthorized method.

8826 08/06/2014 01:09 PM ben leinfelder

update to use v2 types for indexing

8810 07/23/2014 04:19 PM ben leinfelder

add support for v2 DataONE API.

8647 02/25/2014 04:14 PM ben leinfelder

recursively submit obsoleted objects for indexing when instructed. https://projects.ecoinformatics.org/ecoinfo/issues/6424

8464 01/07/2014 01:56 PM ben leinfelder

Unify solr indexing with an IndexTask that is added to the queue -- allows us to send more than just the systemMetadata to the indexer. Initially this is for READ event counts for each document. https://projects.ecoinformatics.org/ecoinfo/issues/6346

8360 10/31/2013 01:07 PM Jing Tao

Add the methond named isAuthoritativeMNodeAdmin method. It applies to both CN and MN methods.

8314 10/14/2013 03:22 PM Jing Tao

Fixed a bug that the group information couldn't be retrived from the session.

7862 07/08/2013 06:19 PM ben leinfelder

comment out the index queue call when archive() is called - I think it is causing the duplicate events for the listener. https://projects.ecoinformatics.org/ecoinfo/issues/6030

7816 06/21/2013 11:11 AM ben leinfelder

correct regex for whitespace in D1 identifier.

7812 06/20/2013 04:49 PM ben leinfelder

use an independent ISet<SystemMetadata> structure to communicate objects that should be indexed by metacat-index. https://projects.ecoinformatics.org/ecoinfo/issues/5943

7439 11/29/2012 04:52 PM ben leinfelder

limit /log and /object calls to configurable maximum count for paging. defaults to existing Metacat value of 7000

7430 11/23/2012 10:02 AM ben leinfelder

no need to mark SM as archived now that DocumentImpl.delete() does it.
https://redmine.dataone.org/issues/3406

7417 11/07/2012 02:53 PM ben leinfelder

Implement MNQuery for "pathquery" engine. Optionally include guid in the pathquery results (https://redmine.dataone.org/issues/3083)

7398 10/08/2012 11:09 AM ben leinfelder

include the subjects we are testing for authentication.
https://redmine.dataone.org/issues/2778

7355 08/15/2012 03:46 PM ben leinfelder

make sure data objects correctly use force replicate with action "insert"
https://redmine.dataone.org/issues/3138

7330 07/26/2012 12:08 PM ben leinfelder

check if the caller is the Node admin (the member node calling itself) as well as the existing check for the CN calling the service. Both of those callers should be given full admin rights.

7318 07/17/2012 01:34 PM ben leinfelder

check for invalid (!) pids. thanks, M. Reyes for catching this
https://redmine.dataone.org/issues/3047

7315 07/17/2012 11:09 AM ben leinfelder

check for whitespace in identifiers during create() and update()
https://redmine.dataone.org/issues/3047

7285 07/02/2012 12:06 PM ben leinfelder

first pass: DataONE-specific log retrieval to avoid java-based post-processing.

7244 06/06/2012 10:01 AM Chris Jones

Add debug logging to delete() to understand why we're getting InsufficientKarmaException.

7236 06/05/2012 02:07 PM Chris Jones

Since we already have determined access via isAuthorized() and isAdminAuthorized(), act as the Metacat administrator during calls to DocumentImpl.delete() in archive(), passing in null username and group.

7234 06/04/2012 08:49 PM ben leinfelder

restrict getLogRecrods (both MN and CN) to be called only by admin users (the CN)
https://redmine.dataone.org/issues/2855

7184 05/23/2012 09:57 AM ben leinfelder

include pidFilter handling - only matches the complete pid. Issues a warning in the Metacat logs when pidFilter cannot be applied but allows the call to getLogs() to return as though there was no pidFilter given.
https://redmine.dataone.org/issues/2798

7162 05/02/2012 08:58 AM ben leinfelder

handle authorization for delete() differently for CN vs MN.
On the CN, only the CN (or tbd admin user) can call it.
On the MN, both the CN (or admin user) and the same MN can call it.

7159 05/01/2012 02:48 PM ben leinfelder

add Session-less archive() method

7157 05/01/2012 11:14 AM ben leinfelder

only admin users can call MN/CN.delete(). This is limited to any CN and only the MN that is calling itself

7156 05/01/2012 10:47 AM ben leinfelder

update the sysmeta data modified when setting archived=true
https://redmine.dataone.org/issues/882

7150 04/30/2012 04:03 PM ben leinfelder

optionally remove the document/data file from the filesystem completely when 'deleting' it.
https://redmine.dataone.org/issues/2677

7149 04/30/2012 03:42 PM ben leinfelder

newer d1 jars that include shared AuthUtilsmethod for isAuthorized() consistency
https://redmine.dataone.org/issues/2661

7148 04/30/2012 03:35 PM ben leinfelder

implement MN and CN.archive() method -- really just the existing delete() methods.
https://redmine.dataone.org/issues/2674
https://redmine.dataone.org/issues/2675

7147 04/30/2012 03:05 PM ben leinfelder

call MN.delete() for each replica when CN.delete() is called
https://redmine.dataone.org/issues/2676

7146 04/30/2012 02:20 PM ben leinfelder

defer to AuthUtils for flattening out the equivIdent subject list.
https://redmine.dataone.org/issues/2661

7145 04/27/2012 10:24 AM ben leinfelder

check normal access control rules for getSystemMetadata before deferring to MN replica information that may grant MNs additional access to the SM.
https://redmine.dataone.org/issues/2656

7142 04/19/2012 02:04 PM ben leinfelder

remove extraneous pid and permission parameters from isAdminAuthorized() method and make public so that it can be called in other locations - namely before our asynchronous replicate() implementation on the MN.

7139 04/18/2012 04:04 PM ben leinfelder

check for empty null (missing) node.subjectList. This should probably be a required element in the D1 schema, but it appears not. (ORNL entry was missing subjects in cn-dev environment)

7136 04/17/2012 09:20 AM ben leinfelder

needed to initialize the nodeList that stores matching nodes (by subject) -- this was the source of a NPE when we had a matching node subject.

7134 04/13/2012 04:40 PM Chris Jones

As Ben suggested, don't compare to the node list if there are no replicas listed. This reduces the number of calls to listNodes() on the CN.

7133 04/13/2012 04:32 PM Chris Jones

Minor logging change in throwing ServiceFailure when Hazelcast throws a RuntimeException.

7132 04/13/2012 04:07 PM Chris Jones

Modify getSystemMetadata() to allow nodes that are listed as replicas to access the system metadata. Use the Session.Subject to find a list of nodes from the CN that match the subject, and compare those node ids to the listed replica node ids. Add listNodesBySubject() helper method to do so.

7128 04/09/2012 03:18 PM ben leinfelder

add a parameter for optionally writing EML-embedded access control rules to the Metacat DB.
https://redmine.dataone.org/issues/2584
https://redmine.dataone.org/issues/2583

7122 04/06/2012 01:52 PM ben leinfelder

additional debug logging for tracking down MN replication errors

7101 03/28/2012 11:08 AM ben leinfelder

change ordering of getLogRecords() parameter -- pidFilter is in the middle now

7099 03/27/2012 04:35 PM ben leinfelder

upgrade to latest RC in libclient and common jars -- includes updated getLogRecords and new mn.generateIdentifier method

7083 03/19/2012 06:14 PM Chris Jones

Don't check for populated obsoletes and obsoletedBy fields during CN.create(), only MN.create(). The CN should expect that the MN has populated this field because of existing revision information, and should trust the MN information. Addresses https://redmine.dataone.org/issues/2507.

7079 03/19/2012 10:12 AM ben leinfelder

use isAdminAuthorized() to check access to CN.create(). Note this method takes a pid and permission parameter and neither is used. Also removed the NotFound exception because it would never come up.

7077 03/19/2012 09:52 AM ben leinfelder

include CN.delete()
https://redmine.dataone.org/issues/2506

7072 03/15/2012 12:10 PM Chris Jones

Add some debugging statements in isAuthorized().

7069 03/15/2012 08:08 AM ben leinfelder

check for session when checking administrative authorization

7067 03/14/2012 11:57 AM Chris Jones

Incorporate isAdminAuthorized() into isAuthorized() for blanket CN access to objects.

7061 03/13/2012 12:19 PM ben leinfelder

transitive properties for mapped subjects:
-group membership
-verified flag
https://redmine.dataone.org/issues/2430
https://redmine.dataone.org/issues/2432

7060 03/13/2012 11:24 AM ben leinfelder

check group membership defined at group level (in addition to membership defined as part of of the Person level)
https://redmine.dataone.org/issues/2429

7059 03/13/2012 10:43 AM ben leinfelder

logging for permission checks - trying to nail down details of MN checking

7058 03/13/2012 10:08 AM ben leinfelder

use Event.CREATE.xmlValue() when converting "insert" to "create"
http://redmine.dataone.org/issues/2471

7049 03/08/2012 02:21 PM ben leinfelder

translate "insert" events in Metacat as Event.CREATE events ("create") for DataONE
https://redmine.dataone.org/issues/2461

7047 03/08/2012 10:42 AM ben leinfelder

log record paging:
-use start and count parameters
-if start+count exceeds the total number of records, then only return from start to the end of the list
-if start exceeds total record count, start at the end of the list (will be empty list)
https://redmine.dataone.org/issues/2458

7044 03/06/2012 08:26 PM ben leinfelder

catch additional NotFound exception for: "do not include log entries for documents that the caller is not allowed to read." https://redmine.dataone.org/issues/2444

7042 03/06/2012 01:41 PM ben leinfelder

do not include log entries for documents that the caller is not allowed to read. https://redmine.dataone.org/issues/2444

7041 03/06/2012 01:35 PM ben leinfelder

use revision provided in the docid when looking up guid. had been using latest revision which I think incorrectly reports on the log history.
noticed this when looking at: https://redmine.dataone.org/issues/2444

7039 03/05/2012 06:30 PM Chris Jones

A minor change to isAuthorized() - compare each Person in the SubjectInfo (not just the primary Subject) since each person could have an equivalent identity mapped to the primary Subject. Add debug logging for the comparison.

7038 03/05/2012 04:36 PM ben leinfelder

added debug logging
https://redmine.dataone.org/issues/2429

7037 03/05/2012 04:27 PM ben leinfelder

check if verified flag is null before evaluating (NPE during MN Auth test)
https://redmine.dataone.org/issues/2429

7030 02/24/2012 02:21 PM Chris Jones

Globally change the property 'dataone.memberNodeId' to 'dataone.nodeId'. This is more useful for both MNs and CNs implemented in Metacat. Also, change D1NodeService.getLogRecords() to return log entries with the actual node id rather than the IP address (looks like a cut/paste error)....

7029 02/24/2012 09:46 AM ben leinfelder

throw InvalidToken when an invalid Permission is passed in. THis requires that internal calls to the method also check for this exception.
https://redmine.dataone.org/issues/2388

7024 02/22/2012 02:27 PM ben leinfelder

only generate system metadata when the call comes from the legacy Metacat API, not the D1 API.
https://redmine.dataone.org/issues/2362 (I think this was the culprit)

7017 02/20/2012 12:38 PM ben leinfelder

remove ID mapping when a create()/"insert" call fails so that subsequent calls do not return an IdentifierNotUnique error. In this case it was due to invalid XML.
https://redmine.dataone.org/issues/2341

7016 02/20/2012 12:20 PM ben leinfelder

use RC-3 DataONE jars and fix compilation error that arose. https://redmine.dataone.org/issues/2351

7009 02/11/2012 11:25 AM Chris Jones

Update D1NodeService to reflect new ObjectFormatCache signature.

7000 02/08/2012 11:23 AM ben leinfelder

use updated authorization policies as discussed in:
https://redmine.dataone.org/issues/2277
and
http://epad.dataone.org/20120131-authn-authz-questions

6944 01/24/2012 10:35 AM ben leinfelder

use UTC serialization for log entries so that the timestamp, not just the date, is preserved
https://redmine.dataone.org/issues/2257

6874 01/10/2012 05:01 PM Chris Jones

Don't throw a NotAuthorized exception in isAdminAuthorized() - just return false.

6865 01/07/2012 12:34 PM Chris Jones

Add isAdminAuthorized() to D1NodeService to check if the operation is being requested from a CN. Consult the NodeList from the CN and test the NodeType of the given node and the X509 certificate Subject. Perhaps we should expand this to also check for service-level access in the future.

6858 01/05/2012 06:32 PM Chris Jones

After reviewing CNodeService and D1NodeService prompted by Robert comparing the Hazelcast locking with the d1_synchronization locking, I've made a number of changes that will prevent locking problems:

1) Multiple methods contained try/catch blocks that would:...

6830 01/03/2012 03:56 PM ben leinfelder

exapnd permissions on the exisiting access rule not on the permission being checked. (hierarchical permissions)

6816 12/22/2011 09:24 AM ben leinfelder

interpret permissions as hierarchical
https://redmine.dataone.org/issues/2150

6807 12/20/2011 11:21 AM ben leinfelder

allow other Metacat process (system metadata and ORE generation) to directly insert objects and system metadata without having to go through the MN/CN methods.

6803 12/16/2011 04:24 PM ben leinfelder

new jars with many changes -- including new CN methods: ping, describe, listChecksumAlgorithm. Removed MN.setAccessPolicy. Refactored CN.setOwner() to CN.setRightsHolder().

6754 12/08/2011 01:51 PM ben leinfelder

update with latest d1_common/d1_lib (includes latest schema changes)

6719 11/30/2011 05:23 PM ben leinfelder

make exception/error reporting clearer -- was getting lock messages when perhaps that was not the correct exception.

6688 11/23/2011 10:19 AM ben leinfelder

when comparing D1 Subject objects, use the equals() method not direct string comparison
https://redmine.dataone.org/issues/2050

6664 11/16/2011 04:09 PM ben leinfelder

check for authenticated and verified user permissions

6652 11/15/2011 10:47 AM ben leinfelder

correct typo

6609 11/07/2011 10:01 AM Chris Jones

D1NodeService get(), getSystemMetadata(), and isAuthorized() no longer throw InvalidRequest.

6596 11/02/2011 09:58 PM ben leinfelder

make MNodeServiceTest pass JUnit testing

6574 11/01/2011 06:48 AM Chris Jones

Modify isAuthorized() to get the most up to date system metadata from the hzSystemMetadata map.

6572 11/01/2011 06:37 AM Chris Jones

Update getSystemMetadata() to lock(); get(); unlock() to ensure we have the latest version of system metadata from the hzSystemMetadata map. Remove the setAccessPolicy() method since it is being deprecated in the MNAuthorization API.
change insertSystemMetadata() to use a finer grained Date object on insertion. Locking of the pid happens in the subclass prior to the insert.