ABC is a framework for analyzing benefit and compensation schemes.
See The ABC Framework for more details.
This simplified version of ABC is a web application that uses the Model 1 architecture.
The model is an instance of the Organization class:

ABC executes commands for adding members to an organization, listing the members of an organization, and adding a spouse to a member.
All commands are executed by a front controller JSP:

The front controller receives requests from forms on the login, addMember, and addSpouse pages, interacts with an organization object (bean), then forwards the request to a selected success, failure, or (list) members view.
Here's a snapshot of the login page:

Initially, the organization bean consists of a single member called "The Administrator" with member ID p100. We use this for our login.
The front controller determines that the ID is valid and displays the success page, which contains three links:

The administrator can add a few members using the Add Member form:

The administrator can also add a spouse for himself/herself:

Finally, the administrator can list all of the members:

Note that members and dependants are automatically assigned IDs beginning with p500.
Create a filter that displays the failure page when anyone other than the system administrator attempts to add a new member to the organization.
This filter should intercept all requests sent to the front controller.
Note that the ID of the user is stored in the session object by the front controller.
Create a filter that displays the failure page when anyone other than the system administrator or authorized members attempts to list the members of the organization.
Configure this filter with a comma separated list of the IDs of the authorized users:
<filter>
<filter-name>privledgeFilter</filter-name>
<filter-class>view.PrivledgeFilter</filter-class>
<init-param>
<param-name>authorized</param-name>
<param-value>p100,p501,p502</param-value>
</init-param>
</filter>
In the init method of the filter read these IDs into a list:
private
List<String> authorizedList;
public void init(FilterConfig
filterConfig) throws ServletException {
_filterConfig = filterConfig;
String authorized =
_filterConfig.getInitParameter("authorized");
StringTokenizer tokens = new
StringTokenizer(authorized, ",");
authorizedList = new
ArrayList<String>();
while (tokens.hasMoreTokens())
{
authorizedList.add(tokens.nextToken());
}
}