use of com.sun.identity.liberty.ws.soapbinding.ServiceInstanceUpdateHeader in project OpenAM by OpenRock.
the class PPRequestHandler method processDSTRequest.
/**
* Processes query/modify request.
* @param request query or modify object.
* @param requestMsg Request Message.
* @param responseMsg Response Message.
* @return Object processed response object.
* @exception SOAPFaultException for the interaction redirects
* @exception Exception for any failure.
*/
public Object processDSTRequest(Object request, Message requestMsg, Message responseMsg) throws SOAPFaultException, DSTException {
IDPPUtils.debug.message("PPRequestHandler:processRequest:Init");
try {
IDPPServiceManager serviceManager = IDPPServiceManager.getInstance();
String providerID = serviceManager.getProviderID();
ProviderHeader ph = new ProviderHeader(providerID);
responseMsg.setProviderHeader(ph);
if (serviceManager.isServiceInstanceUpdateEnabled()) {
ServiceInstanceUpdateHeader siuHeader = getServiceInstanceUpdateHeader();
responseMsg.setServiceInstanceUpdateHeader(siuHeader);
}
if (request instanceof QueryElement) {
QueryElement query = (QueryElement) request;
Document doc = IDPPUtils.getDocumentBuilder().newDocument();
IDPPUtils.getMarshaller().setProperty("com.sun.xml.bind.namespacePrefixMapper", new NamespacePrefixMapperImpl());
IDPPUtils.getMarshaller().marshal(query, doc);
return processQueryRequest(query, providerID, requestMsg, doc);
} else if (request instanceof ModifyElement) {
ModifyElement modify = (ModifyElement) request;
Document doc = IDPPUtils.getDocumentBuilder().newDocument();
IDPPUtils.getMarshaller().setProperty("com.sun.xml.bind.namespacePrefixMapper", new NamespacePrefixMapperImpl());
IDPPUtils.getMarshaller().marshal(modify, doc);
return processModifyRequest(modify, providerID, requestMsg, doc);
} else {
IDPPUtils.debug.error("PPRequestHandler:processRequest:invalid" + " Request.");
throw new DSTException(IDPPUtils.bundle.getString("invalidRequest"));
}
} catch (IDPPException ie) {
IDPPUtils.debug.error("PPRequestHandler:processRequest fail", ie);
throw new DSTException(ie);
} catch (JAXBException je) {
IDPPUtils.debug.error("PPRequestHandler:processRequest fail", je);
throw new DSTException(IDPPUtils.bundle.getString("jaxbFailure"));
} catch (SOAPBindingException sbe) {
IDPPUtils.debug.error("PPRequestHandler:processRequest fail", sbe);
throw new DSTException(sbe);
}
}
use of com.sun.identity.liberty.ws.soapbinding.ServiceInstanceUpdateHeader in project OpenAM by OpenRock.
the class IDPPServiceInstanceUpdate method getServiceInstanceUpdateHeader.
/**
* Gets the service instance update header.
*
* @return <code>ServiceInstanceUpdateHeader</code> ServiceInstanceUpdate
* Header for the Personal Profile Service.
* "null" if the end point is not configured.
*/
public ServiceInstanceUpdateHeader getServiceInstanceUpdateHeader() {
ServiceInstanceUpdateHeader siuHeader = new ServiceInstanceUpdateHeader();
String alternateEndPoint = IDPPServiceManager.getInstance().getAlternateEndPoint();
if (alternateEndPoint == null) {
IDPPUtils.debug.error("IDPPServiceInstanceUpdate.getService" + "InstanceUpdateHeader: Alternate Endpoint is null");
return null;
}
siuHeader.setEndpoint(alternateEndPoint);
Set alternateSechMechs = IDPPServiceManager.getInstance().getAlternateSecurityMechs();
if (alternateSechMechs != null && !alternateSechMechs.isEmpty()) {
List list = new ArrayList();
Iterator iter = alternateSechMechs.iterator();
while (iter.hasNext()) {
list.add((String) iter.next());
}
siuHeader.setSecurityMechIDs(list);
}
return siuHeader;
}
use of com.sun.identity.liberty.ws.soapbinding.ServiceInstanceUpdateHeader in project OpenAM by OpenRock.
the class PPRequestHandler method getServiceInstanceUpdateHeader.
/**
* Gets the service instance update header.
*
* @exception SOAPFaultException.
*/
private ServiceInstanceUpdateHeader getServiceInstanceUpdateHeader() throws SOAPFaultException {
ServiceInstanceUpdate siu = IDPPServiceManager.getInstance().getServiceInstanceUpdate();
ServiceInstanceUpdateHeader siuHeader = siu.getServiceInstanceUpdateHeader();
if (siu.isSOAPFaultNeeded()) {
QName faultCodeServer = new QName(SOAPBindingConstants.NS_SOAP, "Server");
SOAPFaultDetail detail = new SOAPFaultDetail(SOAPFaultDetail.ENDPOINT_MOVED, null, null);
SOAPFault sf = new SOAPFault(faultCodeServer, IDPPUtils.bundle.getString("endPointMoved"), null, detail);
Message sfmsg = new Message(sf);
sfmsg.setServiceInstanceUpdateHeader(siuHeader);
SOAPFaultException sfe = new SOAPFaultException(sfmsg);
throw sfe;
}
return siuHeader;
}
Aggregations