Return-Path: Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: (qmail 43990 invoked from network); 24 Jun 2007 17:29:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 24 Jun 2007 17:29:14 -0000 Received: (qmail 63101 invoked by uid 500); 24 Jun 2007 17:29:13 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 63058 invoked by uid 500); 24 Jun 2007 17:29:13 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 63047 invoked by uid 500); 24 Jun 2007 17:29:13 -0000 Delivered-To: apmail-jakarta-tomcat-dev@jakarta.apache.org Received: (qmail 63044 invoked by uid 99); 24 Jun 2007 17:29:13 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Jun 2007 10:29:13 -0700 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 24 Jun 2007 10:29:09 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 903BB1A981A; Sun, 24 Jun 2007 10:28:49 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r550263 - in /tomcat/tc6.0.x/trunk: java/org/apache/catalina/deploy/SecurityRoleRef.java java/org/apache/catalina/startup/WebRuleSet.java webapps/docs/changelog.xml Date: Sun, 24 Jun 2007 17:28:49 -0000 To: tomcat-dev@jakarta.apache.org From: markt@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070624172849.903BB1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: markt Date: Sun Jun 24 10:28:45 2007 New Revision: 550263 URL: http://svn.apache.org/viewvc?view=rev&rev=550263 Log: Port fix for bug 41722. role-link in web.xml should be optional. Added: tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java (with props) Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/WebRuleSet.java tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Added: tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java?view=auto&rev=550263 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java (added) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java Sun Jun 24 10:28:45 2007 @@ -0,0 +1,88 @@ +/* + * 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. + */ + + +package org.apache.catalina.deploy; + + +/** + *

Representation of a security role reference for a web application, as + * represented in a <security-role-ref> element + * in the deployment descriptor.

+ * + * @author Mark Thomas + * @version $Revision$ $Date$ + * @since Tomcat 5.5 + */ + +public class SecurityRoleRef { + + + // ------------------------------------------------------------- Properties + + + /** + * The (required) role name. + */ + private String name = null; + + public String getName() { + return (this.name); + } + + public void setName(String name) { + this.name = name; + } + + + /** + * The optional role link. + */ + private String link = null; + + public String getLink() { + return (this.link); + } + + public void setLink(String link) { + this.link = link; + } + + + + // --------------------------------------------------------- Public Methods + + + /** + * Return a String representation of this object. + */ + public String toString() { + + StringBuffer sb = new StringBuffer("SecurityRoleRef["); + sb.append("name="); + sb.append(name); + if (link != null) { + sb.append(", link="); + sb.append(link); + } + sb.append("]"); + return (sb.toString()); + + } + + +} Propchange: tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tomcat/tc6.0.x/trunk/java/org/apache/catalina/deploy/SecurityRoleRef.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/WebRuleSet.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/WebRuleSet.java?view=diff&rev=550263&r1=550262&r2=550263 ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/WebRuleSet.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/WebRuleSet.java Sun Jun 24 10:28:45 2007 @@ -27,6 +27,7 @@ import org.apache.catalina.deploy.ContextHandler; import org.apache.catalina.deploy.ContextService; import org.apache.catalina.deploy.SecurityConstraint; +import org.apache.catalina.deploy.SecurityRoleRef; import org.apache.tomcat.util.IntrospectionUtils; import org.apache.tomcat.util.digester.CallMethodRule; import org.apache.tomcat.util.digester.CallParamRule; @@ -445,10 +446,14 @@ digester.addCallMethod(prefix + "web-app/servlet/run-as/role-name", "setRunAs", 0); - digester.addCallMethod(prefix + "web-app/servlet/security-role-ref", - "addSecurityReference", 2); - digester.addCallParam(prefix + "web-app/servlet/security-role-ref/role-link", 1); - digester.addCallParam(prefix + "web-app/servlet/security-role-ref/role-name", 0); + digester.addRule(prefix + "web-app/servlet/security-role-ref", + new SecurityRoleRefCreateRule()); + digester.addCallMethod( + prefix + "web-app/servlet/security-role-ref/role-link", + "setLink", 0); + digester.addCallMethod( + prefix + "web-app/servlet/security-role-ref/role-name", + "setName", 0); digester.addCallMethod(prefix + "web-app/servlet/servlet-class", "setServletClass", 0); @@ -623,7 +628,6 @@ public void begin(String namespace, String name, Attributes attributes) throws Exception { - Context context = (Context) digester.peek(digester.getCount() - 1); Object top = digester.peek(); Class paramClasses[] = new Class[1]; paramClasses[0] = "String".getClass(); @@ -870,3 +874,32 @@ } } +/** + * A Rule that adds a security-role-ref to a servlet, allowing for the fact that + * role-link is an optional element. + */ +final class SecurityRoleRefCreateRule extends Rule { + + public SecurityRoleRefCreateRule() { + } + + public void begin(String namespace, String name, Attributes attributes) + throws Exception { + SecurityRoleRef securityRoleRef = new SecurityRoleRef(); + digester.push(securityRoleRef); + if (digester.getLogger().isDebugEnabled()) + digester.getLogger().debug("new SecurityRoleRef"); + } + + public void end(String namespace, String name) + throws Exception { + SecurityRoleRef securityRoleRef = (SecurityRoleRef) digester.pop(); + Wrapper wrapper = (Wrapper) digester.peek(); + + wrapper.addSecurityReference(securityRoleRef.getName(), + securityRoleRef.getLink()); + + if (digester.getLogger().isDebugEnabled()) + digester.getLogger().debug("pop SecurityRoleRef"); + } +} \ No newline at end of file Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?view=diff&rev=550263&r1=550262&r2=550263 ============================================================================== --- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Sun Jun 24 10:28:45 2007 @@ -27,6 +27,10 @@ Tomcat 5. (markt) + 41722: Make the role-link element optional (as required by + the spec) when using a security-role-ref element. (markt) + + 42361: Handle multi-part forms when saving requests during FORM authentication process. Patch provided by Peter Runge. (markt) @@ -53,7 +57,7 @@ 42547: Fix NPE when a ResourceLink in context.xml tries to - override an env-entry in web.xml. + override an env-entry in web.xml. (markt) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org