You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by kaprasi <ka...@gmail.com> on 2009/01/23 12:49:10 UTC

How to enforece status like manager authentication for my web app?

Hi,

I have written a simple web-app and I have deployed it in tomcat-6.0.18.
I want to ensure that a particular jsp file can't be accessed directly.
As in, in the tomcat page (http://localhost:8080/) on the left side there is
a link titled Status.
Clicking on which brings up a log-in dialog.
I want the same thing to happen if someone tries to access test.jsp
directly.

I added the following role to tomcat-users.xml :

<role rolename="manager"/>
<user username="tomcat" password="s3cret" roles="manager"/>

I also added <auth-constraint> to my web.xml but still it is possible to
access the jsp directly by this url :
http://localhost:8080/myApp/jsp/test.jsp where as I expect the jsp page to
come up only when following url is keyed in :
http://localhost:8080/myApp/first

What should I do in order to force user to go through the
user-authentication?

Thanks in advance.

The war contents are like this :

META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/web.xml
WEB-INF/lib/
WEB-INF/lib/servlet-api.jar
WEB-INF/classes/
WEB-INF/classes/com/
WEB-INF/classes/com/myComp/
WEB-INF/classes/com/myComp/MyServlet.class
jsp/
jsp/myfile.jsp
jsp/some.jsp
jsp/test.jsp
jsp/welcome.jsp

And the web.xml looks like this : 

<?xml version="1.0" encoding="iso-8859-1"?>
  <!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
 <display-name>J2EE Examples Application</display-name>
  <!-- Standard Action Servlet Configuration (with debugging) -->
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.myComp.MyServlet</servlet-class>
  </servlet>

  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/first</url-pattern>
  </servlet-mapping>

  <security-constraint>

    <web-resource-collection>
        <url-pattern>/jsp/test.jsp</url-pattern>
    </web-resource-collection>

    <auth-constraint>
        <role-name>manager</role-name>
    </auth-constraint>

  </security-constraint>

   <security-role>
        <description>
           The role that is required to log in to the Manager Application
        </description>
        <role-name>manager</role-name>
   </security-role>

</web-app>
-- 
View this message in context: http://www.nabble.com/How-to-enforece-status-like-manager-authentication-for-my-web-app--tp21623099p21623099.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: How to enforece status like manager authentication for my web app?

Posted by Pid <p...@pidster.com>.
kaprasi wrote:
> Hi,
> 
> I have written a simple web-app and I have deployed it in tomcat-6.0.18.
> I want to ensure that a particular jsp file can't be accessed directly.
> As in, in the tomcat page (http://localhost:8080/) on the left side there is
> a link titled Status.
> Clicking on which brings up a log-in dialog.
> I want the same thing to happen if someone tries to access test.jsp
> directly.
> 
> I added the following role to tomcat-users.xml :
> 
> <role rolename="manager"/>
> <user username="tomcat" password="s3cret" roles="manager"/>
> 
> I also added <auth-constraint> to my web.xml but still it is possible to
> access the jsp directly by this url :
> http://localhost:8080/myApp/jsp/test.jsp where as I expect the jsp page to
> come up only when following url is keyed in :
> http://localhost:8080/myApp/first
> 
> What should I do in order to force user to go through the
> user-authentication?

you need to define a login-config config section too.
google for some examples on how to do this.

> Thanks in advance.
> 
> The war contents are like this :
> 
> META-INF/
> META-INF/MANIFEST.MF
> WEB-INF/
> WEB-INF/web.xml
> WEB-INF/lib/
> WEB-INF/lib/servlet-api.jar

remove the above line, it is not necessary and will likely cause your
app to demonstrate unpredictable behaviour.

p


> WEB-INF/classes/
> WEB-INF/classes/com/
> WEB-INF/classes/com/myComp/
> WEB-INF/classes/com/myComp/MyServlet.class
> jsp/
> jsp/myfile.jsp
> jsp/some.jsp
> jsp/test.jsp
> jsp/welcome.jsp
> 
> And the web.xml looks like this : 
> 
> <?xml version="1.0" encoding="iso-8859-1"?>
>   <!DOCTYPE web-app PUBLIC
>         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
>         "http://java.sun.com/dtd/web-app_2_3.dtd">
> 
> <web-app>
>  <display-name>J2EE Examples Application</display-name>
>   <!-- Standard Action Servlet Configuration (with debugging) -->
>   <servlet>
>     <servlet-name>MyServlet</servlet-name>
>     <servlet-class>com.myComp.MyServlet</servlet-class>
>   </servlet>
> 
>   <!-- Standard Action Servlet Mapping -->
>   <servlet-mapping>
>     <servlet-name>MyServlet</servlet-name>
>     <url-pattern>/first</url-pattern>
>   </servlet-mapping>
> 
>   <security-constraint>
> 
>     <web-resource-collection>
>         <url-pattern>/jsp/test.jsp</url-pattern>
>     </web-resource-collection>
> 
>     <auth-constraint>
>         <role-name>manager</role-name>
>     </auth-constraint>
> 
>   </security-constraint>
> 
>    <security-role>
>         <description>
>            The role that is required to log in to the Manager Application
>         </description>
>         <role-name>manager</role-name>
>    </security-role>
> 
> </web-app>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org