Before having a look at LDAP, we should know about ‘Directory’.

What is directory structure?
The directory structure is the organization of files into a hierarchy of folders. It should be stable and scalable; it should not fundamentally change, only be added to. Computers have used the folder metaphor for decades as a way to help users keep track of where something can be found.
When information is stored in Directory Structure, it becomes very much feasible to manage hierarchical information, read/write to it. This directory structure can be scaled up to achieve three major functionalities on the web: Authentication, Authorization, and Personalization.

LDAP stands for Lightweight Directory Access Protocol. LDAP is a standards based specification for interacting with directory data. Directory Services can implement support of LDAP to provide interoperability among third party applications.
LDAP is an open, industrial standard application protocol for reading and editing distributed directories over the network. In these directories, we have set of records in an organized hierarchical structure, similar to how a corporate email directory or a telephone directory looks like. LDAP enables anyone to locate resources in a network, be it on a public internet or corporate intranet. LDAP read operations are extremely fast than any other possible alternatives.

When we have looked at LDAP, lets get to know what an Active Directory is…
Active Directory is Microsoft’s implementation of directory service that, among other protocols, supports LDAP to query it’s data.

Securing Rest Web Service with In-Memory model of BasicAuth

This post deals with Securing a Spring Rest Web Service, using in-memory model of BasicAuth offered by Spring Security. The sample application built for this purpose has used Java 1.8 and Spring dependencies for version 5.

An earlier post on this website, ‘Building REST Web Service with Spring 5‘, covered creating a Rest Web Service using Spring 5. In this post, I am going to build authentication on the same set of Rest Web Services.

I prefer annotations/Java Configuration, so I have entirely used Java configuration in this implementation.
Over the existing Rest Webservice, I used In-Memory credentials with Default Spring BasicAuth. I will be sharing what new changes I had to do in this implementation.

Building REST Web Service with Spring 5

Representational State Transfer (REST) is an architectural style that specifies constraints, such as the uniform interface, that if applied to a web service induce desirable properties, such as performance, scalability, and modifiability, that enable services to work best on the Web.
In the REST architectural style, data and functionality are considered resources and are accessed using Uniform Resource Identifiers (URIs), typically links on the Web. The resources are acted upon by using a set of simple, well-defined operations. The REST architectural style constrains an architecture to a client/server architecture and is designed to use a stateless communication protocol, typically HTTP.
In the REST architecture style, clients and servers exchange representations of resources by using a standardized interface and protocol.

Git issues with GUI Clients on MacOs Sierra 10.13

Lately, I changed my GitHub Username to ‘anshulgammy’. So as expected, urls of all of my repositories were affected. Most of the times, I make use of command line Git to push my changes. Nevertheless, I enjoy the ease that Git GUI clients have to offer.

I am using macOS sierra 10.13, and it had SourceTree installed for quite sometime. When I tried to push my changes to Git repo using SourceTree, it kept asking me for password for my previous username on host.github.com. However, I was able to push the changes from my Terminal, without any issues. It took quite long for me to figure out how to resolve this issue.

PlayingWithSVG - Controlling various sections of Image using SVG format and JavaScript

What is SVG?

SVG stands for Scalable Vector Graphics. It is an XML-based vector image format for two-dimensional graphics with support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium since 1999. SVG images and their behaviors are defined in XML text files.

Advantages of using SVG over other image formats (like JPEG and GIF) are:

  • SVG images can be created and edited with any text editor
  • SVG images can be searched, indexed, scripted, and compressed
  • SVG images are scalable
  • SVG images can be printed with high quality at any resolution
  • SVG images are zoomable
  • SVG graphics do NOT lose any quality if they are zoomed or resized
  • SVG is an open standard
  • SVG files are pure XML

Angular Chat Application using Socket.IO

Socket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the server. It consists of: a Node.js server: Source.

Socket.IO is NOT a WebSocket implementation. Although Socket.IO indeed uses WebSocket as a transport when possible, it adds some metadata to each packet: the packet type, the namespace and the ack id when a message acknowledgement is needed. That is why a WebSocket client will not be able to successfully connect to a Socket.IO server, and a Socket.IO client will not be able to connect to a WebSocket server either.


Putting in configurations and using them through YAML has become so easy, a piece of cake. Whoever that comes from XML background, they would for sure appreciate the ease and flexibility offered by YAML.

The official documentation on YAML says, “YAML Ain’t Markup Language” (abbreviated YAML) is a data serialization language designed to be human-friendly and work well with modern programming languages for common everyday tasks. This specification is both an introduction to the YAML language and the concepts supporting it, and also a complete specification of the information needed to develop applications for processing YAML.