Authentication and Authorization for Java Microservices with Keycloak, Quarkus and Microprofile

In this blog post I want to point out that I created a 18 min YouTube video related to the newly created workshop Get started with security for your Java Microservices made by Harald, Niklas and me .

I focus in that video on the topics authentication and authorization for Java Microservices with Keycloak, Quarkus and Microprofile. Have fun 😉

Select your starting point for the video:

The workshop documentation with MkDocs:

I hope this was useful for you and let’s see what’s next?



#Authorization, #Authentication, #Java, #Microprofile, #Quarkus, #Keycloak

IBM Cloud Container Registry is Deprecating Container Builds

In this blog post I want to point out that I noticed that the IBM Cloud Container Registry is deprecating container builds.

If you don’t know the IBM Cloud Container Registry here are some useful features:

  • Threat insights – It provides advanced capabilities like vulnerability scanning, deployment policy enforcement, and comprehensive risk assessment and prioritization”
  • Integration – It ‘s the IBM Cloud preferred image registry; pre-integrated with the IBM Cloud Kubernetes Service for the DevOps workflow using IBM Open Toolchain or existing a CI/CD toolset.”
  • Security – It’s integrated with Identity and Access Manager and Resource Groups to provide fine-grained access controls to users within the IBM Cloud account.”
Continue reading

Get your Java microservice up and running

In this blog post I want to highlight the news, that our tutorial Get your Java Microservice up and running is now available on IBM Developer.

After you complete this workshop, you will:

  • Understand the Java implementation of a cloud-native RESTful Java microservice built on the open technologies Eclipse MicroProfile and Open Liberty
  • Be able to describe how to effectively build and run a microservice on a local machine in a container
  • Understands the steps needed to deploy a single microservice to Kubernetes and on the IBM Cloud Kubernetes service

I hope this was useful for you and let’s see what’s next?



#Java, #Microprofile, #Kubernetes, #Docker, #IBMCloud

How to handle basic dynamic interaction on a webpage with Vue.js

In this blog post I want to share how to handle basic dynamic content with Vue.js on our Cloud Native Starter landing webpage. Vue.js is an open source licensed progressive framework for building user interfaces”.

The gif below shows following sequence:

  1. First, the page content changes when a button is clicked. The page shows a little pre-view of content for one of the selected topics on the Cloud Native Starter project landing page. The topics are “Basic Concepts”, “Reactive” and “Security”.
  2. Second, the image on the right hand side changes, a headline appears or changes, a description appears or changes, and a Learn more button appears and changes the content for routing to another webpage.
  3. Third, at the end in the gif the button Learn more is pressed and the page for Basic Concepts is shown.

The questions are: How ..

  • … to change images?
  • … can a text be changed or appear?
  • … to show a button and change the rooting to other webpages?
Continue reading

Updated: How to prepare for a Hackathon with IBM Cloud?

In this new blog post I want to address a common situation for developers: You want to participate in a hackathon, and you plan to use IBM Cloud, but you have never used it before. How to prepare? So I created a newer version of my older blog post: How to prepare for a Hackathon with IBM Cloud 

IBM Cloud provides a huge amount of different services, runtimes, and more. From my point of view, one of the most important objectives in a hackathon is:

Run your developed application instance live! To do this you need a runtime 😉

Let’s start with the basics

Let’s get a basic understanding of what does IBM Cloud provide and where to find how to’s?

The IBM Cloud catalog gives you an entry point to find Cloud Services, Software and Consulting, which are organized by different categories like containers, storage and more as you see in the gif below.

IBM Cloud has a very good entry point for new users with the getting started page. The page is structured in five major steps.

  1. Explore IBM Cloud
  2. See cloud essentials
  3. Start building
  4. Helpful resources
  5. Get community support

The gif below shows the navigation going through the different steps on the getting started page.


Free online trainings

Continue reading

Get your Java Microservice up and running!

In this blog post I want to highlight the hands-on workshop “Get your Java Microservice up and running!“, now available in GitBook . That workshop demonstrates how to build a Microservice with Java and how to deploy the Microservice Kubernetes on the IBM Cloud. The Microservice in this workshop is kept as simple as possible, so that it can be used as a starting point for other Microservices. The Microservice has been developed with Java EE, OpenLiberty and Eclipse MicroProfile.

