Abstract:
A system and method for securely controlling (e.g., “starting” and “stopping”) a WebSphere Portal (WP) in a production environment without the requirement of having knowledge of (and using) the administrator credentials (ID and password). The system and method, as implemented in a Java application, receives from requesting users and determines whether the requesting users are authorized to control (start/stop) the portal by comparing each requesting user&#39;s ID and PW against a list of authorized user IDs and PWs and, if there is a match, passing on the authorized user ID and PW to the portal for controlling (starting/stopping) the WebSphere Portal. The system and method further conveys portal control request authorized user acceptances or portal control request unauthorized user rejections—depending upon whether the requesting user&#39;s ID and PW matches any of the list of authorized user IDs and PWs.

Description:
BACKGROUND OF THE INVENTION  
       [0001]    1. Field of the Invention 
         [0002]    The present invention generally relates to the IBM® WebSphere® Portal and, specifically, the present invention provides a system and method for controlling (e.g., starting and stopping) the IBM WebSphere Portal (WP) without the requirement of having knowledge of the administrator credential ID and password (PW). 
         [0003]    2. Related Art 
         [0004]    WebSphere refers to a brand of IBM software products which helped define the middleware software category and is designed to set up, operate and integrate e-business applications across multiple computing platforms using Web technologies. It includes both the run-time components (like WebSphere Application Server (WAS)) and the tools to develop applications that will run on WAS. The IBM WebSphere Portal provides personalized access to a variety of applications and aggregate disparate content sources and services. Portals allow people to customize their user experience, with personalized applications based on role, context, actions, location, preferences and team collaboration needs. There are many other things that can be brought into a portal site. Web portals allow partners, employees and customers to choose their user experience, with personalized applications based on role, context, actions, location, preferences and team collaboration needs. IBM WebSphere Portal software provides a composite application or business mashup framework and the advanced tooling needed to build flexible, SOA-based solutions, as well as the unmatched scalability required by any size organization. 
         [0005]    There are some known ways to start and stop WebSphere Portal (WP). For instance:
       1. via commands on the Command Line Interface (CLI) on a session shell;   2. on the administrator console (admin console) via a web browser; and   3. with a WP configuration task.       
 
         [0009]    For more information, see http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index.jsp?topic=/com.ibm.wp.ent.d oc/wpf/inst_startstop.html. 
         [0010]    Each of these require knowledge of the administrator credential identification (ID) and password. This requirement is necessary in the prior art as the ability to start and stop the WP needs to be secure, that is, only authorized persons are allowed to start and stop the WP. However, this is a problem if the administrator credential ID and password are not known to the person with operator role wishing to start or stop the WP. 
         [0011]    Existing portals have an existing interface which is configured to respond to only one user ID (and password) to control the portal, i.e., start and stop the portal. In this way, controlling the portal is secure. However, as discussed above, it is very limited in its usage due to the above requirements. If the person who owns those credentials is not available, there is no way for another person not having those credentials to start and stop WP. These tasks are very critical during deployment and maintenance windows. Additionally, if those credentials get stolen or lost, the whole production environment becomes vulnerable and is exposed to a great risk of security attacks. In addition, it can cause delays in that maintenance or deployment procedures may not be able to be performed in a timely manner causing inefficiencies. 
         [0012]    As such, a new secure system and method are necessary to allow a person to start and stop the WebSphere Portal (WP) without the requirement of having knowledge of the administrator credential ID and password as described above. 
       SUMMARY OF THE INVENTION  
       [0013]    The system and method of the present invention provide a secure manner to start and stop WebSphere Portal (WP) on a production environment without the requirement of having knowledge of (and using) the administrator credentials (ID and password). 
         [0014]    The system and method, as implemented in a Java application, receives input from requesting users and determines whether the requesting users are authorized to control (start/stop) the portal by comparing each requesting user&#39;s ID and PW against a list of authorized user IDs and PWs and, if there is a match, passing on the authorized user ID and PW to the portal for controlling (starting/stopping) the WebSphere portal. The system and method further conveys acceptances of user requests for portal control or rejections of user requests for portal control - depending upon whether the requesting user&#39;s ID and PW match any of the list of authorized user IDs and PWs. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         [0015]    These and other features of this invention will be more readily understood from the following detailed description of the various aspects of the invention taken in conjunction with the accompanying drawings in which: 
           [0016]      FIG. 1  shows a system suitable for storing and/or executing program code, such as the program code of the present invention. 
           [0017]      FIG. 2  shows an illustrative communication network for implementing an embodiment of method of the present invention. 
           [0018]      FIG. 3  shows a diagram illustrating an embodiment of the system of the present invention. 
           [0019]      FIG. 4  shows a diagram illustrating another embodiment of the system of the present invention including illustrating different types of roles. 
           [0020]      FIG. 5  shows a block diagram illustrating the preferred embodiment of the method of the present invention. 
       
    
    
       [0021]    The drawings are not necessarily to scale. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. The drawings are intended to depict only typical embodiments of the invention, and therefore should not be considered as limiting the scope of the invention. In the drawings, like numbering represents like elements. 
       DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0022]    The system and method of the present invention utilizes a Java-based application which encrypts the administration ID and password. It provides a proxy or entry point to call WP administration tasks. Details are shown in the figures to be discussed below. 
         [0023]    According to the present invention, there is a Java code interface “in front of” the existing portal interface. The Java code interface is configured to recognize multiple valid user IDs (and respective passwords) as authorized to control the portal. When any user ID makes a control request to the Java code interface, the Java code interface determines if the user ID (and password) are authorized based on the configuration of the Java code interface, and if so, outputs to the existing portal interface the one user ID for which the existing portal interface is configured to recognize as authorized. 
         [0024]    As a matter of background, a description of a data processing system in which the method and system of the present may be implemented is provided. A data processing system, such as that system  100  shown in  FIG. 1 , suitable for storing and/or executing program code (such as the code of the present invention) will include at least one processor (processing unit  106 ) coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory (RAM  130 ) employed during actual execution of the program code, bulk storage (storage  118 ), and cache memories (cache  132 ) which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (external devices  116 ) (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers (I/O Interface  114 ). 
         [0025]    Network adapters (network adapter  138 ) may also be coupled to the system to enable the data processing system (as shown in  FIG. 2 , data processing unit  202 ) to become coupled to other data processing systems (data processing unit  204 ) or remote printers (printer  212 ) or storage devices (storage  214 ) through intervening private or public networks (network  210 ). (A computer network is composed of multiple computers connected together using a telecommunication system for the purpose of sharing data, resources and communication. For more information, see http://historyoftheinternet.org/). Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters. (A network card, network adapter or NIC (network interface card) is a piece of computer hardware designed to allow computers to communicate over a computer network. It is both an OSI layer  1  (physical layer) and layer  2  (data link layer) device, as it provides physical access to a networking medium and provides a low-level addressing system through the use of MAC addresses. It allows users to connect to each other either by using cables or wirelessly.) 
         [0026]    Java is a programming language originally developed by Sun Microsystems and released in 1995 as a core component of Sun&#39;s Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode which can run on any Java virtual machine (JVM) regardless of computer architecture. 
         [0027]    As noted above, one embodiment of the system and method of the present invention utilizes a Java-based application which encrypts the administration ID and password. (It should be noted that any fourth generation programming language (also known as 4GL) may be used as well. A 4GL is a higher-level programming language that automates many of the basic functions that must be spelled out in conventional languages, and can obtain results with an order-of-magnitude less coding because of its richer content of commands. It is a computer language that is more advanced than traditional high-level programming languages.) The application provides a proxy or entry point to call WP administration tasks. Details are shown in the figures to be discussed below. 
         [0028]    According to the present invention and as is shown in  FIG. 3 , a Java application  307  has a Java code interface  302  “in front of” the Java application code  306 , the existing portal interface  304  and the existing portal control application code  308 . The Java code interface  302  provides an interface to the Java application code  306  which is configured to recognize multiple valid user IDs (and respective passwords) as authorized to control the portal. When any user ID makes a control request via Portal control request channel  312  to the Java code interface  302 , the Java code interface  302  passes the request to the Java application code  306  which determines if the requesting user ID (and password) are authorized by comparing the requesting user ID and password against a list of authorized user IDs and associated passwords in table  310 . If the requesting user ID and password match one of user IDs and passwords in the list of authorized user IDs and associated passwords in table  310 , the Java application code  306  outputs, via authorized user portal control request channel  318 , to the existing portal control code interface  304 , the user ID for which the existing portal interface  304  is configured to recognize as authorized. The existing portal control code interface  304  passes this on to the Java application code  306  for processing as an authorized user. Concurrently, the Java application code  306  outputs, via the Java code interface  302  and the portal control request response channel  316 , to the requesting user, an authorized user response indicating to the user that the request has been accepted. If the requesting user ID and password do not match one of user IDs and passwords in the list of authorized user IDs and associated passwords in table  310 , the Java application code  306  outputs, via the Java code interface  302  and the Portal control request response channel  316 , to the requesting user, an unauthorized user response indicating to the user that the request has been rejected. 
         [0029]    This is shown in  FIG. 4  as well. The Java code interface  302  recognizes, from User IDs and PWs  406 , multiple valid user IDs (and respective passwords)  404  as authorized to control the portal. When any user ID makes a control request to the Java code interface  302 , the Java code interface determines if the user ID (and password) are authorized based on the configuration of the Java code interface  302 , and if so, outputs, to the existing portal interface  304 , the one user ID  404  for which the existing portal interface  304  is configured to recognize as authorized. 
         [0030]      FIG. 5  illustrates a block diagram of the method  500  of the present invention which starts at  502 . At  504 , a request to control the WebSphere Portal is received at the Java code interface. At  506 , the Portal control request is parsed by the Java application code to obtain the user ID and PW of the requesting party. At  508 , the Java application code compares the requesting user ID and PW with a list of user IDs and associated PWs which are authorized to control the WebSphere Portal. At  510 , it is determined whether the requesting user ID and associated PW is authorized to control the WebSphere Portal. If not, at  518 , an unauthorized user rejection notification is conveyed to the requesting user and the method ends at  516 . If so, the authorized user ID and PW are conveyed to the WebSphere Portal I/F and, at  514 , the requesting user is authorized to control Portal, while, concurrently, at  520 , an authorized user acceptance notification is conveyed to the requesting user and the process ends at  516 . While “control” is the verb used in the description of the invention, it should be noted that it is intended that “control” to mean any type of WebSphere Portal, including Starting and Stopping the WebSphere Portal. 
         [0031]    It should be understood that the present invention is typically computer-implemented via hardware and/or software. As such, client systems and/or servers will include computerized components as known in the art. Such components typically include (among others) a processing unit, a memory, a bus, input/output (I/O) interfaces, external devices, etc. 
         [0032]    While shown and described herein as a system and method for controlling a WebSphere Portal, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable/useable medium that includes computer program code to enable a computer infrastructure to allow for the control a WebSphere Portal. To this extent, the computer-readable/useable medium includes program code that implements each of the various process steps of the invention. It is understood that the terms computer-readable medium or computer useable medium comprises one or more of any type of physical embodiment of the program code. In particular, the computer-readable/useable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computing device, such as memory and/or storage system (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.), and/or as a data signal (e.g., a propagated signal) traveling over a network (e.g., during a wired/wireless electronic distribution of the program code). 
         [0033]    As used herein, it is understood that the terms “program code” and “computer program code” are synonymous and mean any expression, in any language, code or notation, of a set of instructions intended to cause a computing device having an information processing capability to perform a particular function either directly or after either or both of the following: (a) conversion to another language, code or notation; and/or (b) reproduction in a different material form. To this extent, program code can be embodied as one or more of: an application/software program, component software/a library of functions, an operating system, a basic I/O system/driver for a particular computing and/or I/O device, and the like. 
         [0034]    The foregoing description of various aspects of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed, and obviously, many modifications and variations are possible. Such modifications and variations that may be apparent to a person skilled in the art are intended to be included within the scope of the invention as defined by the accompanying claims.