morgand     01/08/21 14:09:15

  Modified:    latka/conf suite.dtd
               latka/doc TestLatka.xml
               latka/src/java/org/apache/commons/latka/http Request.java
                        RequestImpl.java
               latka/src/java/org/apache/commons/latka/xml
                        RequestHandler.java
               latka/src/test-webapp/WEB-INF web.xml
  Added:       latka/src/test-webapp/basicAuth Login.jsp
  Log:
  added basic authentication
  
  Revision  Changes    Path
  1.12      +4 -2      jakarta-commons/latka/conf/suite.dtd
  
  Index: suite.dtd
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/conf/suite.dtd,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- suite.dtd 2001/08/21 17:08:19     1.11
  +++ suite.dtd 2001/08/21 21:09:15     1.12
  @@ -19,7 +19,7 @@
   <!ATTLIST session sessionId CDATA #IMPLIED
                     label      CDATA #IMPLIED>
   
  -<!ELEMENT request (requestHeader*, param*, validate?)>
  +<!ELEMENT request (credentials?, requestHeader*, param*, validate?)>
   <!ATTLIST request path   CDATA           #REQUIRED
                     method (post | get | head)   "get"
                     secure (true | false) "false"
  @@ -28,7 +28,9 @@
                     label  CDATA           #IMPLIED
                     followRedirects (true | false) "true">
   
  -<!-- basic authentication credentials are not supported for now -->
  +<!ELEMENT credentials EMPTY>
  +<!ATTLIST credentials userName CDATA #REQUIRED
  +                      password CDATA #REQUIRED>
   
   <!ELEMENT requestHeader EMPTY>
   <!ATTLIST requestHeader headerName  CDATA #REQUIRED
  
  
  
  1.2       +37 -0     jakarta-commons/latka/doc/TestLatka.xml
  
  Index: TestLatka.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/doc/TestLatka.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestLatka.xml     2001/08/21 19:27:08     1.1
  +++ TestLatka.xml     2001/08/21 21:09:15     1.2
  @@ -54,4 +54,41 @@
   
     </session>
   
  +  <!-- end header checks -->
  +
  +  <!-- start basic auth checks -->
  +
  +  <!-- 
  +    does not work.  HttpClient throws an exception rather than returning a 401 
  +    seems wrong, because unauthorized ne error
  +   -->
  +  <request path="/latka-test/basicAuth/Login.jsp" label="not logged in">
  +    <validate>
  +      <statusCode code="401" label="Without credentials, status code should be 
401"/>
  +    </validate>
  +  </request>
  +
  +  <!-- 
  +    in order for these tests to succeed, you must configure the latka roles
  +    and MisterSmiley user in your servlet container.  For tomcat, this is:
  +        <user name="MisterSmiley" password="smiley!1" roles="latka-auth" />
  +    why doesn't this work?
  +  -->
  +  <session>
  +    <request path="/latka-test/basicAuth/Login.jsp" label="logged in">
  +      <credentials userName="Mister Smiley" password="smiley!1" />
  +      <validate>
  +        <regexp pattern="Logged in"/>
  +      </validate> 
  +    </request>
  +
  +    <request path="/latka-test/basicAuth/Login.jsp" label="cached credentials">
  +      <validate>
  +        <regexp pattern="Logged in" label="should still be logged in"/>
  +      </validate> 
  +    </request>
  +  </session>    
  +
  +  <!-- end basic auth checks -->
  +
   </suite>
  
  
  
  1.6       +8 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/http/Request.java
  
  Index: Request.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/Request.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Request.java      2001/08/21 16:28:45     1.5
  +++ Request.java      2001/08/21 21:09:15     1.6
  @@ -87,4 +87,12 @@
      * @return time it took to execute the request in millis
      */
     public int getRequestTiming();
  +
  +  /**
  +   * Sets the credentials for this request.
  +   * 
  +   * @param userName
  +   * @param password
  +   */
  +  public void setCredentials(String userName, String password);
   }
  
  
  
  1.8       +4 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java
  
  Index: RequestImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/http/RequestImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- RequestImpl.java  2001/08/21 16:28:46     1.7
  +++ RequestImpl.java  2001/08/21 21:09:15     1.8
  @@ -7,6 +7,7 @@
   import java.util.Date;
   import java.util.Iterator;
   
  +import org.apache.commons.httpclient.Credentials;
   import org.apache.commons.httpclient.State;
   import org.apache.commons.httpclient.HttpMethod;
   import org.apache.commons.httpclient.methods.GetMethod;
  @@ -84,6 +85,9 @@
     // Request Interface Methods //
     ///////////////////////////////
   
  +  public void setCredentials(String userName, String password) {
  +    _session._state.setDefaultCredentials(new Credentials(userName,password));
  +  }
   
     /**
      * Execute this HTTP request.
  
  
  
  1.9       +2 -0      
jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java
  
  Index: RequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/latka/src/java/org/apache/commons/latka/xml/RequestHandler.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- RequestHandler.java       2001/08/21 16:30:45     1.8
  +++ RequestHandler.java       2001/08/21 21:09:15     1.9
  @@ -92,6 +92,8 @@
           _listener.requestSkipped(new RequestSkippedEvent(_request,null));
           log.info("request skipped");
         }
  +    } else if (localName.equals("credentials")) {
  +      _request.setCredentials(atts.getValue("userName"),atts.getValue("password"));
       } else if (localName.equals("requestHeader")) {  
         log.info("adding request headers");
         RequestHeaderHandler headerHandler  = new 
RequestHeaderHandler(_reader,_request);
  
  
  
  1.2       +19 -0     jakarta-commons/latka/src/test-webapp/WEB-INF/web.xml
  
  Index: web.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/latka/src/test-webapp/WEB-INF/web.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- web.xml   2001/08/21 19:27:08     1.1
  +++ web.xml   2001/08/21 21:09:15     1.2
  @@ -6,4 +6,23 @@
   
   <web-app>
   
  +  <!-- if you want to test basic auth, you have to set it up the latka-auth
  +       role in your servlet container's security interface -->
  +  <security-constraint>
  +    <web-resource-collection>
  +      <web-resource-name>Protected Area</web-resource-name>
  +        <!-- Define the context-relative URL(s) to be protected -->
  +        <url-pattern>/basicAuth/*</url-pattern>
  +      </web-resource-collection>
  +      <auth-constraint>
  +         <!-- Anyone with one of the listed roles may access this area -->
  +         <role-name>latka-auth</role-name>
  +      </auth-constraint>
  +    </security-constraint>
  +
  +    <login-config>
  +      <auth-method>BASIC</auth-method>
  +      <realm-name>latka-realm</realm-name>
  +    </login-config>
  +
   </web-app>
  
  
  
  1.1                  jakarta-commons/latka/src/test-webapp/basicAuth/Login.jsp
  
  Index: Login.jsp
  ===================================================================
  Logged in
  
  
  

Reply via email to