The workshop is a part of the open source project Cloud Native Starter, which contains sample code that demonstrates how to get started with cloud-native applications and Microservice based architectures.
The Workshop has a related badge called Cloud Native Starter Level 1. This badge is available at Acclaim. In the related quiz you can verify your knowledge you achieved in the workshop.

The gif below show some major steps in the hands-on workshop. You will develop locally a Java Microservice and deploy that Microservice to a free Kubernetes Cluster on IBM Cloud.

microservice docker java kubernetes deployment

I hope this was useful for you and let’s see what’s next?



#microprofile, #java, #ibmcloud, #openliberty, #microservices, #kubernetes

Reactive programming is about messages, futures, events, channels and streams

In this blog post I want to point out the topic of the open sourced Reactive Cloud Native Starter example with Java backend Microservices and a Vue.js frontend web application. The gif below shows the example application. The application simply displays Articles and Authors information on a web page. You also see the creation of Articles with cURL commands in a terminal session and the UI is updated automatically.
(the gif is from the Cloud Native Starter project)

reactive demo
That example was mainly developed by Niklas Heidloff. He wrote a lot of very useful blog posts like Development of Reactive Applications with Quarkus related to that topic.

In this blog post I show, what could be useful to know, when you start with this Cloud Native Starter example for reactive programming to create and consume reactive RESTful APIs in an asynchronous way. I will also give a brief overview of the steps to create an article in the example application.

Continue reading

How to create a new realm with the Keycloak REST API?

In this blog post I want to show, how to create a new realm with Keycloak REST API , because later I want to automate the Keycloak realm creation for a workshop using curl in a bash script.

The reason of that blog post is, that the information in the REST API documentation wasn’t detailed enough for me. The image shows what I found first in the Keycloak REST API documentation .


In common it’s very simple to use the Keycloak REST API. For more details see in my blog post Getting started to secure a simple Java Microservice with Keycloak, MicroProfile and OpenLiberty.

First you need a bearer authorization token for an administration user and with that token you create a new realm using the realm json exported before.

Here is what I found:

I used POSTMAN to check it out. These are the steps I did in POSTMAN.

Continue reading

Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (83) … using a remote development container to run the Vue.js application

In this blog post I want to show, how to setup a remote development container for a Vue.js application, which isn’t able to run on my local machine, even after the update of Node.js, npm and yarn.

I still get the error which is shown in the following image and it seems this error is related to the installed MacOS version 10.15.5.


To be able to work with the Vue.js project, I use now the remote container development functionality in Visual Studio Code as a workaround . This is very close to my blog post “Run a MicroProfile Microservice on OpenLiberty in a Remote development container in Visual Studio Code”.

You can follow the steps of the setup of the workaround for the “OS X 64-bit with Unsupported runtime (83)” problem.


Ensure you have installed Docker Desktop on your local machine.

Step 1: Install the following extensions in Visual Studio Code

Step 2: Open in your Visual Studio Code workspace the remote containers extension window (“Open a remote window“)


Step 3: Start “Remote Containers: Add Development Container Configuration Files …” and select a container as a starting point, here I use the Node 14 container definition (you can customize the “Dockerfile” to your needs). The container configuration in the Dockerfile contains Node.js, npm and yarn , which I need for the Vue.js development.
The gif below shows the steps.


Step 4: Verify the newly created folder “.devcontainer” and related files “devcontainer.json” and “Dockerfile”.


Step 5: I my case I only need to customize the “devcontainer.json” file to expose the port  8080, to access my Vue.js application in a local browser.


Step 6: Now open the local folder with “Remote Containers: Open Folder in container” in the remote development container. That will map the local folder as volume to the remote development container and code changes will be saved on your local file system and start the Vue.js development.

In the gif you see:

  • Start “Remote Containers: Open Folder in container”
  • Select a folder and open a terminal session in that folder
  • Execute “yarn serve”  in the terminal session
  • See is works the application is running and can be accessed in a local browser using URL “http://localhost:8080″


I hope this was useful for you and let’s see what’s next?



#Docker, #Container, #Vuejs, #VisualStudioCode, #RemoteDevelopment