Setup

The example project consists of three parts. 

  1. A studio model that contains two projects where the AQ_SoapServiceClient services are modeled. (Blue)
  2. A soap service with different endpoints that can be called by the projects. (Grey)
  3. The application.properties and keystore. (Pink)



Studio

Import the attached branch  (studio branch BQ10, or studio branch BQ14) in Blueriq studio. The branch contains two projects, one internal library and three external libraries. In the picture you can see an overview of the projects.

The two studio projects have the same module structure with different WSDL's. One project contains a WSDL for SOAP 1.1 and the other project contains a WSDL for SOAP 1.2.

Web service security stub

The web service security stub application can be downloaded here (in parts):

web-service-security-stub-0.0.32.zip.001web-service-security-stub-0.0.32.zip.002 and web-service-security-stub-0.0.32.zip.003

To start the web-service-security-stub use start-web-service-security-stub.bat (Java 11 is needed)

Runtime

To be able to run these projects the following configurations have to be made:

  1. The path for the filesystemconnection and the path for the keystore have to be set in the application.properties file. 
  2. The various connections used by the example project have to be configured (see example below)

The application.properties and the keystore can be downloaded here.


blueriq.connection.filesystemconnection.filesystem.path=D:/path/to/uploads

# timeout
blueriq.connection.GetPerson11.soap.timeout=2000
blueriq.connection.GetPerson12.soap.timeout=2000

# dynamic urls
blueriq.connection.TenantA11.soap.url=http://localhost:8080/soap11/a
blueriq.connection.TenantB11.soap.url=http://localhost:8080/soap11/b
blueriq.connection.TenantA12.soap.url=http://localhost:8080/soap12/a
blueriq.connection.TenantB12.soap.url=http://localhost:8080/soap12/b

# security: basic authentication
blueriq.connection.basic11.soap.url=http://localhost:8080/soap11/basicAuthentication
blueriq.connection.basic11.soap.username=user
blueriq.connection.basic11.soap.password=password
blueriq.connection.basic12.soap.url=http://localhost:8080/soap12/basicAuthentication
blueriq.connection.basic12.soap.username=user
blueriq.connection.basic12.soap.password=password

# (NOTE: username token is no longer implemented in Blueriq 15)

# security: signature
blueriq.connection.signing11.soap.url=http://localhost:8080/soap11/signature
blueriq.connection.signing11.soap.interceptors=SignatureInterceptor
blueriq.connection.signing12.soap.url=http://localhost:8080/soap12/signature
blueriq.connection.signing12.soap.interceptors=SignatureInterceptor

# security: timestamp
blueriq.connection.timestamp11.soap.url=http://localhost:8080/soap11/timestamp
blueriq.connection.timestamp11.soap.interceptors=TimestampInterceptor
blueriq.connection.timestamp12.soap.url=http://localhost:8080/soap12/timestamp
blueriq.connection.timestamp12.soap.interceptors=TimestampInterceptor

# security: encryption
blueriq.connection.encryption11.soap.url=http://localhost:8080/soap11/encryption
blueriq.connection.encryption11.soap.interceptors=EncryptionInterceptor
blueriq.connection.encryption12.soap.url=http://localhost:8080/soap12/encryption
blueriq.connection.encryption12.soap.interceptors=EncryptionInterceptor

# security: signature + timestamp + encryption
blueriq.connection.signingTimestampEncryption11.soap.url=http://localhost:8080/soap11/x509
blueriq.connection.signingTimestampEncryption11.soap.interceptors=SignatureInterceptor,TimestampInterceptor,EncryptionInterceptor
blueriq.connection.signingTimestampEncryption12.soap.url=http://localhost:8080/soap12/x509
blueriq.connection.signingTimestampEncryption12.soap.interceptors=SignatureInterceptor,TimestampInterceptor,EncryptionInterceptor

# security interceptors (NOTE: username token is no longer implemented in Blueriq 15)
blueriq.soap.interceptors.security.SignatureInterceptor.request.signature.enabled=true
blueriq.soap.interceptors.security.SignatureInterceptor.request.signature.key-alias=web-service

blueriq.soap.interceptors.security.TimestampInterceptor.request.timestamp.enabled=true  blueriq.soap.interceptors.security.EncryptionInterceptor.request.encryption.enabled=true
blueriq.soap.interceptors.security.EncryptionInterceptor.request.encryption.key-alias=web-service

# NOTE: update the path to the keystore
blueriq.security.keystore.location=D:/path/to/keystore.jks
blueriq.security.keystore.password=welcome

In production, the passwords should be encrypted.

Do not forget to updated the paths for the filesystemconnection connection and the keystore.


Now the project can be started.

Optional Port Change

In case there is a need to change the port number the following needs to be done:


Next: 2. Document attachments