Project

General

Profile

  • svn:keywords: Author Date RCSfile

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

6366 07/27/2011 04:25 PM ben leinfelder

use new "v1" types from DataONE

6353 07/15/2011 07:11 AM Chris Jones

In D1NodeService.getLogRecords(), don't pass in null start and count params - set them to the defaults (0 and 1000).

6337 07/12/2011 03:02 PM ben leinfelder

use objectFormatIdentifier for listObjects()
remove provisional system metadata indicator - Metacat will not implement reserveIdentifier()

6323 07/08/2011 02:08 PM ben leinfelder

simplify the get() method -- no need to use temp files for this operation

6321 07/07/2011 03:14 PM ben leinfelder

implement d1 paging for the log record results

6313 07/07/2011 12:51 PM ben leinfelder

save systemmetadata when create() is called

6308 07/07/2011 05:45 AM Chris Jones

Add the missing URL delimiter when building the D1 base service URL.

6302 07/06/2011 12:09 PM ben leinfelder

handle data objects (not sci meta) and also set the resulting pid so that create() can succeed

6293 07/05/2011 04:18 PM ben leinfelder

beef up isAuthorized method to check for "public" access rules and also for the rights holder

6283 07/01/2011 05:21 PM ben leinfelder

add space to error message

6278 07/01/2011 12:37 PM ben leinfelder

implement reserveIdentifier() and check whether the id is reserved when creating records (only allow the create when the Subject creating matches the Subject who reserved it -- currently stored in rightsHolder)

6276 07/01/2011 11:10 AM ben leinfelder

remove extraneous update() call when create() does the call for us

6257 06/29/2011 09:41 PM Chris Jones

Make isScienceMetadata() protected for access from subclasses.

6256 06/29/2011 09:36 PM Chris Jones

Add insertSystemMetadata() to D1NodeService, wrap the exception handling from calls to IdentifierManager.

6255 06/29/2011 09:25 PM Chris Jones

Add updateSystemMetadata() to D1NodeService as a helper method to wrap the exception handling from calls to IdentifierManager.

6254 06/29/2011 05:50 PM Chris Jones

At Ben's suggestion, add metacatUrl to D1NodeService and make it available to subclasses. Set the metacatUrl in the constructor using SystemUtil rather than all roll your own PropertyService calls. More concise. Also, log the delete event in MNodeService.delete().

6245 06/29/2011 12:35 PM ben leinfelder

isAuthorized: check for nulls in Session subjects, catch any unexpected errors and deny access when in doubt

6242 06/29/2011 12:09 PM Chris Jones

Remove setParamsFromRequest() from D1NodeService. This was called (previously as CrudService) from ResourceHandler, but will be deprecated in favor of manually creating a param map for each method that needs to pass params on to MetacatHandler.

6241 06/29/2011 08:44 AM Chris Jones

Implement [MN|CN]Storage.create() in D1NodeService. Since MetacatHandler requires an IP for event logging, we pass in the metacat URL (hold over from CrudService). To do this in the abstract D1NodeService, change the constructors to take metacatUrl as a parameter and get the URL from the metacat properties file in getInstance() of the subclasses. Needs testing.

6233 06/28/2011 11:18 AM Chris Jones

Change Metacathandler.read() to be public since it's internal to Metacat, and use read() in D1NodeService after isAuthorized() for the calling Subject from the Session object.

6227 06/28/2011 08:08 AM Chris Jones

Minor formatting changes - tabs to spaces, indents, etc.

6226 06/28/2011 08:04 AM Chris Jones

Implement [MN|CN]Read.get() in D1NodeService. Added setParamsFromRequest() to pass through parameters from the request object. Since the D1 Authorization API doesn't specify which authentication system a subject belongs to, we don't know if the subject listed is a KNB LDAP DN. isAuthorized() may return true for a mapped identity, but we don't know the DN of the KNB identity per se. This needs to be tested.

6225 06/27/2011 02:39 PM ben leinfelder

-use every Subject in the session (alt Ids and Group membership)
-consolidate to single isAuthorized method

6217 06/27/2011 11:12 AM ben leinfelder

implement getChecksum() in the superclass

6212 06/27/2011 10:15 AM ben leinfelder

use Permission, not Event for isAuthorized() methods

6194 06/23/2011 03:58 PM ben leinfelder

implement CNAuthorization

6186 06/23/2011 02:17 PM ben leinfelder

implement getLogRecords

6179 06/22/2011 11:03 AM Chris Jones

Initial check in of the MNodeService stub methods that implement the D1 MN* interfaces. CrudService methods will be transitioned into this class. The methods follow the D1 0.6.2 API thus far.

Also changed CNodeService to reflect minor changes to the D1NodeService class.

6176 06/22/2011 07:50 AM Chris Jones

CNAuthorization.isAuthorized() and MNAuthorization.isAuthorized() differ. Removed it from the base class.

6175 06/22/2011 06:12 AM Chris Jones

getChecksum() is intentionally different on the CN vs MN, so I'm removing it as a common method.

6174 06/21/2011 03:42 PM Chris Jones

Initial check in of the D1NodeService class that provides methods common to both CNodeService and MNodeService implementation classes. The common API methods are:

Methods common to CNCore and MNCore APIs
getLogRecords()

Methods common to CNRead and MNRead APIs...