Project

General

Profile

  • svn:keywords: Author Date RCSfile

# Date Author Comment
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.

6561 10/27/2011 05:51 PM ben leinfelder

move the DataONE 1.0.0-SNAPSHOT

6542 10/20/2011 02:03 PM ben leinfelder

add User-Agent logging to support D1 requirements

6532 10/12/2011 11:17 AM ben leinfelder

update D1 jars to include recent SubjectList -> SubjectInfo refactoring and the SUBJECT_PUBLIC constant

6530 10/12/2011 10:00 AM ben leinfelder

throw InvalidToken when the Session parameter is null for create()
https://redmine.dataone.org/issues/1850

6522 09/26/2011 12:07 PM ben leinfelder

do not allow system metadata to have obsoletes or obsoletedBy fields when calling the create() method -- these are only allowed for updates so that we do not subvert object versioning by [un]knowingly submitting system metadata that directs one id to another.

6518 09/26/2011 11:10 AM ben leinfelder

set sysmeta submitter based on the subject given in the certificate

6495 09/22/2011 10:12 AM ben leinfelder

log errors on create() and registerSM

6468 09/20/2011 10:48 AM ben leinfelder

catch runtime exceptions that arise from hazelcast storage errors in the system metadata map

6453 09/16/2011 05:04 PM ben leinfelder

implicit success for setting accessPolicy - trust that the MapStore persists the updated system metadata

6449 09/16/2011 03:23 PM ben leinfelder

only "save" to the shared system metadata map - not directly to the table store.

6447 09/16/2011 03:07 PM ben leinfelder

rely on Hazelcast to store the SystemMetadata locally for the node. Entry event listeners store the shared system metadata on their local node when alerted. TODO: remove old replication code that included system metadata xml when replicating scimeta and data

6445 09/16/2011 01:13 PM ben leinfelder

verify that the sysmeta checksum value matches the computed checksum value when calling create()
https://redmine.dataone.org/issues/1795

6443 09/16/2011 10:51 AM ben leinfelder

check for null pointers when adding system metadata/creating records during cn.create()

6433 09/15/2011 10:37 AM ben leinfelder

make isScienceMetadata() method public/static to be called throughout Metacat

6421 09/14/2011 11:30 AM ben leinfelder

check for null session before looking at subject

6412 09/12/2011 09:32 AM ben leinfelder

check session != null before checking authorization

6402 09/11/2011 12:20 PM Chris Jones

Catch D1nodeService up to the DataONE 0.6.4 schema where there is no ObjectFormat.isScienceMetadata() method, but rather ObjectFormat.getFormatType() where type is currently one of 'DATA, 'METADATA', or 'RESOURCE'.

6389 09/02/2011 12:45 PM ben leinfelder

add getReplica() implementation. same as get() but with different logging. seems silly, but maybe I missed something important that distinguishes this method.

6384 08/31/2011 02:36 PM Chris Jones

Update classes to use the DataONE 0.6.4 schema and types. Major changes involve using BigInteger vs long in SystemMetadata.size, and using ObjectFormatIdentifier rather than Object format.

6371 07/28/2011 10:50 AM ben leinfelder

refactor Constants