Different approaches to keep away Non-Prod URLs from search indexing.

One of the major SEO concerns while working on the website is blocking the non-production URLs appearing from search engines result(index), the search engines can index the non-prod URL if those URL’s are by mistake linked from live URL’s or exposed through any other external links. The indexing of non-prod URL can cause duplicate content issues that also impact the ranking of live URL’s, the end-user may access the non-production URL instead of the Live URL. This can sometimes lead to a compliance issue if the content bound to compliance and non-live content is exposed to the end-user.

Image for post
Image for post
https://unsplash.com/@mjessier

In this tutorial let us discuss the details on how to block the non-prod URLs appearing from search engines. …


Learn about the different tools available to you to save user data on your user’s browser

A flower vase and a laptop open to Google resting on a wood table.
A flower vase and a laptop open to Google resting on a wood table.
@kundeleknabiegunie unsplash.com

Modern web browsers offer different options for storing website data on users’ browsers, allowing this data to be retrieved based on the need. This enables website owners to persist the data for long-term storage, save website content or documents for offline use, store user preferences, apply states, and more.

In this tutorial, let’s discuss the different types of browser storage available for storing website data on a user’s browser.

Uses cases for browser storage

  • Personalizing site preferences
  • Persisting site activities
  • Storing the login state
  • Saving data and assets locally so a site will be quicker to download or usable without a network connection
  • Saving web application–generated documents locally for use…


Symlinks in Windows/Linux systems

The AMS 2.0 Dispatcher standard/AEM as Cloud Dispatcher configurations enable modularized dispatcher configurations and also simplify and remove the duplicate configuration.

As shown in the below diagram, one of the major changes is using symlinks to avoid duplication of farm files and host configurations. In earlier versions, the farm and vhost files are duplicated under available and enabled folders, this leads to duplication and overhead for management — the changes should be applied in two different files.

In AMS 2.0/AEM as Cloud Service dispatcher configurations, the files are managed through symlinks, the actual file is inside the available folder, and symlink created to the file under the enabled folder. …


Sync External Git Repository to Cloud Manager Repository

In the earlier tutorial, we have discussed the basic details on Cloud Manager and how to use CM API/Events to trigger the notification to Social Channel(Teams).

As discussed earlier, the Cloud Manager enables own Git repository to manage the deployment to different environments, for simple projects the Cloud Manager enabled git repository should be enough to manage the day to day development activities of the project. But for complex projects, the feature-based easy to manage repository(CM don’t provide any UI to manage the branches) should be required to manage the day to day development activities. …


Cloud Manager Notifications to Collaboration Channels — Microsoft Teams

Cloud Manager enables customers to manage their custom code deployments on their AEM-managed cloud environments with manageable pipeline automation and complete flexibility for the timing or frequency of their deployment.

The Cloud Manager CI/CD pipeline executes series of steps to build and deploy the code to AMS and AEM as Cloud AEM platforms, refer to the below video to understand the basics of Cloud Manager.

Cloud manager exposes APIs to interact with the CM settings and to manage the pipeline also emits different events on pipeline execution.

The Adobe I/O along with custom webhooks can be used to receive the appropriate events from Cloud Manager and take the required action. Also, the Cloud Manager APIs can be invoked through Adobe I/O to perform different operations on Cloud Manager. …


Configure Apache reverse proxy with HTTP/2

Diagram of reverse proxy
Diagram of reverse proxy
Photo by the author.

In this tutorial, we will see how to enable Apache Server as a reverse proxy system for a back-end server that is enabled with HTTP/2 protocol in Windows.

What Is HTTP/2?

HTTP/2 is the first upgrade to the Hypertext Transfer Protocol since 1999. Its goal is to improve website performance by optimizing how HTTP is expressed “on-the-wire.” It doesn’t change the semantics of HTTP, which means header fields, status codes, and cookies work exactly the same way as in HTTP/1.1.

HTTP/2 began its life as Google’s SPDY protocol, which they designed to address many of the performance problems inherent in HTTP/1.1. The core benefits of SPDY have made their way into HTTP/2, improved by the global Internet community, and formalized into an Internet Standard. …


Sync branches between BitBucket and GitHub repos

Waves washing up on shore
Waves washing up on shore
Photo by César Couto on Unsplash.

Most of the time, we will have a requirement to sync branches between two different repositories (e.g. BitBucket repository to GitHub repository).

This is a common scenario when working on a cloud repository, but the day-to-day development is managed through local repositories. In that case, the local repository branches should be synced to the cloud repository for deployment. Handling the sync manually creates a lot of issues and also consumes more time from the development team. The better option is to automate the branch sync between the local repository and cloud repository. Complete repository mirroring can be enabled, but that will sync every branch. …


Enable Run-Mode Specific Servlets in AEM

Image for post
Image for post

Servlets are one of the important building blocks of the AEM system to enable the AEM system interacts with external applications, servlets can expose data with external applications also data to be consumed by the Font-End layer.

Some of the time, we may have the use case to enable the servlets based on the run mode(author, publish, etc)of the AEM server, for example, the servlet should be enabled only in the servers with run mode publish or should be enabled only in servers with run mode dev.

In this tutorial, let us see the details on enabling the Servlets in AEM based on the run mode. …


Register Servlets Dynamically in AEM

Image for post
Image for post

Most of the time while working on the project we will have scenarios to dynamically register the servlets with different resource types, selector and extension, etc — registering the same servlet with different resource types, selector, extensions, etc.

Let's assume we have a servlet that is registered with a specific resource type but later we have a requirement to enable the same servlet for a different resource type, one of the common options is modifying the source code to enable the additional resource types. The code change might not be the optimal solution in most cases.

In this tutorial, let us see the simple approach to register the servlets dynamically with different resource types, selectors, and extensions. …


Deserialization vulnerability protection in Java

Serialization/Deserialization

Serialization is a mechanism of converting the state of an in-memory object into a byte stream — e.g. storing the object into a file

Employee emp= new Employee();
String filename = "employee.ser";
FileOutputStream file = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(file);
out.writeObject(emp);out.close();
file.close();

Deserialization is the reverse process where the byte stream is used to recreate the actual Java object in memory.

String filename = "employee.ser";FileInputStream file = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file);
Employee emp= (Employee)in.readObject();in.close();
file.close();
Image for post
Image for post

A Java object is serializable if its class or any of its superclasses implements either the java.io.Serializable interface or the java.io.Externalizable …

About

Albin Issac

Working as a Software Architect on Marketing Technologies. Reach out to me on Linkedin: https://www.linkedin.com/in/albin-issac-56917523/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store