public class UDDICustodyTransferImpl extends AuthenticatedService implements UDDICustodyTransferPortType
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_TRANSFEREXPIRATION_DAYS |
static String |
TRANSFER_TOKEN_PREFIX |
AUTHTOKEN_ACTIVE, AUTHTOKEN_RETIRED, baseUrl, baseUrlSSL, ctx, UTF8
Constructor and Description |
---|
UDDICustodyTransferImpl() |
Modifier and Type | Method and Description |
---|---|
void |
discardTransferToken(DiscardTransferToken body)
The discard_transferToken API is a client API used to discard a
transferToken obtained through the get_transferToken API at the same
node.
|
protected List<ChangeRecord> |
executeTransfer(TransferEntities body,
javax.persistence.EntityManager em,
String transferToPublisher,
String transferToNode)
used to factor out the actual execution of custody transfer, used by
both this service and the replication service.
|
void |
getTransferToken(String authInfo,
KeyBag keyBag,
Holder<String> nodeID,
Holder<XMLGregorianCalendar> expirationTime,
Holder<byte[]> opaqueToken)
The get_transferToken API is a client API used to initiate the transfer
of custody of one or more businessEntity or tModel entities from one node
to another.
|
void |
transferEntities(TransferEntities body)
The transfer_entities API is used by publishers to whom custody is being
transferred to actually perform the transfer.
|
getEntityPublisher, getNode, getRequestorsIPAddress, setContext
public static final String TRANSFER_TOKEN_PREFIX
public static final int DEFAULT_TRANSFEREXPIRATION_DAYS
public void discardTransferToken(DiscardTransferToken body) throws DispositionReportFaultMessage
UDDICustodyTransferPortType
discardTransferToken
in interface UDDICustodyTransferPortType
body
- · authInfo: This OPTIONAL argument is an element that contains an authentication token. Authentication tokens are obtained using the get_authToken API call or through some other means external to this specification, and represent the identity of the publisher at a UDDI node.
· transferToken: This is a known transferToken obtained by a publisher at the node where the get_transferToken API was invoked.
· keyBag: One or more uddiKeys associated either with businessEntity or tModel entities owned by the publisher that were to be transferred to some other publisher and/or node in the registry as the result of invocation of get_transferToken. At least one businessKey or tModelKey must be provided in a keyBag.
DispositionReportFaultMessage
public void getTransferToken(String authInfo, KeyBag keyBag, Holder<String> nodeID, Holder<XMLGregorianCalendar> expirationTime, Holder<byte[]> opaqueToken) throws DispositionReportFaultMessage
UDDICustodyTransferPortType
getTransferToken
in interface UDDICustodyTransferPortType
authInfo
- · authInfo: This OPTIONAL argument is an element that
contains an authentication token. Authentication tokens are obtained
using the get_authToken API call or through some other means external to
this specification and represent the identity of the publisher at a UDDI
node.keyBag
- keyBag: One or more key (of type uddi:uddiKey) associated
either with businessEntity or tModel entities owned by the publisher that
are to be transferred to some other publisher and/or node in the
registry. At least one businessKey or tModelKey must be provided.nodeID
- this is a return value. The transfer token consists of a
nodeID, an expirationTime and an opaqueToken. The nodeID is used during
the transfer_entities API by the recipient node to confirm with the
relinquishing custodial node that the custody transfer is authorized and
still valid. The nodeID of the transferToken is the value of the nodeID
element of the Replication Configuration Structure. Refer to Section
7.5.2 Configuration of a UDDI Node – operator Element.expirationTime
- this is a return value. The expirationTime, defined
as xsd:dateTime, represents the time at which the transfer token is no
longer valid.opaqueToken
- this is a return value. The opaqueToken is only
meaningful to the node that issues it. The opaqueToken is defined as
xsd:base64Binary to allow for a RECOMMENDED encryption of the token under
the relinquishing custody node’s own encryption key.DispositionReportFaultMessage
public void transferEntities(TransferEntities body) throws DispositionReportFaultMessage
UDDICustodyTransferPortType
transferEntities
in interface UDDICustodyTransferPortType
body
- authInfo: This OPTIONAL argument is an element that contains
an authentication token. Authentication tokens are obtained using the
get_authToken API call or through some other means external to this
specification, and represent the identity of the publisher at a UDDI
node, in this case, the new owner of the entities being transferred.
· transferToken: Required argument obtained from the custodial node via a
call to get_transferToken by the publisher requesting a transfer of
custody. The transferToken contains an opaque token, an expiration date,
and the identity of the custodial node. The transferToken represents
permission to transfer the entities that have been identified via a prior
call to the get_transferToken API.
· keyBag: One or more uddiKeys associated with businessEntity or tModel
entities that are to be transferred to this publisher at the target node
in the registry. The set of keys must be the same as the set of keys in
the keyBag of the get_transferToken API call from which the given
transferToken was once obtained.
The target node responds to this API by performing the transfer operation. This operation is comprised of four steps:
· Verification that the entity keys are valid.
· Verification that ownership of the entities by the recipient publisher is allowed and would not violate any policies at the target node related to publisher limits.
· Verification with the custodial node that the transfer of the designated entities is allowed. This is accomplished by invoking transfer_custody on the custodial node that is identified by the nodeID element in the transferToken. Any errors returned by the custodial node cause this API to fail and are propagated to the caller.
· Changing custody and ownership of the designated entities and entering these changes into the replication stream.
Upon successful completion, an empty message is returned indicating the success of the transfer operation. In the case of an inter-node custody transfer, while the transfer is in process, the entities being transferred are not available for modification. To determine the state of the data, UDDI clients can use the get_operationalInfo API to determine when custody and ownership transfer has taken place. A change in the nodeID of the operationalInfo provides such an indication.
DispositionReportFaultMessage
protected List<ChangeRecord> executeTransfer(TransferEntities body, javax.persistence.EntityManager em, String transferToPublisher, String transferToNode) throws DispositionReportFaultMessage
body
- em
- transferToPublisher
- transferToNode
- DispositionReportFaultMessage
Copyright © 2004–2021 The Apache Software Foundation. All rights reserved.