IAM Project - Advanced Java Students

The next step in the IAM Project : The IAM Web Application

This is the continuation of the previous project, that can be found here

Introduction

During this semester, we saw how to set up a web application. You should normally have an already running Web Application (if this is not the case, contact me).

The goal of this second project part is to make you use the maximum of your Java skills, around an industrial-inspired application.

To summarize what you have to use to fulfill this application:

  • Core Java concepts
  • Design Patterns
  • Java Server entities (JSP/Servlet)
  • Tools like And or Maven
  • Framework as Spring, Hibernate

First Task : Implement a login page

Feature description

At this step of the course you should have a running Web Application, this application should be composed by at least two pages, the first displaying all the identities in the system, the other to search an identity according to certain criteria.

To improve the system, you should define a User object, allowing you to handle the authentication phase

The Authentication mechanism

The Authentication mechanism of an application allows two things

  • To deny access to unauthorized persons
  • To adapt the application according to the connected user rights

Usually, the authentication is made through the concordance of a login/password couple, one can manually check this concordance in a database, or delegate this check to a LDAP Directory.

Feature Realization

This task will involve :

  • a JSP, a Servlet
  • A Database connection OR an LDAP connection (for that last technology, please refer to Spring LDAP)

How to program efficiently in a Java Server context

While developing this feature you will face some trouble when it comes to test your functionality. To avoid to loose to much time by relaunching the whole application each time you want to add or correct something, you can use JUnit which is the Unit Testing Framework, seen during this course.

The fact that JUnit tests are present in your delivery will be part of the evaluation

Technical Hints :

  • The JSP will contain two fields, according to the description above (login and password) and a button to submit the authentication
  • Once the authentication is checked, if the authentication is successful, then the "user" (User object) is stored in the session for further use. If the authentication fails, then the user is notified of the failure thanks to a message displayed on the page

You can check a lot of login pages and authentication mechanism: gmail, facebook etc.

Feature living example


Second Task: Implement an Identity Lifecycle Management Process

Feature Description

This is the main project part: The main goal of that feature is to manage an Identity through a normalized and scalable process.

Important remark

The "scalable" part of the process relies on a mechanism of a page generation according to a description of the identity object based on the xml

The description of this feature has a dedicated part : XML Generation

To achieve that, we will need to define five pages :

  • The Welcome page, which is a sort of dashboard: The welcome page gathers all the available actions for the user. There are three main actions:
    • Disconnection: the connected user can, via a link, disconnect from the application, it takes him to the login page
    • Identity Creation, Identity Search, two pages described below
  • The Identity Creation Page, which is where the user will input the identity information
  • The Identity Search Page, which is where the user will be able to find identities by giving some criteria. The user will have the ability to select one Identity and then have the choice to Modify, or Delete it
  • The Identity Modification Page, which is basically the same as the creation one, but with some restriction (you cannot change the email address for instance)
  • The Identity Deletion Page, available through the search page, which is the same as the creation page, except all the form fields are empty
IAM Web Application Schema

Feature Realization

To realize this feature, you will use one JSP by page, data will be transported thanks to the session (global data) and via <form> element, triggering servlet treatments.

One of the main subfeature is the usage of a database to store identity data, for that you can use either Hibernate or JDBC. Remember to explain your choice concerning the persistence technology.

Please use the following examples, without fully copying them

Feature Living Example - Welcome Page

Welcome to the IAM System

disconnect

Identity Creation

Thanks to this action, you can create a brand new Identity, you can click on the button below to begin

Identity Search

Thanks to this action, you can search an identity and then access to its information. Through this action, you can also modify or delete the wished identity


Feature Living Example - Creation Page

New Identity Creation

<< back

Identity Search

Identity Search

<< back

Search Criteria

Search Results

Selection UID First Name Last Name Email
1 Thomas Broussard tbr@acompany.com
2 David Mahery dma@acompany.com
3 Quentin Serrano qse@acompany.com

Feature Living Example - Modification Page

Identity Modification

<< back

XML Generation

Feature Description

You've just seen examples of Identity forms. These forms sample are static, meaning that if the need to have an extra parameter comes, we'll have to change each of the previous pages to add this field

To avoid that, you'll have to develop a feature to provide an XML-based form template, describing the available Identity fields proposed for input on the forms

To be defined with Mr. Perrot

Documentation Normalization

Being able to write a documentation at a standard and with a scientific approach is very appreciated in companies

Hereafter should be your table of content

  1. Subject description
  2. Subject analysis
    1. Major features
    2. Application Feasibility
    3. Data description
    4. Expected results
    5. Algorithms study
    6. Scope of the application (limits, evolutions)
  3. Conception
    1. Chosen algorithm
    2. Data structures
    3. Global application flow
    4. Global schema and major features schema
  4. GUI description
    1. <One section by page>
  5. Configuration instructions
  6. Commented Screenshots
  7. Bibliography