Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[higgins-dev] [IdAS] Context open/close semantics


Based on previous discussions, we need to clarify what it means to open and close a Context. Here's a whack at it.

(1) An open Context represents a binding between a client (specified by the identity in the open() call) and the data published by the Context. There is no API for determining the identity of the client that opened a Context.

(2) The following Context methods require a Context to be open: getSubject, getSubjects, createSubject, removeSubject, verifySubjectAttributes, updateSubject, exportData, importData. Calls to these methods on a non-open Context will result in a IdASContextNotOpenException. An implementation may choose to verify that the calling entity is authorized (e.g., by using JAAS getSubject on the executing thread).

(3) I propose that open return an IContext, rather than void. If a Context is not open, then open may return that same Context object. If the Context is already open, a new IContext may be returned that represents this new association between another client and the data. Alternatively, an implementation may choose to return the same object if multiple bindings are not supported. (This effectively performs a close, then an open on the same object.)

(4) The close operation returns the Context instance to an unopened state, as if the Context were newly-created.




Back to the top