How to disable HappyAxis.jsp page from axis2 web service?

3.4k views Asked by At

For Security reasons. I dont want to display my server details to anybody.

http://:/MyServices/axis2-web/HappyAxis.jsp

When i clicked above link it shows my server related details.

How to disable HappyAxis.jsp page from axis2 web service?

1

There are 1 answers

0
Zack Dawood On

You need to make 2 changes.

1) Remove the following code from the index.jsp file in the WAR file / Web Application

   <li><a href="axis2-web/HappyAxis.jsp">Validate</a>
   <br/>
    Check the system to see whether all the required libraries are in place
    and view the system information.   </li>

Folder --> WebContent\axis2-web\index.jsp / Warfile\axis2-web\index.jsp

Modified index.jsp code

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
      <head>
        <jsp:include page="include/httpbase.jsp"/>
        <title>Axis 2 - Home</title>
        <link href="axis2-web/css/axis-style.css" rel="stylesheet" type="text/css"/>
      </head>

      <body>
        <jsp:include page="include/header.inc" />
        <br/>

        <h1>Welcome!</h1>
        Welcome to the new generation of Axis. If you can see this page you have
        successfully deployed the Axis2 Web Application. However, to ensure that Axis2
        is properly working, we encourage you to click on the validate link.
        <br/>
        <ul>
          <li><a href="services/listServices">Services</a>
            <br/>
            View the list of all the available services deployed in this server.
          </li>

          <%--<li><a href="interop.jsp">Do an interop test</a>
          <br/>
          You can run Interoperability tests here
          </li>--%>
          <li><a href="axis2-admin/">Administration</a>
            <br/>
            Console for administering this Axis2 installation.
          </li>
        </ul>
        <jsp:include page="include/footer.inc"/>
      </body>
    </html>

2) Rename the HappyAxis.jsp to a new name (Say ServerDetails.jsp) and modify the LeftFrame.jsp to show the newly created ServerDetails.jsp. By this way only when you login you can see the HappyAxis.jsp / ServerDetails.jsp link.

<tr>
                         <td colspan="2" >
                           <b>Happy Axis</b>
                         </td>
                        </tr>
                         <tr>
                           <td>
                           &nbsp;&nbsp;&nbsp;&nbsp;
                           </td>
                           <td>
                             <a href="axis2-web/ServerDetails.jsp">Validate</a>
                           </td>
                        </tr>

Complete modified LeftFrame.jsp

                                <%--
              ~ Licensed to the Apache Software Foundation (ASF) under one
              ~ or more contributor license agreements. See the NOTICE file
              ~ distributed with this work for additional information
              ~ regarding copyright ownership. The ASF licenses this file
              ~ to you under the Apache License, Version 2.0 (the
              ~ "License"); you may not use this file except in compliance
              ~ with the License. You may obtain a copy of the License at
              ~
              ~ http://www.apache.org/licenses/LICENSE-2.0
              ~
              ~ Unless required by applicable law or agreed to in writing,
              ~ software distributed under the License is distributed on an
              ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
              ~ KIND, either express or implied. See the License for the
              ~ specific language governing permissions and limitations
              ~ under the License.
              --%>

            <%@ page import="org.apache.axis2.Constants" %>
            <%@ page import="org.apache.axis2.context.ConfigurationContext" %>
            <%@ page import="org.apache.axis2.context.ServiceContext" %>
            <%@ page import="org.apache.axis2.context.ServiceGroupContext" %>
            <%@ page import="org.apache.axis2.deployment.util.PhasesInfo" %>
            <%@ page import="org.apache.axis2.description.AxisModule" %>
            <%@ page import="org.apache.axis2.description.AxisOperation" %>
            <%@ page import="org.apache.axis2.description.AxisService" %>
            <%@ page import="org.apache.axis2.description.AxisServiceGroup" %>
            <%@ page import="org.apache.axis2.description.Parameter" %>
            <%@ page import="org.apache.axis2.engine.AxisConfiguration" %>
            <%@ page import="org.apache.axis2.engine.Handler" %>
            <%@ page import="org.apache.axis2.engine.Phase" %>
            <%@ page import="org.apache.axis2.util.JavaUtils" %>
            <%@ page import="java.util.ArrayList" %>
            <%@ page import="java.util.Collection" %>
            <%@ page import="java.util.Enumeration" %>
            <%@ page import="java.util.HashMap" %>
            <%@ page import="java.util.Hashtable" %>
            <%@ page import="java.util.Iterator" %>
            <%@ page contentType="text/html;charset=UTF-8" language="java" %>
            <table width="100%" style="border-right:1px solid #CCCCCC;">
                <tr>
                 <td colspan="2" >
                   <b>Tools </b>
                 </td>
                </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/upload">Upload Service</a>
                   </td>
                </tr>
            <tr>
                 <td colspan="2" >
                  <b><nobr>System Components&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</nobr></b>
                 </td>
              </tr>
              <tr>
                <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                </td>
                <td >
                  <a href="axis2-admin/listService">Available Services</a>
                </td>
             </tr>
             <tr>
                <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                </td>
                <td >
                  <a href="axis2-admin/listServiceGroups">Available Service Groups</a>
                </td>
             </tr>
             <tr>
                <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                </td>
                <td >
                  <a href="axis2-admin/listModules">Available Modules</a>
                </td>
             </tr>
             <tr>
                <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                </td>
                <td>
                  <a href="axis2-admin/globalModules">Globally Engaged Modules</a>
                </td>
             </tr>
             <tr>
                <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                </td>
                <td >
                  <a href="axis2-admin/listPhases">Available Phases</a>
                </td>
             </tr>
              <tr>
                 <td colspan="2" >
                   <b>Execution Chains</b>
                 </td>
              </tr>
               <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/viewGlobalHandlers">Global Chains</a>
                   </td>
                </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/selectService">Operation Specific Chains</a>
                   </td>
                </tr>
                <tr>
                 <td colspan="2" >
                   <b>Engage Module</b>
                 </td>
              </tr>
               <tr>
                   <td>
                    &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/engagingglobally">For all Services</a>
                   </td>
                </tr>
                 <tr>
                    <td>
                     &nbsp;&nbsp;&nbsp;&nbsp;
                    </td>
                    <td>
                      <a href="axis2-admin/engageToServiceGroup">For a Service Group</a>
                    </td>
                 </tr>


                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/engageToService">For a Service</a>
                   </td>
                </tr>

                 <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/listOperation">For an Operation</a>
                   </td>
                </tr>

                <tr>
                 <td colspan="2" >
                   <b>Services</b>
                 </td>
              </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/deactivateService">Deactivate Service</a>
                   </td>
                </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/activateService">Activate Service</a>
                   </td>
                </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/selectServiceParaEdit">Edit Parameters</a>
                   </td>
                </tr>
                <tr>
                 <td colspan="2" >
                   <b>Contexts</b>
                 </td>
                </tr>
                <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-admin/listContexts">View Hierarchy</a>
                   </td>
                </tr>
                <tr>
                 <td colspan="2" >
                   <b>Happy Axis</b>
                 </td>
                </tr>
                 <tr>
                   <td>
                   &nbsp;&nbsp;&nbsp;&nbsp;
                   </td>
                   <td>
                     <a href="axis2-web/ServerDetails.jsp">Validate</a>
                   </td>
                </tr>
            </table>

Also the new jsp ServerDetails.jsp can be accessed by the user if they know the path. If you want secure futher either you delete the Happy axis jsp and remove reference from the index.jsp or else modify the AdminServlet to add security validation for this JSP org.apache.axis2.transport.http.AxisAdminServlet