|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.openliberty.wsc.BaseServiceClient
org.openliberty.wsc.PersonalProfileService
public class PersonalProfileService
The Liberty ID-SIS Personal Profile (ID-SIS-PP) defines a web service. It offers profile information regarding a Principal. ID-SIS-PP is an instance of a data-oriented identity web service and is characterized by the ability to query and update attribute data and incorporates mechanisms from other specifications for access control and conveying data validation information and usage directives.
This Service Client models PP v1.1 using DST 2.1 and utilizing the DST 2.1 Reference implementation. Even though DST 2.1 defines a methodology for Delete and Create, PP only uses Query and Modify.
Currently Supported:
| Nested Class Summary | |
|---|---|
static class |
PersonalProfileService.DataModifyOption
This enumeration models Table 4. |
static class |
PersonalProfileService.DataQueryOption
This enumeration models Table 3. |
| Field Summary | |
|---|---|
static java.lang.String |
DST_MODIFY_SUFFIX
The suffix that is combined with the SERVICE_URN to indicate in the Action element of the SOAP header that the request is a Personal Profile Modification. |
static java.lang.String |
DST_QUERY_SUFFIX
The suffix that is combined with the SERVICE_URN to indicate in the Action element of the SOAP header that the request is a Personal Profile Query. |
private static org.apache.log4j.Logger |
log
|
static java.lang.String |
OPTION_MULTIPLE_MODIFY_ITEM
This is a URN that may be passed as an option from the Discovery Service indicating that the PP supports multiple ModifyItem objects in single Modify request |
static java.lang.String |
OPTION_SUPPORTS_EXTENSIONS
This is a URN that may be passed as an option from the Discovery Service indicating that the PP supports utilizing the Extensions and xs:anyAttributes specified in the DST |
static java.lang.String |
OPTION_SUPPORTS_FULL_XPATH
This is a URN that may be passed as an option from the Discovery Service indicating that the full XPath language is supported for making Queries and Modifications. |
static java.lang.String |
SERVICE_URN
This is the URN representing the Personal Profile Service |
static java.lang.String |
STATUS_FAILED
Used to compare against the Status code returned in the QueryResponse or ModifyResponse objects. |
static java.lang.String |
STATUS_OK
Used to compare against the Status code returned in the QueryResponse or ModifyResponse objects. |
| Constructor Summary | |
|---|---|
PersonalProfileService(DiscoveryService discoveryService,
EndpointReference initialEndpointReference)
|
|
| Method Summary | |
|---|---|
AddressCard |
addressCardForID(java.lang.String id)
Selection by the id XML attribute of AddressCard. |
java.util.List<AddressCard> |
addressCardsForAddressType(AddrType.Type addressType)
Selection of AddressCard by an exact match on the contents of a leaf element for the following leaf elements: pp:AddrType |
java.util.List<AddressCard> |
addressCardsForNickName(java.lang.String nickname,
boolean localScriptVersion)
Selection of AddressCard by an exact match on the contents of a leaf element for the following leaf elements: pp:Nick pp:LNick |
private java.util.List<AddressCard> |
addressCardsForQueryString(java.lang.String queryString)
|
AltID |
altIdForIDType(IDType.Type iDType)
Selection of /pp:PP/pp:LegalIdentity/pp:AltID by an exact match against the AltID's IDType. |
AltID |
altIdForIDTypeURI(java.lang.String iDTypeURI)
Selection of /pp:PP/pp:LegalIdentity/pp:AltID by an exact match against the AltID's IDType element content. |
boolean |
invokeModify(java.lang.String xPathModifySelector,
org.opensaml.xml.XMLObject modifiedObject)
This method attempts to update the portion of the Personal Profile indicated by the xPathModifySelector with the provided modifiedObject |
ModifyResponse |
invokeModifyForModifyItems(java.util.List<ModifyItem> modifyItems)
This method invoked a Modify request to the Profile Service. |
QueryResponse |
invokeQuery(java.lang.String queryItemSelect)
Using the DST 2.1 Reference implementation classes. |
QueryResponse |
invokeQueryForQueryItem(QueryItem queryItem)
Invokes a PP Query for a single QueryItem |
QueryResponse |
invokeQueryForQueryItems(java.util.List<QueryItem> queryItems)
This method provides support for multiple QueryItem elements |
ModifyItem |
modifyItemForXPathAndObject(java.lang.String xPathModifySelector,
org.opensaml.xml.XMLObject modifiedObject)
This method returns a ModifyItem with the data necessary to update the portion of the Personal Profile indicated by the xPathModifySelector with the provided modifiedObject |
MsgContact |
msgContactForID(java.lang.String id)
Selection of a MsgContact by its id XML attribute. |
java.util.List<MsgContact> |
msgContactsForNickName(java.lang.String nickname,
boolean localScriptVersion)
Selection of MsgContact by an exact match on the contents of a leaf element for the following leaf elements: pp:Nick pp:LNick |
private java.util.List<MsgContact> |
msgContactsForQueryItem(QueryItem queryItem)
|
java.util.List<MsgContact> |
msgContactsForSpecifics(MsgTechnology.Technology technology,
MsgMethod.Method method,
MsgType.Type type)
Selection of MsgContact by an exact match on the contents of a leaf element for the following leaf elements: pp:MsgTechnology pp:MsgMethod pp:MsgType MsgTechnology, MsgMethod, and MsgType can be tested in isolation or simultaneously combined with an AND operator. |
java.util.List<MsgContact> |
msgContactsForSpecifics(java.lang.String technologyUri,
java.lang.String methodUri,
java.lang.String typeUri)
Selection of MsgContact by an exact match on the contents of a leaf element for the following leaf elements: pp:MsgTechnology pp:MsgMethod pp:MsgType MsgTechnology, MsgMethod, and MsgType can be tested in isolation or simultaneously combined with an AND operator. |
static PersonalProfileService |
personalProfileServiceForEndpointReference(DiscoveryService discoveryService,
EndpointReference epr)
Factory method that creates and initializes a PersonalProfileService. |
java.util.List<org.opensaml.xml.XMLObject> |
profileObjectsForXPathQuery(java.lang.String xpathQueryString)
slash-separated path to any depth. |
QueryItem |
queryItemForAddressCardID(java.lang.String id,
java.lang.String itemID)
Takes an id (unique) and builds an AddressCard QueryItem |
QueryItem |
queryItemForAtIdByIDType(java.lang.String iDType,
java.lang.String itemID)
Returns a QueryItem for an AltID based on that AltIDs IDType element content |
QueryItem |
queryItemForMsgContactID(java.lang.String id,
java.lang.String itemID)
Takes an id (unique) and builds an MsgContact QueryItem |
QueryItem |
queryItemForMsgContactNickName(java.lang.String nickname,
boolean localScriptVersion,
java.lang.String itemID)
Creates a QueryItem that is for a MsgContact based on a Nickname. |
QueryItem |
queryItemForMsgContactSpecifics(MsgTechnology.Technology technology,
MsgMethod.Method method,
MsgType.Type type,
java.lang.String itemID)
Generation of a QueryItem to query for MsgContact by an exact match on the contents of a leaf element for the following leaf elements: pp:MsgTechnology pp:MsgMethod pp:MsgType MsgTechnology, MsgMethod, and MsgType can be tested in isolation or simultaneously combined with an AND operator. |
QueryItem |
queryItemForMsgContactSpecifics(java.lang.String technologyUri,
java.lang.String methodUri,
java.lang.String typeUri,
java.lang.String itemID)
Generation of a QueryItem to query for MsgContact by an exact match on the contents of a leaf element for the following leaf elements: pp:MsgTechnology pp:MsgMethod pp:MsgType MsgTechnology, MsgMethod, and MsgType can be tested in isolation or simultaneously combined with an AND operator. |
QueryItem |
queryItemForString(java.lang.String properlyFormedQueryString,
java.lang.String itemID)
Accepts any string and places it inside of the select |
QueryItem |
queryItemForXPathQuery(java.lang.String xpathQueryString,
java.lang.String itemID)
Returns a QueryItem for the specified XPath String, if the string compiles. |
boolean |
serviceExplicitlySupportsDataModifyOption(PersonalProfileService.DataModifyOption option)
Test to see whether the Personal Profile Service has registered support for a specific data modify option with the Discovery Service. |
boolean |
serviceExplicitlySupportsDataQueryOption(PersonalProfileService.DataQueryOption option)
Test to see whether the Personal Profile Service has registered support for a specific data query option with the Discovery Service. |
boolean |
serviceExplicitlySupportsExtensions()
ID-SIS-PP elements that have enumerated values use URIs as values ("values" may be referred to as "enumerators"). |
boolean |
serviceExplicitlySupportsFullXPath()
This indicates whether Full XPath Expressions can be used for any modify or query invocations |
boolean |
serviceExplicitlySupportsMultipleModifyItems()
Checks whether multiple modification elements (ModifyItem) may be submitted in one Modify request |
| Methods inherited from class org.openliberty.wsc.BaseServiceClient |
|---|
getDiscoveryService, getServiceEndpointReference, getServiceEndpointReferenceStore, isSigningOutgoingMessages, replaceServiceEndpointReference, serviceExplicitlySupportsOption, setDiscoveryService, setServiceEndpointReference, setSigningOutgoingMessages |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static org.apache.log4j.Logger log
public static final java.lang.String SERVICE_URN
public static final java.lang.String OPTION_MULTIPLE_MODIFY_ITEM
public static final java.lang.String OPTION_SUPPORTS_EXTENSIONS
public static final java.lang.String OPTION_SUPPORTS_FULL_XPATH
public static final java.lang.String DST_QUERY_SUFFIX
public static final java.lang.String DST_MODIFY_SUFFIX
public static final java.lang.String STATUS_OK
Note: Only OK and Failed are supported by PP v1.1 since they were the only supported by DST1.1
public static final java.lang.String STATUS_FAILED
Note: Only OK and Failed are supported by PP v1.1 since they were the only supported by DST1.1
| Constructor Detail |
|---|
public PersonalProfileService(DiscoveryService discoveryService,
EndpointReference initialEndpointReference)
| Method Detail |
|---|
public static PersonalProfileService personalProfileServiceForEndpointReference(DiscoveryService discoveryService,
EndpointReference epr)
epr -
public boolean serviceExplicitlySupportsFullXPath()
The Select string holds an XPATH expression. An ID-SIS-PP implementation MAY support full XPATH expressions [XPATH] as a Select expression. If it does support full XPATH expressions, it MAY advertise the discovery option keyword "urn:liberty:dst:fullXPath"
If an implementation supports full XPATH for querying, then it MUST also support full XPATH for modifies.
public boolean serviceExplicitlySupportsExtensions()
All containers and elements defined in the ID-SIS-PP schema have an Extension element which permits arbitrary schema extension. An implementation MAY support schema extension, but is not required to do so. If an implementation does support schema extension, then it MAY register the corresponding discovery option keyword "urn:liberty:dst:can:extend"
If you plan to extend this PP Client you will need to adhere to the approach designated by the OpenSAML Java XML-Tooling libraries. Any extended elements will need to extend XMLObject
public boolean serviceExplicitlySupportsMultipleModifyItems()
A minimally compliant implementation is not required to support multiple Modification elements. The Modify operation functions as described in [LibertyDST]. The Modify operation has the additional relaxation that a minimally compliant ID-SIS-PP implementation MAY refuse a Modify request with multiple Modification elements, provided all processing rules specified in [LibertyDST] are followed regarding failure to support multiple Modification elements.
Implementations SHOULD support multiple Modification elements when feasible. If an implementation supports multiple Modification elements it MAY register the discovery option keyword "urn:liberty:dst:multipleModification."
public boolean serviceExplicitlySupportsDataQueryOption(PersonalProfileService.DataQueryOption option)
option -
public boolean serviceExplicitlySupportsDataModifyOption(PersonalProfileService.DataModifyOption option)
option -
public ModifyItem modifyItemForXPathAndObject(java.lang.String xPathModifySelector,
org.opensaml.xml.XMLObject modifiedObject)
The following xPathModifySelectors MUST be supported by the PP:
xPathModifySelector - modifiedObject -
public boolean invokeModify(java.lang.String xPathModifySelector,
org.opensaml.xml.XMLObject modifiedObject)
The following xPathModifySelectors MUST be supported by the PP:
xPathModifySelector - modifiedObject -
public ModifyResponse invokeModifyForModifyItems(java.util.List<ModifyItem> modifyItems)
A minimally compliant implementation is not required to support multiple Modification elements. The Modify operation functions as described in [LibertyDST]. The Modify operation has the additional relaxation that a minimally compliant ID-SIS-PP implementation MAY refuse a Modify request with multiple Modification elements, provided all processing rules specified in [LibertyDST] are followed regarding failure to support multiple Modification elements.
Although the DST 2.1 reference implementation provides for an additional Query to be placed in ResultQuery elements inside of the Modify element, this is not provided for in PP v1.1, and is therefore not implemented here.
modifyItems -
public AltID altIdForIDType(IDType.Type iDType)
iDType - Type enumerated in IDType
public AltID altIdForIDTypeURI(java.lang.String iDTypeURI)
iDTypeURI -
public MsgContact msgContactForID(java.lang.String id)
id - the id that will match a MsgContact
public java.util.List<MsgContact> msgContactsForSpecifics(MsgTechnology.Technology technology,
MsgMethod.Method method,
MsgType.Type type)
technology - an enumerated technology from the MsgTechnology Objectmethod - an enumerated method from the MsgMethod Objecttype - an enumerated type from the MsgType Object
public java.util.List<MsgContact> msgContactsForSpecifics(java.lang.String technologyUri,
java.lang.String methodUri,
java.lang.String typeUri)
technologyUri - methodUri - typeUri -
public java.util.List<MsgContact> msgContactsForNickName(java.lang.String nickname,
boolean localScriptVersion)
nickname - localScriptVersion - if true indicates that the query should be for pp:LNick. false indicates pp:Nick
private java.util.List<MsgContact> msgContactsForQueryItem(QueryItem queryItem)
public AddressCard addressCardForID(java.lang.String id)
ID -
public java.util.List<AddressCard> addressCardsForAddressType(AddrType.Type addressType)
Example:
<QueryItem itemID="home">
<Select>
/pp:PP/pp:AddressCard
[pp:AddressType="urn:liberty:id-sis-pp:addrType:home"]
</Select>
</QueryItem>
Only one of the tests needs to be supported in any one slashed path. Such bracketed expression may also appear
within (i.e., in the middle of) a slashed path.
addressType -
public java.util.List<AddressCard> addressCardsForNickName(java.lang.String nickname,
boolean localScriptVersion)
nickname - localScriptVersion -
private java.util.List<AddressCard> addressCardsForQueryString(java.lang.String queryString)
public QueryItem queryItemForMsgContactID(java.lang.String id,
java.lang.String itemID)
id - the id that will match a MsgContactitemID - an id that the Data response will reference to indicate correlation with the QueryItem
public QueryItem queryItemForMsgContactNickName(java.lang.String nickname,
boolean localScriptVersion,
java.lang.String itemID)
nickname - localScriptVersion - if true indicates that the query should be for pp:LNick. false indicates pp:NickitemID - an id that the Data response will reference to indicate correlation with the QueryItem
public QueryItem queryItemForMsgContactSpecifics(java.lang.String technologyUri,
java.lang.String methodUri,
java.lang.String typeUri,
java.lang.String itemID)
technologyUri - methodUri - typeUri - itemID - an id that the Data response will reference to indicate correlation with the QueryItem
public QueryItem queryItemForMsgContactSpecifics(MsgTechnology.Technology technology,
MsgMethod.Method method,
MsgType.Type type,
java.lang.String itemID)
technology - an enumerated technology from the MsgTechnology Objectmethod - an enumerated method from the MsgMethod Objecttype - an enumerated type from the MsgType ObjectitemID - an id that the Data response will reference to indicate correlation with the QueryItem
public QueryItem queryItemForAddressCardID(java.lang.String id,
java.lang.String itemID)
id - the id that will match an AddressCarditemID - an id that the Data response will reference to indicate correlation with the QueryItem
public QueryItem queryItemForXPathQuery(java.lang.String xpathQueryString,
java.lang.String itemID)
NOTE: Should this be used to prepare every QueryItem ?
xpathQueryString - itemID - the id of the QueryItem so that the Data element may be matched by itemIDRef
public QueryItem queryItemForAtIdByIDType(java.lang.String iDType,
java.lang.String itemID)
iDType - itemID - the id of the QueryItem so that the Data element may be matched by itemIDRef
public QueryItem queryItemForString(java.lang.String properlyFormedQueryString,
java.lang.String itemID)
properlyFormedQueryString -
public java.util.List<org.opensaml.xml.XMLObject> profileObjectsForXPathQuery(java.lang.String xpathQueryString)
/pp:PP
/pp:PP/pp:InformalName
/pp:PP/pp:LInformalName
/pp:PP/pp:CommonName
/pp:PP/pp:CommonName/pp:CN
/pp:PP/pp:CommonName/pp:LCN
/pp:PP/pp:CommonName/pp:AltCN
/pp:PP/pp:CommonName/pp:LAltCN
/pp:PP/pp:CommonName/pp:AnalyzedName
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:PersonalTitle
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:LPersonalTitle
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:FN
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:LFN
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:SN
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:LSN
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:MN
/pp:PP/pp:CommonName/pp:AnalyzedName/pp:LMN
/pp:PP/pp:LegalIdentity
/pp:PP/pp:LegalIdentity/pp:LegalName
/pp:PP/pp:LegalIdentity/pp:LLegalName
/pp:PP/pp:LegalIdentity/pp:AnalyzedName
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:PersonalTitle
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:LPersonalTitle
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:FN
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:LFN
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:SN
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:LSN
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:MN
/pp:PP/pp:LegalIdentity/pp:AnalyzedName/pp:LMN
/pp:PP/pp:LegalIdentity/pp:VAT
/pp:PP/pp:LegalIdentity/pp:VAT/pp:IDValue
/pp:PP/pp:LegalIdentity/pp:VAT/pp:IDType
/pp:PP/pp:LegalIdentity/pp:AltID
/pp:PP/pp:LegalIdentity/pp:AltID/pp:IDValue
/pp:PP/pp:LegalIdentity/pp:AltID/pp:IDType
/pp:PP/pp:LegalIdentity/pp:DOB
/pp:PP/pp:LegalIdentity/pp:Gender
/pp:PP/pp:LegalIdentity/pp:MaritalStatus
/pp:PP/pp:EmploymentIdentity
/pp:PP/pp:EmploymentIdentity/pp:JobTitle
/pp:PP/pp:EmploymentIdentity/pp:LJobTitle
/pp:PP/pp:EmploymentIdentity/pp:O
/pp:PP/pp:EmploymentIdentity/pp:LO
/pp:PP/pp:EmploymentIdentity/pp:AltO
/pp:PP/pp:EmploymentIdentity/pp:AltLO
/pp:PP/pp:AddressCard
/pp:PP/pp:AddressCard/pp:AddrType
/pp:PP/pp:AddressCard/pp:Address
/pp:PP/pp:AddressCard/pp:Address/pp:PostalAddress
/pp:PP/pp:AddressCard/pp:Address/pp:LPostalAddress
/pp:PP/pp:AddressCard/pp:Address/pp:PostalCode
/pp:PP/pp:AddressCard/pp:Address/pp:L
/pp:PP/pp:AddressCard/pp:Address/pp:LL
/pp:PP/pp:AddressCard/pp:Address/pp:St
/pp:PP/pp:AddressCard/pp:Address/pp:LSt
/pp:PP/pp:AddressCard/pp:Address/pp:C
/pp:PP/pp:AddressCard/pp:Nick
/pp:PP/pp:AddressCard/pp:LNick
/pp:PP/pp:AddressCard/pp:LComment
/pp:PP/pp:MsgContact
/pp:PP/pp:MsgContact/pp:Nick
/pp:PP/pp:MsgContact/pp:LNick
/pp:PP/pp:MsgContact/pp:LComment
/pp:PP/pp:MsgContact/pp:MsgType
/pp:PP/pp:MsgContact/pp:MsgMethod
/pp:PP/pp:MsgContact/pp:MsgTechnology
/pp:PP/pp:MsgContact/pp:MsgProvider
/pp:PP/pp:MsgContact/pp:MsgAccount
/pp:PP/pp:MsgContact/pp:MsgSubaccount
/pp:PP/pp:Facade
/pp:PP/pp:Facade/pp:MugShot
/pp:PP/pp:Facade/pp:WebSite
/pp:PP/pp:Facade/pp:NamePronounced
/pp:PP/pp:Facade/pp:GreetSound
/pp:PP/pp:Facade/pp:GreetMeSound
/pp:PP/pp:Demographics
/pp:PP/pp:Demographics/pp:DisplayLanguage
/pp:PP/pp:Demographics/pp:Language
/pp:PP/pp:Demographics/pp:Birthday
/pp:PP/pp:Demographics/pp:Age
/pp:PP/pp:Demographics/pp:TimeZone
/pp:PP/pp:SignKey
/pp:PP/pp:EncryptKey
/pp:PP/pp:EmergencyContact
/pp:PP/pp:LEmergencyContact
xpathQueryString -
public QueryResponse invokeQuery(java.lang.String queryItemSelect)
(From DST v2.1 specification document 2317 - 2321) When SOAP action names are need, they SHOULD be formed by appending to service type one of the Request names, i.e., Create, Delete, Query, Modify, etc. For Example:
urn:liberty:id-sis-dap:2005-10:dst-2.1:Query
In the case of the Personal Profile Service the Query Action would look like this:
urn:liberty:id-sis-pp:2005-05:dst-2.1:Query
queryItemSelect - an XPath query string, not enforcedpublic QueryResponse invokeQueryForQueryItem(QueryItem queryItem)
queryItem -
public QueryResponse invokeQueryForQueryItems(java.util.List<QueryItem> queryItems)
As specified in [LibertyDST], a minimally compliant ID-SIS-PP implementation MUST support multiple QueryItem elements.
queryItems -
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||