Password tokenisation in Mule 4

  • Written By WHISHWORKS
  • 23/08/2018

In the blog titled ‘How to enable Secure Property Placeholder in MuleSoft‘, we have discussed how to encrypt properties and sensitive data that might float in and out of the applications and may be visible to the development and support teams.

Now we are here with a new post on how to enable Secure Property Placeholder in Mule 4, employing the latest security configuration module (Secure properties config) that will help protect sensitive data. This module is used to encrypt and decrypt information like passwords, SSN, Credit Card numbers and other confidential information.

For the purposes of this blog, we will be using password tokenisation as an example with Blowfish.js as the encryption algorithm and Anypoint Studio 7 as the development tool. At the end of the blog we also provide a brief outline on how to use different encryption algorithms.

Step 1: Encrypting & Decrypting a Password

  • Password encryption:

1.    Click http://sladex.org/blowfish.js/
2.    Follow the steps as shown in the screen shot below

Password encryption
  • Password decryption:
Password decryption

Step 2: Secure module configuration in Mule 4 Domain Project:

1.    Create a new domain project
2.    Create a file “configuration.yaml” in src/main/resource

 Mule 4 domain:
http:
  host: “localhost”
  port: “9091”
db:
  host: “localhost”
  port: “3306”
  user: “root”
  database: “webservices”
secret:
  key: “secure@123”
  password: “![Id+Ray4b7QtxhuNj6AALYg==]”  ← place the encrypted password generated in blowfish.js (step 1) in the Encrypted password section, within the punctuation shown here.

3.    Go to Global Elements → Create → Global Configurations → Configuration Properties → file , browse and select “configuration.yaml

4.    Add a module “Secure properties config” 
Manage Modules  Add Modules → search for “Secure properties config” and Add5.    Create → Connector Configuration → Secure properties config →

Secure properties config

Step 3: How to test Decrypting Password is working or not:

1.    Add a Database module 
Manage Modules  Add Modules →search for “Database” and Add

2.    Creating Connector Configuration    
Create  Connector Configuration  Database Config

Use the below expression in the Password text box.

${secure::mule4domain.secret.password}

Database Config


How to use other encryption algorithms in Mule 4 

Mule 4 supports various encryption algorithms like AESBlowfishRSADES and others as shown in the list below.

Setup encryption information

In order to use any of these algorithms in Mule 4, the steps are the same as they were in Mule 3, and you can find them here: Secure Property Placeholder in MuleSoft

The only difference is the repository location (step 2 of the blog). In Mule 4 the repository location is here:http://anypoint-enterprise-security-update-site.s3.amazonaws.com/1.7.3  

If you would like to find out more about how API-led connectivity can help you create a a fully integrated environment, do give us a call at +44 (0)203 475 7980 or email us at marketing@whishworks.com

Other useful links:

How to enable Secure Property Placeholder in MuleSoft

Anypoint Platform Identity Management – OKTA

Overview and best practices for MUnit 2 testing framework

Latest Insights

Blogs

Introduction to: Event Streaming

In this blog we introduce the key components of event streaming, including outlining the differences between traditional batch data processing and real-time event streaming.

Dynamic Overlay for PDF Template
Blogs

Developer’s guide: creating a dynamic overlay for a PDF template

In this blog, we provide a step-by-step solution to dynamically changing the template of a PDF document using the open source software PDFbox.

Infographic Kafka banking
Blogs

Transforming Banking with Apache Kafka

In this blog (and infographic) we summarise the key takeaways from that webinar, showcasing how forward-looking banks are getting ahead of the curve with real-time streaming.