Access Manager 7.0 2005Q4 contains a number of web application archive (WAR) files. These packages contain Java servlets and JavaServer PagesTM (JSP) pages you can modify to customize Access Manager to meet your needs. This chapter provides a general overview of WAR files, and describes the WAR files that come with Access Manager. The chapter contains the following sections:
Access Manager is built upon the Java 2 Platform, Enterprise Edition (J2EE) platform which uses a component model to create full-scale applications. A component is self-contained functional software code assembled with other components into a J2EE application. The J2EE application components can be deployed separately on different servers. J2EE application components include the following:
Client components such as including dynamic web pages, applets, and a Web browser that run on the client machine.
Web components such as servlets and Java Server Pages (JSPs) that run within a web container.
Business components, which can be code that meets the needs of a particular enterprise domain such as banking, retail, or finance. Such business components also run within the web container.
Enterprise infrastructure software that runs on legacy machines.
When a web browser executes a J2EE application, it deploys server-side objects known as web components. Java Server Pages (JSPs) and corresponding servlets are two such web components.
Small Java programs that dynamically process requests and construct responses from a web browser. Servlets run within web containers.
Text-based documents that contain static template data such as HTML, Scalable Vector Graphics (SVG), Wireless Markup Language (WML), or eXtensible Markup Language (XML). JSPs also contain elements such as servlets that construct dynamic content.
J2EE components are usually packaged separately, and then bundled together into an Enterprise Archive (EAR) file for application deployment. Web components are packaged in web application archives, also known as WAR files. Each WAR file contains servlets, JSPs, a deployment descriptor, and related resource files.
Static HTML files and JSP are stored at the top level of the WAR directory. The top-level directory contains the WEB-INF subdirectory which contains tag library descriptor files in addition to the following:
Servlets, JavaBean components and related Java class files. These must be stored in the WEB-INF/classes directory.
Tag libraries and any utility libraries called by server-side classes. These must be stored in the WEB-INF/lib directory.
The web component deployment descriptor is stored in the WEB-INF directory
When you customize Access Manager, you must modify the files included in Access Manager WARs, which results in changes to the web components. Remember that when you apply a patch or an upgrade to Access Manager, any customization you have implemented may be overwritten.
The Access Manager WARs are located in the following directory:
AccessManager-base/SUNWam and include:
console.war
password.war
services.war
The console.war contains files used by the Access Manager administration console.
You can modify the following console.war files:
web.xml and related XML files used for constructructing it are located in AccessManager-base /SUNWam/web-src/applications/WEB-INF/.
Modifiable JavaScript files are located in AccessManager-base /SUNWam/web-src/applications/console/js/.
Modifiable JSP are located in the following directories dependant upon the service that deploys them:
AccessManager-base /SUNWam/web-src/applications/console/auth/
AccessManager-base /SUNWam/web-src/applications/console/federation/
AccessManager-base /SUNWam/web-src/applications/console/policy/
AccessManager-base /SUNWam/web-src/applications/console/service/
AccessManager-base /SUNWam/web-src/applications/console/session/
AccessManager-base /SUNWam/web-src/applications/console/user/
Modifiable image files are located in AccessManager-base /SUNWam/web-src/applications/console/images/.
Modifiable stylesheets are located in AccessManager-base/SUNWam/web-src/applications/console/css/.
Do not modify the following console.war files. Modifying these files may cause unintended Access Manager behaviors.
JARs are located in AccessManager-base/SUNWam/web-src/applications/WEB-INF/lib/.
Tag Library Descriptor (.tld) files are located in AccessManager-base/SUNWam/web-src/applications/WEB-INF/.
The password.war contains files used by the Access Manager password reset service.
You can modify the following password.war files:
web.xml and related XML files used for constructing it are located in AccessManager-base/SUNWam/web-src/password/WEB-INF/.
JSPs located in /SUNWam/web-src/password/password/ui/ .
Image files located in SUNWam/web-src/password/password/images/ .
Stylesheets located in AccessManager-base/SUNWam/web-src/password/password/css/.
Do not modify the following password.war files. Modifying the following files may cause unintended Access Manager behaviors.
JARs located in AccessManager-base/SUNWam/web-src/password/WEB-INF/lib/.
Tag library descriptor (.tld) files located in AccessManager-base/web-src/password/WEB-INF/.
The services.war contains files used by various Access Manager services.
You can modify the following services.war files:
web.xml and related XML files used for constructing it are located in AccessManager-base/SUNWam/web-src/services/WEB-INF/.
JavaScript files are located in AccessManager-base/SUNWam/web-src/services/js/.
JSP are located in the following directories dependant upon the service that requires the customization:
AccessManager-base/SUNWam/web-src/services/config/auth/default/
AccessManager-base/SUNWam/web-src/services/config/federation/default/
Image files are located in the following directories dependant upon the service to which the images apply:
AccessManager-base/SUNWam/web-src/services/images/
AccessManager-base/SUNWam/web-src/services/fed_images/
AccessManager-base/SUNWam/web-src/services/login_images/
Stylesheets are located in the following directories dependant upon the service to which they apply:
AccessManager-base/SUNWam/web-src/services/css/.
AccessManager-base/SUNWam/web-src/services/fed_css/.
Do not modify the following services.war files. Modifying the following files may cause Access Manager to fail:
Non-modifiable JARs are located in AccessManager-base/SUNWam/web-src/services/WEB-INF/lib/.
Non-modifiable Tag Library Descriptor (.tld) files are located in AccessManager-base/SUNWam/web-src/services/WEB-INF/ .
Once a file within a WAR is modified, the WAR itself needs to be updated with the newly modified file. Following is the procedure to update a WAR.
cd AccessManager-base/ SUNWam
This is the directory in which the WARs are kept.
jar -uvf WARfilename.war < path_to_modified_file>
The -uvf option replaces the old file with the newly modified file. For example:
jar -uvf console.war newfile/index.html
replaces the index.html file in console.war with the index.html file located in AccessManager-base/SUNWam/newfile .
rm newfile/index.html
Delete the modified file.
Once updated, the WARs must be redeployed to their web container. The web container provides services such as request dispatching, security, concurrency, and life cycle management. The web container also gives the web components access to the J2EE APIs.
The BEA WebLogic Server 6.1 and Sun Java System Application Server web containers do not require WARs to be exploded. They are deployed as WARs. After redeploying the war files, you must restart all related servers.
Delete the existing Access Manager web applications using the following form:
server_root/bin/https/bin/wdeploy delete -u uri_path -i instance -v vs_id hard|softwhere the following variables are used:
The URI prefix for the web application (requires a leading \x{201C}/\x{201D}).
The server instance name.
The virtual server ID.
(Optional) The directory to which the application is deployed, or from which the application is deleted. If not specified for deployment, the application is deployed to instance_directory/webapps/vs_id/webappname. In this example, this directory is
/opt/SUNWwbsvr/https-test/webapps/ https-test/testapp
Specifies whether both the directory and the server.xml entry are deleted (hard), or only the server.xml entry is deleted (soft).
The WAR file name.
In the following example, the Sun Java System Web Server is installed in the directory /opt/SUNWwbsvr. To remove the amserver web application, use the following command: /opt/SUNWwbsvr/https/bin/wdeploy delete -u /amserver -i system.example.com -v https-system.example.com hard
Repeat this step for all Access Manager applications such as /amserver , /amconsole , and /ampassword.
Deploy the web application using the following form:
wdeploy deploy -u uri_path -i instance -v vs_id [-d directory] war_file
In this example, to deploy the amserver.war file, use the following command:
/opt/SUNWwbsvr/https/bin/wdeploy deploy -u /amserver -i system.example.com -v https-system.example.com -d /opt/SUNWwbsvr/web-apps/services /opt/SUNWam/services.war
For more information on deploying web applications, see the chapter “Deploying Web Applications,”http://docs.sun.com/source/817-6251/pwadeply.html#wp21505, in the Sun Java System Web Server 6.1 SP4 Programmer's Guide to Web Applications.
Run the Java command on the BEA WebLogic 6.1 Server using the following form:
java weblogic.deploy -url protocol://server_host:server_port -component amconsole:WL61 _server_name deploy WL61_admin_password deployment_URI AccessManager-base/SUNWam/WARname.war
where the following variables are used:
The protocol [http | https] and fully-qualified name of the Access Manager server.
The name of the WebLogic server.
The WebLogic administrator password.
For console.war, the deployment URI is amconsole.
For server.war, the deployment URI is amserver.
For password.war, the deployment UIR is ampassword.
The directory where the Access Manager server is installed.
The name of the WAR file to deploy.
[console.war | server.war | password.war]
For more complete information on the Java utility weblogic.deploy and its options, see the BEA WebLogic Server 6.1 documentation.
On the Application Server, run the asadmin command using the following form:
asadmin deploy -u S1AS_administrator -w S1AS_administrator_password -H console_server_host -p S1AS_server_port --type web secure_flag --contextroot deploy_uri --name deploy_uri --instance S1AS_instanceAccessManager-base/SUNWam/WARname
where the following variables are used:
Application Server administrator
Application Server administrator password
Access Manager server host name
Application Server port number
For console.war, the deployment URI is amconsole.
For password.war, the deployment URI is ampassword.
For service.war, the deployment URI is amservices.
Application Server directory where Access Manager server is installed
The name of the WAR file to deploy.
[console.war | server.war | password.war]
For more information on the asadmin deploy command and its options, see the Sun Java System Application Server 7.0 Developer’s Guide.
For detailed instructions on how to deploy WARs in an IBM WebSphere Application Server container, see the documentation that comes with the product: http://www-3.ibm.com/software/webservers/studio/doc/v40/studioguide/en/html/sdsscenario1.html.