use of fi.laverca.jaxb.mss.MSSSignatureReq in project laverca by laverca.
the class MssClient method createSignatureRequest.
/**
* Creates a signature request.
*
* @param apTransId AP Transaction ID - not null.
* @param msisdn MSISDN of the mobile user - not null.
* @param dtbs Data to be Signed - not null.
* @param dataToBeDisplayed Data to be displayed - may be null.
* @param signatureProfile Signature profile to use - not null.
* @param mss_format MSS_Format to use - not null.
* @param messagingMode Messaging mode to use - not null.
* @return Created signature request
*/
public MSSSignatureReq createSignatureRequest(final String apTransId, final String msisdn, final DTBS dtbs, final String dataToBeDisplayed, final String signatureProfile, final String mss_format, final MessagingModeType messagingMode) {
if (msisdn == null)
throw new IllegalArgumentException("Invalid MSISDN (null)");
if (dtbs == null)
throw new IllegalArgumentException("Invalid DTBS (null)");
if (signatureProfile == null)
throw new IllegalArgumentException("Invalid SignatureProfile (null)");
if (messagingMode == null)
throw new IllegalArgumentException("Invalid MessagingMode (null)");
final MSSSignatureReq req = mssObjFactory.createMSSSignatureReq();
this.initializeRequestMessage(req, apTransId);
MobileUserType muObject = mssObjFactory.createMobileUserType();
muObject.setMSISDN(msisdn);
req.setMobileUser(muObject);
final DataType dsObject = dtbs.toDataToBeSigned();
req.setDataToBeSigned(dsObject);
if (dataToBeDisplayed != null) {
final DataType ddObject = mssObjFactory.createDataType();
ddObject.setValue(dataToBeDisplayed);
req.setDataToBeDisplayed(ddObject);
}
final MssURIType spObject = mssObjFactory.createMssURIType();
spObject.setMssURI(signatureProfile);
req.setSignatureProfile(spObject);
if (mss_format != null) {
MssURIType mfObject = mssObjFactory.createMssURIType();
mfObject.setMssURI(mss_format);
req.setMSSFormat(mfObject);
}
req.setMessagingMode(messagingMode);
req.setAdditionalServices(MssClient.mssObjFactory.createMSSSignatureReqAdditionalServices());
return req;
}
use of fi.laverca.jaxb.mss.MSSSignatureReq in project laverca by laverca.
the class MssClient method sendMat.
/**
* Sends an MSS request.
*
* @param req Abstract request type
* @param context Context
* @param security WSSE security headers
* @throws IOException if a HTTP communication error occurred i.e. a SOAP fault was generated by the <i>local</i> SOAP client stub.
*/
private MessageAbstractType sendMat(final MessageAbstractType req, final LavercaContext context, final Security security) throws AxisFault, IOException {
AbstractSoapBindingStub port = null;
try {
Long timeout = null;
if (req instanceof MSSSignatureReq) {
timeout = ((MSSSignatureReq) req).getTimeOut();
port = (MSS_SignatureBindingStub) this.mssService.getMSS_SignaturePort(this.MSSP_SI_URL);
} else if (req instanceof MSSReceiptReq) {
port = (MSS_ReceiptBindingStub) this.mssService.getMSS_ReceiptPort(this.MSSP_RC_URL);
} else if (req instanceof MSSHandshakeReq) {
port = (MSS_HandshakeBindingStub) this.mssService.getMSS_HandshakePort(this.MSSP_HS_URL);
} else if (req instanceof MSSStatusReq) {
port = (MSS_StatusQueryBindingStub) this.mssService.getMSS_StatusQueryPort(this.MSSP_ST_URL);
} else if (req instanceof MSSProfileReq) {
port = (MSS_ProfileQueryBindingStub) this.mssService.getMSS_ProfileQueryPort(this.MSSP_PR_URL);
} else if (req instanceof MSSRegistrationReq) {
port = (MSS_RegistrationBindingStub) this.mssService.getMSS_RegistrationPort(this.MSSP_RG_URL);
}
if (port == null) {
throw new IOException("Invalid request type");
}
if (timeout != null) {
// ETSI TS 102 204 defines TimeOut in seconds instead of milliseconds
port.setTimeout(timeout.intValue() * 1000);
}
} catch (ServiceException se) {
log.error("Failed to get port: " + se.getMessage());
throw new IOException(se.getMessage());
}
try {
if (port._getCall() == null) {
port._createCall();
}
} catch (Exception e) {
log.fatal("Could not do port._createCall()", e);
}
// Set tools for each context.
port.setProperty(ComponentsHTTPSender.HTTPCLIENT_INSTANCE, this.getHttpClient());
LavercaSSLTrustManager.getInstance().setExpectedServerCerts(this.expectedServerCerts);
MessageAbstractType resp = null;
if (port instanceof MSS_SignatureBindingStub) {
resp = ((MSS_SignatureBindingStub) port).MSS_Signature((MSSSignatureReq) req);
} else if (port instanceof MSS_StatusQueryBindingStub) {
resp = ((MSS_StatusQueryBindingStub) port).MSS_StatusQuery((MSSStatusReq) req);
} else if (port instanceof MSS_ReceiptBindingStub) {
resp = ((MSS_ReceiptBindingStub) port).MSS_Receipt((MSSReceiptReq) req);
} else if (port instanceof MSS_HandshakeBindingStub) {
resp = ((MSS_HandshakeBindingStub) port).MSS_Handshake((MSSHandshakeReq) req);
} else if (port instanceof MSS_ProfileQueryBindingStub) {
resp = ((MSS_ProfileQueryBindingStub) port).MSS_ProfileQuery((MSSProfileReq) req);
} else if (port instanceof MSS_RegistrationBindingStub) {
resp = ((MSS_RegistrationBindingStub) port).MSS_Registration((MSSRegistrationReq) req, security);
} else {
throw new IOException("Invalid call parameters");
}
if (context != null) {
try {
context.setMessageContext(port.getMessageContext());
} catch (ServiceException e) {
log.warn("Unable to pass context", e);
}
}
return resp;
}
use of fi.laverca.jaxb.mss.MSSSignatureReq in project laverca by laverca.
the class EtsiClient method createRequest.
/**
* Create an EtsiRequest instance
* @param apTransId AP Transaction ID
* @param dtbd Data to be displayed
* @param dtbs Data to be signed
* @param msisdn MSISDN of the target user
* @param additionalServices List of FiCom additionalservices to add to the request
* @param signatureProfile Signature profile to use
* @param mssFormat MSS Format to use.
* @param messagingMode Messaging mode to use
* @return Created request
*/
public EtsiRequest createRequest(final String apTransId, final String msisdn, final DTBS dtbs, final String dtbd, final List<AdditionalServiceType> additionalServices, final String signatureProfile, final String mssFormat, final MessagingModeType messagingMode) {
final EtsiRequest req = new EtsiRequest();
final MSSSignatureReq sigReq = this.mssClient.createSignatureRequest(apTransId, msisdn, dtbs, dtbd, signatureProfile, mssFormat, messagingMode);
req.sigReq = sigReq;
final List<AdditionalServiceType> as = sigReq.getAdditionalServices().getServices();
if (additionalServices != null) {
for (AdditionalServiceType s : additionalServices) {
if (s != null) {
as.add(s);
}
}
}
return req;
}
use of fi.laverca.jaxb.mss.MSSSignatureReq in project laverca by laverca.
the class FiComClient method createRequest.
/**
* Create an EtsiRequest instance
* @param apTransId AP Transaction ID
* @param dtbs Data to be signed
* @param msisdn MSISDN of the target user
* @param noSpamService Service for sending nospam code
* @param eventIDService Service containing the wanted EventId for the request
* @param additionalServices List of FiCom additionalservices to add to the request
* @param signatureProfile Signature profile to use
* @param mssFormat MSS Format to use.
* @return created FiComRequest
*/
public FiComRequest createRequest(final String apTransId, final DTBS dtbs, final String msisdn, final AdditionalServiceType noSpamService, final AdditionalServiceType eventIDService, final List<AdditionalServiceType> additionalServices, final String signatureProfile, final String mssFormat) {
final FiComRequest req = new FiComRequest();
String dataToBeDisplayed = null;
MessagingModeType messagingMode = MessagingModeType.ASYNCH_CLIENT_SERVER;
final MSSSignatureReq sigReq = this.mssClient.createSignatureRequest(apTransId, msisdn, dtbs, dataToBeDisplayed, signatureProfile, mssFormat, messagingMode);
req.sigReq = sigReq;
final List<AdditionalServiceType> as = sigReq.getAdditionalServices().getServices();
if (noSpamService != null)
as.add(noSpamService);
if (eventIDService != null)
as.add(eventIDService);
if (additionalServices != null) {
for (final AdditionalServiceType s : additionalServices) {
if (s != null) {
as.add(s);
}
}
}
return req;
}
use of fi.laverca.jaxb.mss.MSSSignatureReq in project laverca by laverca.
the class SwisscomClient method createRequest.
/**
* Create a SwisscomRequest instance
*
* @param apTransId AP Transaction ID
* @param dtbs Data to be signed
* @param msisdn MSISDN (phone number in international format) of the target user
* @param userLangService Additional Service for selecting user language
* @param additionalServices List of additionalservices to add to the request
* @param signatureProfile Signature profile to use
* @param mssFormat MSS Format to use.
* @return created SwisscomRequest
*/
public SwisscomRequest createRequest(final String apTransId, final DTBS dtbs, final String msisdn, final AdditionalServiceType userLangService, final List<AdditionalServiceType> additionalServices, final String signatureProfile, final String mssFormat) {
final SwisscomRequest req = new SwisscomRequest();
String dataToBeDisplayed = null;
MessagingModeType messagingMode = MessagingModeType.ASYNCH_CLIENT_SERVER;
final MSSSignatureReq sigReq = this.mssClient.createSignatureRequest(apTransId, msisdn, dtbs, dataToBeDisplayed, signatureProfile, mssFormat, messagingMode);
req.sigReq = sigReq;
final List<AdditionalServiceType> as = sigReq.getAdditionalServices().getServices();
if (userLangService != null) {
as.add(userLangService);
}
if (additionalServices != null) {
for (final AdditionalServiceType s : additionalServices) {
if (s != null) {
as.add(s);
}
}
}
return req;
}
Aggregations