Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 37002 invoked from network); 28 Mar 2005 22:48:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 28 Mar 2005 22:47:59 -0000 Received: (qmail 14488 invoked by uid 500); 28 Mar 2005 22:47:59 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 14463 invoked by uid 500); 28 Mar 2005 22:47:59 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 14450 invoked by uid 99); 28 Mar 2005 22:47:59 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Mon, 28 Mar 2005 14:47:57 -0800 Received: (qmail 36986 invoked by uid 65534); 28 Mar 2005 22:47:56 -0000 Message-ID: <20050328224756.36985.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Mailer: svnmailer-1.0.0-dev Date: Mon, 28 Mar 2005 22:47:56 -0000 Subject: svn commit: r159321 - in geronimo/trunk: etc/ modules/jetty/ modules/jetty/src/java/org/apache/geronimo/jetty/ modules/jetty/src/java/org/apache/geronimo/jetty/interceptor/ To: scm@geronimo.apache.org From: djencks@apache.org X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: djencks Date: Mon Mar 28 14:47:54 2005 New Revision: 159321 URL: http://svn.apache.org/viewcvs?view=3Drev&rev=3D159321 Log: move to earlier creation of req/resp wrappers so they are available for jac= c purposes Added: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/RequestWrappingBeforeAfter.java Modified: geronimo/trunk/etc/project.properties geronimo/trunk/modules/jetty/project.properties geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFi= lterMapping.java geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettySe= rvletHolder.java geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWe= bAppContext.java geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/SecurityContextBeforeAfter.java Modified: geronimo/trunk/etc/project.properties URL: http://svn.apache.org/viewcvs/geronimo/trunk/etc/project.properties?vi= ew=3Ddiff&r1=3D159320&r2=3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/etc/project.properties (original) +++ geronimo/trunk/etc/project.properties Mon Mar 28 14:47:54 2005 @@ -138,7 +138,7 @@ jaxb_ri_version=3DSNAPSHOT jdbm_version=3D0.20-dev jelly_velocity_tags_version=3D1.0 -jetty_version=3D5.1.3rc2 +jetty_version=3D5.1.3-G-SNAPSHOT jgroups_version=3D2.2.5 jmock_version=3D1.0.1 jrms_version=3D1.1 Modified: geronimo/trunk/modules/jetty/project.properties URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/project.pro= perties?view=3Ddiff&r1=3D159320&r2=3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/project.properties (original) +++ geronimo/trunk/modules/jetty/project.properties Mon Mar 28 14:47:54 2005 @@ -2,7 +2,7 @@ ## $Rev$ $Date$ ## =20 -# the directory containing the geronimo website in CVS +maven.repo.remote=3Dhttp://www.mortbay.org/maven, http://www.openejb.org/m= aven, http://www.ibiblio.org/maven =20 maven.junit.jvmargs=3D-Djava.security.auth.login.config=3Dsrc/test-resourc= es/data/login.config -ea maven.junit.fork=3Dtrue Modified: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/J= ettyFilterMapping.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/src/java/or= g/apache/geronimo/jetty/JettyFilterMapping.java?view=3Ddiff&r1=3D159320&r2= =3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFi= lterMapping.java (original) +++ geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyFi= lterMapping.java Mon Mar 28 14:47:54 2005 @@ -21,9 +21,8 @@ import org.apache.geronimo.gbean.GBeanInfo; import org.apache.geronimo.gbean.GBeanInfoBuilder; import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; -import org.mortbay.jetty.servlet.WebApplicationHandler; -import org.mortbay.jetty.servlet.FilterHolder; import org.mortbay.jetty.servlet.Dispatcher; +import org.mortbay.jetty.servlet.WebApplicationHandler; =20 /** * @version $Rev: $ $Date: $ Modified: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/J= ettyServletHolder.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/src/java/or= g/apache/geronimo/jetty/JettyServletHolder.java?view=3Ddiff&r1=3D159320&r2= =3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettySe= rvletHolder.java (original) +++ geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettySe= rvletHolder.java Mon Mar 28 14:47:54 2005 @@ -88,7 +88,6 @@ throws ServletException, UnavailableException, IOException { =20 currentServletHolder.set(this); - PolicyContext.setHandlerData(ServletHttpRequest.unwrap(request)); =20 super.handle(request, response); } Modified: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/J= ettyWebAppContext.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/src/java/or= g/apache/geronimo/jetty/JettyWebAppContext.java?view=3Ddiff&r1=3D159320&r2= =3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWe= bAppContext.java (original) +++ geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/JettyWe= bAppContext.java Mon Mar 28 14:47:54 2005 @@ -39,6 +39,7 @@ import org.mortbay.http.HttpResponse; import org.mortbay.http.HttpException; import org.mortbay.jetty.servlet.*; +import org.mortbay.jetty.servlet.Dispatcher; =20 import org.apache.geronimo.gbean.GBeanInfo; import org.apache.geronimo.gbean.GBeanInfoBuilder; @@ -50,6 +51,7 @@ import org.apache.geronimo.jetty.interceptor.TransactionContextBeforeAfter; import org.apache.geronimo.jetty.interceptor.WebApplicationContextBeforeAf= ter; import org.apache.geronimo.jetty.interceptor.SecurityContextBeforeAfter; +import org.apache.geronimo.jetty.interceptor.RequestWrappingBeforeAfter; import org.apache.geronimo.transaction.context.OnlineUserTransaction; import org.apache.geronimo.transaction.TrackedConnectionAssociator; import org.apache.geronimo.transaction.context.TransactionContextManager; @@ -232,16 +234,17 @@ interceptor =3D new ThreadClassloaderBeforeAfter(interceptor, inde= x++, index++, this.webClassLoader); interceptor =3D new WebApplicationContextBeforeAfter(interceptor, = index++, this); //JACC - if (securityConfig !=3D null) { + if (securityRealmName !=3D null) { //set the JAASJettyRealm as our realm. JAASJettyRealm realm =3D new JAASJettyRealm(realmName, securit= yRealmName); setRealm(realm); this.securityInterceptor =3D new SecurityContextBeforeAfter(in= terceptor, index++, index++, policyContextID, securityConfig, authenticator= , securityRoles, uncheckedPermissions, excludedPermissions, rolePermissions= , realm); - interceptor =3D securityInterceptor; + interceptor =3D this.securityInterceptor; } else { securityInterceptor =3D null; } //end JACC + interceptor =3D new RequestWrappingBeforeAfter(interceptor, handle= r); chain =3D interceptor; contextLength =3D index; =20 Added: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/inte= rceptor/RequestWrappingBeforeAfter.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/src/java/or= g/apache/geronimo/jetty/interceptor/RequestWrappingBeforeAfter.java?view=3D= auto&rev=3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/RequestWrappingBeforeAfter.java (added) +++ geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/RequestWrappingBeforeAfter.java Mon Mar 28 14:47:54 2005 @@ -0,0 +1,55 @@ +/** + * + * Copyright 2003-2004 The Apache Software Foundation + * + * Licensed 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 implie= d=2E + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.geronimo.jetty.interceptor; + +import org.mortbay.http.HttpRequest; +import org.mortbay.http.HttpResponse; +import org.mortbay.jetty.servlet.ServletHandler; +import org.mortbay.jetty.servlet.ServletHttpRequest; +import org.mortbay.jetty.servlet.ServletHttpResponse; + +/** + * @version $Rev: $ $Date: $ + */ +public class RequestWrappingBeforeAfter implements BeforeAfter { + private final BeforeAfter next; + private final ServletHandler handler; + + public RequestWrappingBeforeAfter(BeforeAfter next, ServletHandler han= dler) { + this.next =3D next; + this.handler =3D handler; + } + =20 + public void before(Object[] context, HttpRequest httpRequest, HttpResp= onse httpResponse) { + if (httpRequest !=3D null) { + ServletHttpRequest request =3D (ServletHttpRequest) httpReques= t=2EgetWrapper(); + if (request =3D=3D null) + { + // Build the request and response. + request =3D new ServletHttpRequest(handler, null, httpRequ= est); + ServletHttpResponse response =3D new ServletHttpResponse(r= equest, httpResponse); + httpRequest.setWrapper(request); + httpResponse.setWrapper(response); + } + } + next.before(context, httpRequest, httpResponse); + } + + public void after(Object[] context, HttpRequest httpRequest, HttpRespo= nse httpResponse) { + next.after(context, httpRequest, httpResponse); + } +} Modified: geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/i= nterceptor/SecurityContextBeforeAfter.java URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/jetty/src/java/or= g/apache/geronimo/jetty/interceptor/SecurityContextBeforeAfter.java?view=3D= diff&r1=3D159320&r2=3D159321 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D --- geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/SecurityContextBeforeAfter.java (original) +++ geronimo/trunk/modules/jetty/src/java/org/apache/geronimo/jetty/interce= ptor/SecurityContextBeforeAfter.java Mon Mar 28 14:47:54 2005 @@ -37,21 +37,12 @@ import javax.security.jacc.WebResourcePermission; import javax.security.jacc.WebRoleRefPermission; import javax.security.jacc.WebUserDataPermission; - -import org.mortbay.http.Authenticator; -import org.mortbay.http.HttpException; -import org.mortbay.http.HttpRequest; -import org.mortbay.http.HttpResponse; -import org.mortbay.http.SecurityConstraint; -import org.mortbay.http.UserRealm; -import org.mortbay.jetty.servlet.FormAuthenticator; -import org.mortbay.jetty.servlet.ServletHttpRequest; +import javax.servlet.http.HttpServletRequest; =20 import org.apache.geronimo.common.GeronimoSecurityException; import org.apache.geronimo.jetty.JAASJettyPrincipal; import org.apache.geronimo.security.ContextManager; import org.apache.geronimo.security.IdentificationPrincipal; -import org.apache.geronimo.security.PrimaryRealmPrincipal; import org.apache.geronimo.security.RealmPrincipal; import org.apache.geronimo.security.SubjectId; import org.apache.geronimo.security.deploy.DefaultPrincipal; @@ -62,6 +53,14 @@ import org.apache.geronimo.security.jacc.RoleMappingConfiguration; import org.apache.geronimo.security.jacc.RoleMappingConfigurationFactory; import org.apache.geronimo.security.util.ConfigurationUtil; +import org.mortbay.http.Authenticator; +import org.mortbay.http.HttpException; +import org.mortbay.http.HttpRequest; +import org.mortbay.http.HttpResponse; +import org.mortbay.http.SecurityConstraint; +import org.mortbay.http.UserRealm; +import org.mortbay.jetty.servlet.FormAuthenticator; +import org.mortbay.jetty.servlet.ServletHttpRequest; =20 =20 /** @@ -175,6 +174,11 @@ PolicyContext.setContextID(policyContextID); setCurrentSecurityInterceptor(this); =20 + if (httpRequest !=3D null){ + ServletHttpRequest request =3D (ServletHttpRequest)httpRequest= .getWrapper(); + PolicyContext.setHandlerData((HttpServletRequest)request); + } + if (next !=3D null) { next.before(context, httpRequest, httpResponse); } @@ -352,19 +356,7 @@ } =20 JAASJettyPrincipal result =3D new JAASJettyPrincipal("default"); - Subject defaultSubject =3D new Subject(); - - RealmPrincipal realmPrincipal =3D ConfigurationUtil.generateRealmP= rincipal(defaultPrincipal.getPrincipal(), defaultPrincipal.getRealmName()); - if (realmPrincipal =3D=3D null) { - throw new GeronimoSecurityException("Unable to create realm pr= incipal"); - } - PrimaryRealmPrincipal primaryRealmPrincipal =3D ConfigurationUtil.= generatePrimaryRealmPrincipal(defaultPrincipal.getPrincipal(), defaultPrinc= ipal.getRealmName()); - if (primaryRealmPrincipal =3D=3D null) { - throw new GeronimoSecurityException("Unable to create primary = realm principal"); - } - - defaultSubject.getPrincipals().add(realmPrincipal); - defaultSubject.getPrincipals().add(primaryRealmPrincipal); + Subject defaultSubject =3D ConfigurationUtil.generateDefaultSubjec= t(defaultPrincipal); =20 result.setSubject(defaultSubject); =20