Sunday, December 28, 2014

LDAP Browser From Apache

The Eclipse-based LDAP browser and directory client

Apache Directory Studio is a complete directory tooling platform intended to be used with any LDAP server however it is particularly designed for use with ApacheDS. It is an Eclipse RCP application, composed of several Eclipse (OSGi) plugins, that can be easily upgraded with additional ones. These plugins can even run within Eclipse itself.

Open Ldap resources

Saturday, December 27, 2014

Open Source Authentication and authorization choices

Somewhere I read that OAuth is an open source alternative to Siteminder altenative.
OAuth is an open standard to authorization. OAuth provides client applications a 'secure delegated access' to server resources on behalf of a resource owner.

And OpenAM seems to be for Authentication probably for Adatptive Authentication.
OpenAM provides open source Authentication, Authorization, Entitlement and Federation software. Through OpenAM, the community actively continues development of OpenSSO.

Connect Tomcat 6 to Apache HTTP Server 2

How to Connect Tomcat 6 to Apache HTTP Server 2

Tomcat can be run as a standalone server. Tomcat can also be run as an add-on to the Apache HTTP Server (or Microsoft IIS) - as the Java servlet/JSP container. In this combination, Tomcat executes the Java servlets and JSPs, the Apache serves the static HTML pages and performs other server-side functions such as CGI, PHP, SSI, etc. Read "Why should I integrate Apache with Tomcat? (or not)" at Tomcat FAQ (
To configure Tomcat to work with Apache HTTP Server, you should first read the documentation provided in Tomcat thoroughly, and read the "Tomcat Connector" documents @
To run Tomcat together with Apache:
  • Apache needs to load a "adapter" module, which uses a certain protocol, such as Apache JServ Protocol (AJP), to communicate with the Tomcat, via another TCP port (port 8009 in the default configuration).
  • When Apache receives an HTTP request, it checks if the request belongs to Tomcat. If so, it lets the adapter takes the request and forwards it to Tomcat, as illustrated below.
There are a few adapter modules available, such as Apache JServ Protocol (AJP) v1.2 "JServ" module (outdated), AJP v1.3 "JK 1.2" module (in use) and "JK 2" module (deprecated). I will only describe the JK1.2 module with Apache 2 here.
The step-by-step procedure is as follow:
Step 0.1: Install Apache HTTP Server - Refer to "Apache HTTP Server - How To". I shall assume that Apache is installed in directory "d:\myproject\apache", and runs on port 7000. I shall denote the apache installed directory as $APACHE_HOME.
Step 0.2: Install Tomcat - Refer to "Tomcat - How To". I shall assume that Tomcat is installed in directory "d:\myproject\tomcat", runs on port 8080. Tomcat's shall contains two web contexts: "/examples" (Tomcat's servlets and JSP examples) and "/ws" (to be created by you). I shall denote Tomcat's installed directory as $CATALINA_HOME (Catalina is the code name for Tomcat 5 and above).
Step 1: Download the Apache-Tomcat Connector Module - An Apache-Tomcat connector - JK1.2 module - which is an adapter module used by Apache to communicate with Tomcat (using AJP v1.3 protocol through TCP port 8009), can be downloaded from Tomcat mother site @ (⇒ Download ⇒ Tomcat Connectors ⇒ JK 1.2 ⇒ JK 1.2 Binary Releases ⇒ win32 ⇒ jk-1.2.xx ⇒ "").
Rename the downloaded module to "" and move into directory "d:\myproject\apache\modules".
Step 2: Configure Apache - We need to configure the Apache HTTP Server to load and initialize the JK module.
Create a configuration file called "mod_jk.conf" as follows and place it in "d:\myproject\tomcat\conf":
# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module modules/

# Where to find
# Update this path to match your conf directory location
JkWorkersFile d:/myproject/tomcat/conf/

# Where to put jk logs
# Update this path to match your logs directory location
JkLogFile d:/myproject/tomcat/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"

# Send everything for context /ws to worker ajp13
JkMount /ws ajp13
JkMount /ws/* ajp13 

# Send everything for context /examples to worker ajp13
JkMount /examples ajp13
JkMount /examples/* ajp13
For each web context that is to be forwarded from Apache to Tomcat, include two JKMount statements as shown. In the above configuration, Apache forwards all requests to web contexts "/examples" and "/ws" to Tomcat, via a "worker" called "ajp13". (Check the URL of the Tomcat's servlet and JSP examples from the Tomcat's welcome page! It may move!)
Include the above configuration directives into the Apache's configuration by adding the following include statement at the end of "d:\myproject\apache\conf\httpd.conf":
include d:/myproject/tomcat/conf/mod_jk.conf
Note: Unix's forward slash is used as the directory separator instead of backward slash (because Apache was originally built for Unix). The include statement simply appends all the statements from the file "d:\myproject\tomcat\conf\mod_jk.conf" into "httpd.conf". (You can of course add those statements into "httpd.conf" directly.)
Next, observe that the configuration refers to a worker file called "", and forward certain requests to a JK worker called "ajp13". Create the "" file and place it in "d:\myproject\tomcat\conf" as follows:
# Define 1 real worker named ajp13

# Set properties for worker named ajp13 to use ajp13 protocol,
# and run on port 8009
Note: The JKMount statements forward the requests to a worker called "ajp13", which is defined in this "".
Step 3: Configure Tomcat - The default configuration in Tomcat's "conf\server.xml" starts the AJP1.3 service via the following configuration, on TCP port 8009 (remove the comments if these lines are commented out).
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
Step 4: Start the Apache with the JK module
D:\myproject\apache\bin> httpd -k install
D:\myproject\apache\bin> httpd -k start
Check the Apache's log "logs\errors.log" to confirm that JK module was started:
Starting the Apache2.2 service
The Apache2.2 service is running.
Apache/2.2.xx (Win32) mod_jk/1.2.xx configured -- resuming normal operations
Step 5: Start the Tomcat server
D:\myproject\tomcat\bin> startup
Observe that AJP1.3 service is initiated and the ajp13 worker is listening at port 8009.
Oct 1, xxxx 9:44:05 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /
Oct 1, xxxx 9:44:05 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/18  config=null
The order of starting up Tomcat and Apache is NOT important. Either apache or tomcat can be restarted at any time.
Step 6: Verify the Installation - Issue the following URLs to access the web contexts "/examples" and "/ws", that are defined in Tomcat (running in port 8080), but accessed via the Apache (running in port 7000).

Try Tomcat's servlet examples via Apache
Try Tomcat's JSP examples via Apache
Try Tomcat's examples via Apache
Access ws from Tomcat directly
Access ws via Apache


Friday, December 26, 2014

PiWik- Free Web Analytics


Piwik is the leading open source web analytics platform.

Coursera - Online courses

Today I came across this site CourseEra. This has lot of online courses both paid and free. The courses seem to conducted by faculties of the universities from all over the world. I just registered for one of the free course, hope it will be a pleasant learning experience.

Sunday, December 14, 2014

WhatsApp on Windows PC - Version 2

This is another version of my previous post

Previously I mentioned about YouWave which is not free. This post is about something that is completely free. Yes you can now install WhatsApp on Windows.
You would need to do following things.
1. Download and install Virtual Box from

2. Download Android 4.4 ISO from

3. Install Android on Virtual Box using the youtube video

4. Download WhatsApp Android version from 

5. Put the APK file on a USB and pull it on Android Emulator in Virtual Box.

You are done!