DO NOT REPLY [Bug 50975] IIS connector times out on Transfer Encoded content, never sending the chunked content

2011-03-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=50975

Tim Whittington  changed:

   What|Removed |Added

 OS/Version||All

--- Comment #3 from Tim Whittington  2011-03-31 03:59:11 EDT 
---
Hi Aaron

Thanks for the report (and providing in logs and network traces).

Looking at the traces you supplied, it doesn't look like there is a
Content-Length in the request from the client -> IIS/connector, so I'm confused
by the patch modifying the behaviour when the Content-Length is present in the
request.

e.g.:

POST /rm/services/ServerInfo.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://www.logiclibrary.com/types/getServerSoapVersion";
User-Agent: Axis/1.3
Host: 192.168.231.61:81
Transfer-Encoding: chunked

I think there are a few 'quirky' parts in the code around this, but I'd like to
be definite on the failing test case before delving in.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1087128 - in /tomcat/trunk: java/org/apache/catalina/util/SessionIdGenerator.java webapps/docs/changelog.xml

2011-03-31 Thread Tim Funk

Would it be more "efficient" to do this instead?

-/** Node identifier when in a cluster. Defaults to the empty string. */
-private String jvmRoute = "";
+/** Node identifier when in a cluster.  */
+private String jvmRoute = null;
...
 public void setJvmRoute(String jvmRoute) {
if (jvmRoute!=null&&jvmRoute.length()==0) {
jvmRoute=null;
}
 this.jvmRoute = jvmRoute;
 }


-Tim

On 3/30/2011 7:09 PM, ma...@apache.org wrote:

Author: markt
Date: Wed Mar 30 23:09:10 2011
New Revision: 1087128

URL: http://svn.apache.org/viewvc?rev=1087128&view=rev
Log:
Don't append the jvmRoute to a session ID if the jvmRoute is a zero length 
string.

Modified:
 tomcat/trunk/java/org/apache/catalina/util/SessionIdGenerator.java
 tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/util/SessionIdGenerator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/SessionIdGenerator.java?rev=1087128&r1=1087127&r2=1087128&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/util/SessionIdGenerator.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/util/SessionIdGenerator.java Wed Mar 
30 23:09:10 2011
@@ -168,7 +168,7 @@ public class SessionIdGenerator {
  }
  }

-if (jvmRoute != null) {
+if (jvmRoute != null&&  jvmRoute.length()>  0) {
  buffer.append('.').append(jvmRoute);
  }


Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1087128&r1=1087127&r2=1087128&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Mar 30 23:09:10 2011
@@ -128,6 +128,10 @@
  name ending in.jar  to be treated as an expanded JAR file
  by the default JarScanner. Based on patch by Rodion Zhitomirsky. 
(markt)

+
+Don't append the jvmRoute to a session ID if the jvmRoute is a 
zero
+length string. (markt)
+
  





-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087247 - in /tomcat/trunk: java/org/apache/juli/AsyncFileHandler.java java/org/apache/juli/FileHandler.java webapps/docs/logging.xml

2011-03-31 Thread kkolinko
Author: kkolinko
Date: Thu Mar 31 10:43:22 2011
New Revision: 1087247

URL: http://svn.apache.org/viewvc?rev=1087247&view=rev
Log:
Improve the logging documentation

Modified:
tomcat/trunk/java/org/apache/juli/AsyncFileHandler.java
tomcat/trunk/java/org/apache/juli/FileHandler.java
tomcat/trunk/webapps/docs/logging.xml

Modified: tomcat/trunk/java/org/apache/juli/AsyncFileHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/AsyncFileHandler.java?rev=1087247&r1=1087246&r2=1087247&view=diff
==
--- tomcat/trunk/java/org/apache/juli/AsyncFileHandler.java (original)
+++ tomcat/trunk/java/org/apache/juli/AsyncFileHandler.java Thu Mar 31 10:43:22 
2011
@@ -20,6 +20,23 @@ import java.util.concurrent.LinkedBlocki
 import java.util.concurrent.TimeUnit;
 import java.util.logging.LogRecord;
 /**
+ * A {@link FileHandler} implementation that uses a queue of log entries.
+ *
+ * Configuration properties are inherited from the {@link FileHandler}
+ * class. This class does not add its own configuration properties for the
+ * logging configuration, but relies on the following system properties
+ * instead:
+ * 
+ * 
+ *   org.apache.juli.AsyncOverflowDropType
+ *Default value: 1
+ *   org.apache.juli.AsyncMaxRecordCount
+ *Default value: 1
+ *   org.apache.juli.AsyncLoggerPollInterval
+ *Default value: 1000
+ * 
+ * 
+ * See the System Properties page in the configuration reference of 
Tomcat.
  * 
  * @author Filip Hanik
  *

Modified: tomcat/trunk/java/org/apache/juli/FileHandler.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/juli/FileHandler.java?rev=1087247&r1=1087246&r2=1087247&view=diff
==
--- tomcat/trunk/java/org/apache/juli/FileHandler.java (original)
+++ tomcat/trunk/java/org/apache/juli/FileHandler.java Thu Mar 31 10:43:22 2011
@@ -39,8 +39,42 @@ import java.util.logging.SimpleFormatter
 
 /**
  * Implementation of Handler that appends log messages to a file
- * named {prefix}.{date}.{suffix} in a configured directory, with an
- * optional preceding timestamp.
+ * named {prefix}{date}{suffix} in a configured directory.
+ *
+ * The following configuration properties are available:
+ * 
+ * 
+ *   directory - The directory where to create the log file.
+ *If the path is not absolute, it is relative to the current working
+ *directory of the application. The Apache Tomcat configuration files 
usually
+ *specify an absolute path for this property,
+ *${catalina.base}/logs 
+ *Default value: logs
+ *   rotatable - If true, the log file will be
+ *rotated on the first write past midnight and the filename will be
+ *{prefix}{date}{suffix}, where date is -MM-dd. If 
false,
+ *the file will not be rotated and the filename will be 
{prefix}{suffix}.
+ *Default value: true
+ *   prefix - The leading part of the log file name.
+ *Default value: juli.
+ *   suffix - The trailing part of the log file name. Default 
value: .log
+ *   bufferSize - Configures buffering. The value of 
0
+ *uses system default buffering (typically an 8K buffer will be used). A
+ *value of <0 forces a writer flush upon each log write. A
+ *value >0 uses a BufferedOutputStream with the defined
+ *value but note that the system default buffering will also be
+ *applied. Default value: -1
+ *   encoding - Character set used by the log file. Default 
value:
+ *empty string, which means to use the system default character set.
+ *   level - The level threshold for this Handler. See the
+ *java.util.logging.Level class for the possible levels.
+ *Default value: ALL
+ *   filter - The java.util.logging.Filter
+ *implementation class name for this Handler. Default value: unset
+ *   formatter - The java.util.logging.Formatter
+ *implementation class name for this Handler. Default value:
+ *java.util.logging.SimpleFormatter
+ * 
  *
  * @version $Id$
  */

Modified: tomcat/trunk/webapps/docs/logging.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/logging.xml?rev=1087247&r1=1087246&r2=1087247&view=diff
==
--- tomcat/trunk/webapps/docs/logging.xml (original)
+++ tomcat/trunk/webapps/docs/logging.xml Thu Mar 31 10:43:22 2011
@@ -113,9 +113,7 @@
 
 
 
-  More details about Tomcat JULI may be found below and in Tomcat Javadoc
-  for the org.apache.juli
-  package.
+  More details about Tomcat JULI may be found below.
 
 
 
@@ -371,6 +369,20 @@ java.util.logging.ConsoleHandler.formatt
   
 
 
+
+  See the following resources for additional information:
+  
+Tomcat Javadoc for the
+  org.apache.juli
+  package.
+
+Oracle Java 6 Javadoc for the
+  http://downloa

Re: svn commit: r1086969 - in /tomcat/trunk: java/org/apache/catalina/startup/HostConfig.java webapps/docs/changelog.xml

2011-03-31 Thread Keiichi Fujino
By this rev I think that  /META-INF/context.xml is added to
redeployResources when copyXML is false.

Then, there is two question.

Q1.
After deploying war,
the order of redeployResources becomes war ->  directory ->
/META-INF/context.xml.

When /META-INF/context.xml is updated, the context is redeployed.
Then, because /META-INF/context.xml already exists in the directory,
the order of redeployResources becomes war -> /META-INF/context.xml ->
 directory.

The next resource of the updated resource is deleted in
HostConfig#checkResources.
Therefore, when /META-INF/context.xml is updated again, the directory
is deleted.
However /META-INF/context.xml exists in the deleted directory.

As a result, because updated /META-INF/context.xml is deleted, it
might not be intended work.

Q2.
Is the addition of /META-INF/context.xml only deployment of the war?
Need it for deployment of the directory?


2011/3/30  :
> Author: markt
> Date: Wed Mar 30 14:33:30 2011
> New Revision: 1086969
>
> URL: http://svn.apache.org/viewvc?rev=1086969&view=rev
> Log:
> Correctly track changes to context.xml files and trigger redeployment when 
> copyXML is set to false
>
> Modified:
>    tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
>    tomcat/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1086969&r1=1086968&r2=1086969&view=diff
> ==
> --- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
> +++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Wed Mar 30 
> 14:33:30 2011
> @@ -777,8 +777,15 @@ public class HostConfig
>         JarEntry entry = null;
>         InputStream istream = null;
>         BufferedOutputStream ostream = null;
> -        File xml = new File
> -            (configBase(), file.substring(0, file.lastIndexOf(".")) + 
> ".xml");
> +        File xml;
> +        if (copyXML) {
> +            xml = new File(configBase(),
> +                    file.substring(0, file.lastIndexOf(".")) + ".xml");
> +        } else {
> +            xml = new File(appBase(),
> +                    file.substring(0, file.lastIndexOf(".")) +
> +                    "/META-INF/context.xml");
> +        }
>         boolean xmlInWar = false;
>
>         if (deployXML && !xml.exists()) {
> @@ -931,6 +938,10 @@ public class HostConfig
>                         Long.valueOf(docBase.lastModified()));
>                 addWatchedResources(deployedApp, docBase.getAbsolutePath(),
>                         context);
> +                if (deployXML && !copyXML && xmlInWar) {
> +                    deployedApp.redeployResources.put(xml.getAbsolutePath(),
> +                            Long.valueOf(xml.lastModified()));
> +                }
>             } else {
>                 addWatchedResources(deployedApp, null, context);
>             }
>
> Modified: tomcat/trunk/webapps/docs/changelog.xml
> URL: 
> http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1086969&r1=1086968&r2=1086969&view=diff
> ==
> --- tomcat/trunk/webapps/docs/changelog.xml (original)
> +++ tomcat/trunk/webapps/docs/changelog.xml Wed Mar 30 14:33:30 2011
> @@ -119,6 +119,10 @@
>         Provide a configuration option that lets the close method to be used 
> for
>         a JNDI Resource to be defined by the user. (markt)
>       
> +      
> +        Correctly track changes to context.xml files and trigger redeployment
> +        when copyXML is set to false. (markt)
> +      
>     
>   
>   
>
>
>
> -
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>



-- 
Keiichi.Fujino

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



Re: svn commit: r1086969 - in /tomcat/trunk: java/org/apache/catalina/startup/HostConfig.java webapps/docs/changelog.xml

2011-03-31 Thread Mark Thomas
On 31/03/2011 12:25, Keiichi Fujino wrote:
> By this rev I think that  /META-INF/context.xml is added to
> redeployResources when copyXML is false.

That was indeed the intention.

> Then, there is two question.
> 
> Q1.
> After deploying war,
> the order of redeployResources becomes war ->  directory ->
> /META-INF/context.xml.

So far, so good.

> When /META-INF/context.xml is updated, the context is redeployed.
> Then, because /META-INF/context.xml already exists in the directory,
> the order of redeployResources becomes war -> /META-INF/context.xml ->
>  directory.

I smell trouble ahead.

> The next resource of the updated resource is deleted in
> HostConfig#checkResources.
> Therefore, when /META-INF/context.xml is updated again, the directory
> is deleted.
> However /META-INF/context.xml exists in the deleted directory.
> 
> As a result, because updated /META-INF/context.xml is deleted, it
> might not be intended work.

Yep. Trouble. That isn't good at all. Thanks for the review. I had
missed that. I'll revisit it.

> Q2.
> Is the addition of /META-INF/context.xml only deployment of the war?
> Need it for deployment of the directory?

I think the answer is yes. The intention is that the redeployment order
is always:
war ->  directory -> /META-INF/context.xml

Mark



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087281 - /tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 12:37:10 2011
New Revision: 1087281

URL: http://svn.apache.org/viewvc?rev=1087281&view=rev
Log:
Follow up to http://svn.apache.org/viewvc?rev=1086969&view=rev
Ensure that when copyXML=false:
- removing context.xml triggers a redploy but does not remove any other files
- removing context.xml triggers a redploy and the context.xml is re-copied from 
the WAR

This should be consistent with behaviour when copyXML=true

Modified:
tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1087281&r1=1087280&r2=1087281&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Thu Mar 31 
12:37:10 2011
@@ -795,7 +795,7 @@ public class HostConfig
 if (entry != null) {
 xmlInWar = true;
 }
-if (copyXML && xmlInWar) {
+if ((copyXML || unpackWARs) && xmlInWar) {
 istream = jar.getInputStream(entry);
 
 ostream =
@@ -915,7 +915,7 @@ public class HostConfig
 deployedApp.redeployResources.put
 (war.getAbsolutePath(), Long.valueOf(war.lastModified()));
 
-if (deployXML && xml.exists()) {
+if (deployXML && xml.exists() && copyXML) {
 deployedApp.redeployResources.put(xml.getAbsolutePath(),
 Long.valueOf(xml.lastModified()));
 }
@@ -938,7 +938,7 @@ public class HostConfig
 Long.valueOf(docBase.lastModified()));
 addWatchedResources(deployedApp, docBase.getAbsolutePath(),
 context);
-if (deployXML && !copyXML && xmlInWar) {
+if (deployXML && !copyXML && (xmlInWar || xml.exists())) {
 deployedApp.redeployResources.put(xml.getAbsolutePath(),
 Long.valueOf(xml.lastModified()));
 }



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087286 - in /tomcat/trunk: java/org/apache/catalina/deploy/ContextResource.java webapps/docs/changelog.xml webapps/docs/config/context.xml

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 13:02:20 2011
New Revision: 1087286

URL: http://svn.apache.org/viewvc?rev=1087286&view=rev
Log:
Feedback on https://issues.apache.org/bugzilla/show_bug.cgi?id=50991
Change the default

Modified:
tomcat/trunk/java/org/apache/catalina/deploy/ContextResource.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/context.xml

Modified: tomcat/trunk/java/org/apache/catalina/deploy/ContextResource.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/ContextResource.java?rev=1087286&r1=1087285&r2=1087286&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/ContextResource.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/ContextResource.java Thu Mar 
31 13:02:20 2011
@@ -87,7 +87,7 @@ public class ContextResource extends Res
  * the clean-up of resources that would otherwise happen via garbage
  * collection.
  */
-private String closeMethod = "close";
+private String closeMethod = null;
 
 public String getCloseMethod() {
 return closeMethod;

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1087286&r1=1087285&r2=1087286&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Mar 31 13:02:20 2011
@@ -117,7 +117,9 @@
   
   
 Provide a configuration option that lets the close method to be used 
for
-a JNDI Resource to be defined by the user. (markt)
+a JNDI Resource to be defined by the user. This change also disables
+using the close method unless one is explicitly defined for the
+resource. (markt)
   
   
 Correctly track changes to context.xml files and trigger redeployment

Modified: tomcat/trunk/webapps/docs/config/context.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/context.xml?rev=1087286&r1=1087285&r2=1087286&view=diff
==
--- tomcat/trunk/webapps/docs/config/context.xml (original)
+++ tomcat/trunk/webapps/docs/config/context.xml Thu Mar 31 13:02:20 2011
@@ -1016,8 +1016,8 @@
   
 Name of zero-argument method to call on the resource when it is no
 longer required to speed up clean-up of resources that would otherwise
-happen as part of garbage collection. If not specificed, the default
-value of close is used.
+happen as part of garbage collection. If not specificed, no default is
+defined and no close method will be called.
   
 
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087291 - in /tomcat/trunk: java/org/apache/catalina/deploy/NamingResources.java webapps/docs/changelog.xml webapps/docs/config/context.xml

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 13:11:26 2011
New Revision: 1087291

URL: http://svn.apache.org/viewvc?rev=1087291&view=rev
Log:
Feedback on https://issues.apache.org/bugzilla/show_bug.cgi?id=50991
No point trying to close a non-singleton resource

Modified:
tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/context.xml

Modified: tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java?rev=1087291&r1=1087290&r2=1087291&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java (original)
+++ tomcat/trunk/java/org/apache/catalina/deploy/NamingResources.java Thu Mar 
31 13:11:26 2011
@@ -980,18 +980,21 @@ public class NamingResources extends Lif
 return;
 }
 for (ContextResource cr: resources.values()) {
-String closeMethod = cr.getCloseMethod(); 
-if (closeMethod != null && closeMethod.length() > 0) {
-String name = cr.getName();
-Object resource;
-try {
- resource = ctxt.lookup(name);
-} catch (NamingException e) {
-log.warn(sm.getString("namingResources.cleanupNoResource",
-cr.getName(), container), e);
-continue;
+if (cr.getSingleton()) {
+String closeMethod = cr.getCloseMethod(); 
+if (closeMethod != null && closeMethod.length() > 0) {
+String name = cr.getName();
+Object resource;
+try {
+ resource = ctxt.lookup(name);
+} catch (NamingException e) {
+log.warn(sm.getString(
+"namingResources.cleanupNoResource",
+cr.getName(), container), e);
+continue;
+}
+cleanUp(resource, name, closeMethod);
 }
-cleanUp(resource, name, closeMethod);
 }
 }
 }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1087291&r1=1087290&r2=1087291&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Mar 31 13:11:26 2011
@@ -119,7 +119,7 @@
 Provide a configuration option that lets the close method to be used 
for
 a JNDI Resource to be defined by the user. This change also disables
 using the close method unless one is explicitly defined for the
-resource. (markt)
+resource and limits it to singleton resources. (markt)
   
   
 Correctly track changes to context.xml files and trigger redeployment

Modified: tomcat/trunk/webapps/docs/config/context.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/context.xml?rev=1087291&r1=1087290&r2=1087291&view=diff
==
--- tomcat/trunk/webapps/docs/config/context.xml (original)
+++ tomcat/trunk/webapps/docs/config/context.xml Thu Mar 31 13:11:26 2011
@@ -1014,10 +1014,12 @@
   
 
   
-Name of zero-argument method to call on the resource when it is no
-longer required to speed up clean-up of resources that would otherwise
-happen as part of garbage collection. If not specificed, no default is
-defined and no close method will be called.
+Name of the zero-argument method to call on a singleton resource 
when
+it is no longer required. This is intended to speed up clean-up of
+resources that would otherwise happen as part of garbage collection.
+This attribute is ignored if the singleton attribute is
+false. If not specificed, no default is defined and no close method 
will
+be called.
   
 
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087292 - in /tomcat/trunk: java/org/apache/catalina/core/NamingContextListener.java webapps/docs/changelog.xml webapps/docs/config/context.xml

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 13:22:11 2011
New Revision: 1087292

URL: http://svn.apache.org/viewvc?rev=1087292&view=rev
Log:
Only register a DataSource with JMX if it is a singleton

Modified:
tomcat/trunk/java/org/apache/catalina/core/NamingContextListener.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/context.xml

Modified: tomcat/trunk/java/org/apache/catalina/core/NamingContextListener.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/NamingContextListener.java?rev=1087292&r1=1087291&r2=1087292&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/NamingContextListener.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/NamingContextListener.java Thu 
Mar 31 13:22:11 2011
@@ -1014,7 +1014,8 @@ public class NamingContextListener
 logger.error(sm.getString("naming.bindFailed", e));
 }
 
-if ("javax.sql.DataSource".equals(ref.getClassName())) {
+if ("javax.sql.DataSource".equals(ref.getClassName()) &&
+resource.getSingleton()) {
 try {
 ObjectName on = createObjectName(resource);
 Object actualResource = envCtx.lookup(resource.getName());

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1087292&r1=1087291&r2=1087292&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Thu Mar 31 13:22:11 2011
@@ -134,6 +134,9 @@
 Don't append the jvmRoute to a session ID if the jvmRoute is a 
zero
 length string. (markt) 
   
+  
+Don't register non-singelton DataSource resources with JMX. 
(markt)
+  
 
   
   

Modified: tomcat/trunk/webapps/docs/config/context.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/context.xml?rev=1087292&r1=1087291&r2=1087292&view=diff
==
--- tomcat/trunk/webapps/docs/config/context.xml (original)
+++ tomcat/trunk/webapps/docs/config/context.xml Thu Mar 31 13:22:11 2011
@@ -1044,8 +1044,11 @@
 attribute is true, multiple JNDI lookups for this resource
 will return the same object. If this attribute is false,
 multiple JNDI lookups for this resource will return different objects.
-The value of this attribute must be true or
-false. By default, this attribute is 
true.
+This attribute must be true for
+javax.sql.DataSource resources to enable JMX registration
+of the DataSource. The value of this attribute must be 
true
+or false. By default, this attribute is true.
+
   
 
   



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 50991] Data source is closed before contextDestroyed is executed. tomcat 7.0.11

2011-03-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=50991

Mark Thomas  changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Mark Thomas  2011-03-31 09:25:03 EDT ---
Thanks for the review and feedback.

I have made the following changes for 7.0.12:
- disable by default be changing the default for closeMethod to null (r1087286)
- don't try and close non-singleton resources as it is pointless (r1087291)
- only register DataSources with JMX if they are singletons (r1087292)

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 50975] IIS connector times out on Transfer Encoded content, never sending the chunked content

2011-03-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=50975

--- Comment #4 from Aaron Johnson  2011-03-31 10:10:43 
EDT ---
The problem is that IIS is inserting the content length into the chunked
request at some point in its filtering chain.  You are correct the client isn't
sending content-length, but when the isapi_redirect.dll connector gets the
request it does contain the C-L header.  I think that is what is causing the
connector endpoint to hang.  The C-L header is confusing the endpoint because
it is waiting for the chunked content because of the C-L header, but the
connector is expecting the endpoint to request the chunked content.

I'd suspect that maybe the other connectors would have this bug as well, but it
is only IIS putting C-L header on causing both the C-L and C-E=chunked headers
to appear on the request.

I was able to test out the patch on 64-bit IIS and it does solve my immediate
problem with the POSTs hanging, but I'm not familiar with what the specs say
about having both C-L and C-E on the same request.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087392 - in /tomcat/trunk: java/org/apache/catalina/authenticator/ webapps/docs/ webapps/docs/config/

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 18:02:10 2011
New Revision: 1087392

URL: http://svn.apache.org/viewvc?rev=1087392&view=rev
Log:
Switch SPNEGO authenticator to use file based JAAS config as this provides 
greater flexibility including making it easier to work with non-Oracle JVMs.
Clean up the code, add debug logging and improve error handling.

Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java
tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
tomcat/trunk/webapps/docs/config/valve.xml
tomcat/trunk/webapps/docs/windows-auth-howto.xml

Modified: tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java?rev=1087392&r1=1087391&r2=1087392&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/Constants.java Thu Mar 
31 18:02:10 2011
@@ -40,6 +40,15 @@ public class Constants {
 // SPNEGO authentication constants
 public static final String DEFAULT_KEYTAB = "conf/tomcat.keytab";
 public static final String DEFAULT_SPN_CLASS = "HTTP";
+public static final String KRB5_CONF_PROPERTY = "java.security.krb5.conf";
+public static final String DEFAULT_KRB5_CONF = "conf/krb5.ini";
+public static final String JAAS_CONF_PROPERTY =
+"java.security.auth.login.config";
+public static final String DEFAULT_JAAS_CONF = "conf/jaas.conf";
+public static final String DEFAULT_LOGIN_MODULE_NAME =
+"com.sun.security.jgss.krb5.accept";
+public static final String USE_SUBJECT_CREDS_ONLY_PROPERTY =
+"javax.security.auth.useSubjectCredsOnly";
 
 // Cookie name for single sign on support
 public static final String SINGLE_SIGN_ON_COOKIE =

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties?rev=1087392&r1=1087391&r2=1087392&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/authenticator/LocalStrings.properties 
Thu Mar 31 18:02:10 2011
@@ -20,6 +20,7 @@ authenticator.invalid=Invalid client cer
 authenticator.loginFail=Login failed
 authenticator.keystore=Exception loading key store
 authenticator.manager=Exception initializing trust managers
+authenticator.noAuthHeader=No authorization header sent by client
 authenticator.notAuthenticated=Configuration error:  Cannot perform access 
control without an authenticated principal
 authenticator.notContext=Configuration error:  Must be attached to a Context
 authenticator.requestBodyTooBig=The request body was too large to be cached 
during the authentication process
@@ -30,6 +31,8 @@ authenticator.userDataConstraint=This re
 formAuthenticator.forwardErrorFail=Unexpected error forwarding to error page
 formAuthenticator.forwardLoginFail=Unexpected error forwarding to login page
 
+spnegoAuthenticator.authHeaderNoToken=The Negotiate authorization header sent 
by the client did include a token
+spnegoAuthenticator.authHeaderNotNego=The authorization header sent by the 
client did not start with Negotiate
 spnegoAuthenticator.hostnameFail=Unable to determine the host name to 
construct the default SPN. Please set the spn attribute of the authenticator.
 spnegoAuthenticator.serviceLoginFail=Unable to login as the service principal
 spnegoAuthenticator.ticketValidateFail=Failed to validate client supplied 
ticket
\ No newline at end of file

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1087392&r1=1087391&r2=1087392&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
Thu Mar 31 18:02:10 2011
@@ -18,22 +18,12 @@ package org.apache.catalina.authenticato
 
 import java.io.File;
 import java.io.IOException;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
 import java.security.Principal;
-import java.security.PrivilegedActionException;
-import java.security.PrivilegedExceptionAction;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
+
 import javax.security.auth.log

svn commit: r1087416 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/authenticator/ java/org/apache/catalina/connector/ java/org/apache/catalina/realm/ java/org/apache/catalina/

2011-03-31 Thread markt
Author: markt
Date: Thu Mar 31 19:33:04 2011
New Revision: 1087416

URL: http://svn.apache.org/viewvc?rev=1087416&view=rev
Log:
SPNEGO support part 2
Expose the users delegated credentials through a request attribute so 
applications can make use of it

Modified:
tomcat/trunk/java/org/apache/catalina/Globals.java
tomcat/trunk/java/org/apache/catalina/Realm.java
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
tomcat/trunk/java/org/apache/catalina/connector/Request.java
tomcat/trunk/java/org/apache/catalina/realm/CombinedRealm.java
tomcat/trunk/java/org/apache/catalina/realm/GenericPrincipal.java
tomcat/trunk/java/org/apache/catalina/realm/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/realm/LockOutRealm.java
tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
tomcat/trunk/java/org/apache/catalina/session/StandardSession.java
tomcat/trunk/webapps/docs/config/valve.xml

Modified: tomcat/trunk/java/org/apache/catalina/Globals.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Globals.java?rev=1087416&r1=1087415&r2=1087416&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Globals.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Globals.java Thu Mar 31 19:33:04 2011
@@ -151,6 +151,10 @@ public final class Globals {
 "javax.security.auth.subject";
 
 
+public static final String GSS_CREDENTIAL_ATTR =
+"org.apache.catalina.realm.GSS_CREDENTIAL";
+
+
 /**
  * The master flag which controls strict servlet specification 
  * compliance.

Modified: tomcat/trunk/java/org/apache/catalina/Realm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Realm.java?rev=1087416&r1=1087415&r2=1087416&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/Realm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Realm.java Thu Mar 31 19:33:04 2011
@@ -111,9 +111,11 @@ public interface Realm {
  * Return the Principal associated with the specified chain of X509
  * client certificates.  If there is none, return null.
  *
- * @param certs The gssContext processed by the {@link Authenticator}.
+ * @param gssContext The gssContext processed by the {@link Authenticator}.
+ * @param storeCreds Should the realm attempt to store the delegated
+ *   credentials in the returned Principal?
  */
-public Principal authenticate(GSSContext gssContext);
+public Principal authenticate(GSSContext gssContext, boolean storeCreds);
 
 
 /**

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1087416&r1=1087415&r2=1087416&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
Thu Mar 31 19:33:04 2011
@@ -77,6 +77,15 @@ public class SpnegoAuthenticator extends
 this.loginConfigName = loginConfigName;
 }
 
+private boolean storeDelegatedCredentials = true;
+public boolean isStoreDelegatedCredentials() {
+return storeDelegatedCredentials;
+}
+public void setStoreDelegatedCredentials(
+boolean storeDelegatedCredentials) {
+this.storeDelegatedCredentials = storeDelegatedCredentials;
+}
+
 
 @Override
 protected String getAuthMethod() {
@@ -229,7 +238,8 @@ public class SpnegoAuthenticator extends
 return false;
 }
 
-principal = context.getRealm().authenticate(gssContext);
+principal = context.getRealm().authenticate(gssContext,
+storeDelegatedCredentials);
 } catch (GSSException e) {
 if (log.isDebugEnabled()) {
 
log.debug(sm.getString("spnegoAuthenticator.ticketValidateFail",

Modified: tomcat/trunk/java/org/apache/catalina/connector/Request.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Request.java?rev=1087416&r1=1087415&r2=1087416&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/connector/Request.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Request.java Thu Mar 31 
19:33:04 2011
@@ -923,6 +923,13 @@ public class Request
 return asyncSupported;
 }
 
+if (name.equals(Globals.GSS_CREDENTIAL_ATTR)) {
+if (userPrincipal instanceof GenericPrincipal) {
+return ((GenericPrincipal) userPrincipal).getGssCredential();
+  

svn commit: r1087442 - /tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java

2011-03-31 Thread fhanik
Author: fhanik
Date: Thu Mar 31 21:20:30 2011
New Revision: 1087442

URL: http://svn.apache.org/viewvc?rev=1087442&view=rev
Log:
Fix NPE that can happen during concurrency (connection being abandoned, 
misconfiguration in abandon timeout or lack of ResetAbandonedTimer interceptor)
http://markmail.org/message/yhshyvyunddb5ngt


Modified:

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java?rev=1087442&r1=1087441&r2=1087442&view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/ProxyConnection.java
 Thu Mar 31 21:20:30 2011
@@ -122,7 +122,12 @@ public class ProxyConnection extends Jdb
 return this.isWrapperFor((Class)args[0]);
 }
 try {
-return method.invoke(connection.getConnection(),args);
+PooledConnection poolc = connection;
+if (poolc!=null) {
+return method.invoke(poolc.getConnection(),args);
+} else {
+throw new SQLException("Connection has already been closed.");
+}
 }catch (Throwable t) {
 if (t instanceof InvocationTargetException) {
 InvocationTargetException it = (InvocationTargetException)t;



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087467 - in /tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool: PoolProperties.java TrapException.java

2011-03-31 Thread fhanik
Author: fhanik
Date: Thu Mar 31 22:28:54 2011
New Revision: 1087467

URL: http://svn.apache.org/viewvc?rev=1087467&view=rev
Log:
Implement exception traps as suggested by Eiji Takahashi
http://markmail.org/message/c7hrhky4jtgcto76

Added:

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java
Modified:

tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java

Modified: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java?rev=1087467&r1=1087466&r2=1087467&view=diff
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
 (original)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/PoolProperties.java
 Thu Mar 31 22:28:54 2011
@@ -401,15 +401,17 @@ public class PoolProperties implements P
 interceptors = new InterceptorDefinition[0];
 } else {
 String[] interceptorValues = jdbcInterceptors.split(";");
-InterceptorDefinition[] definitions = new 
InterceptorDefinition[interceptorValues.length];
+InterceptorDefinition[] definitions = new 
InterceptorDefinition[interceptorValues.length+1];
+//always add the trap interceptor to the mix
+definitions[0] = new 
InterceptorDefinition(TrapException.class);
 for (int i=0; i cl) {
+this(cl.getName());
+clazz = cl;
+}
 
 public String getClassName() {
 return className;

Added: 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java?rev=1087467&view=auto
==
--- 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java
 (added)
+++ 
tomcat/trunk/modules/jdbc-pool/src/main/java/org/apache/tomcat/jdbc/pool/TrapException.java
 Thu Mar 31 22:28:54 2011
@@ -0,0 +1,80 @@
+/*
+ * 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.tomcat.jdbc.pool;
+
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.sql.SQLException;
+/**
+ * Interceptor that traps any unhandled exception types and throws an 
exception that has been declared by the method
+ * called, or throw a SQLException if it is declared.
+ * If the caught exception is not declared, and the method doesn't throw 
SQLException, then this interceptor will
+ * throw a RuntimeException
+ * @author fhanik
+ *
+ */
+public class TrapException extends JdbcInterceptor {
+
+
+public TrapException() {
+}
+
+@Override
+public Object invoke(Object proxy, Method method, Object[] args) throws 
Throwable {
+try {
+return super.invoke(proxy, method, args);
+}catch (Throwable t) {
+Throwable exception = t;
+if (t instanceof InvocationTargetException) {
+InvocationTargetException it = (InvocationTargetException)t;
+exception = it.getCause()!=null?it.getCause():it;
+} 
+Class exceptionClass = exception.getClass();
+if (!isDeclaredException(method, exceptionClass)) {
+if (isDeclaredException(method,SQLException.class)) {
+SQLException sqlx = new SQLException("Uncaught underlying 
exception.");
+sqlx.initCause(exception);
+exception = sqlx;
+} else {
+RuntimeException rx = new RuntimeException("Uncaught 
underlying exception.");
+rx.initCause(exception);
+exception = rx;
+}
+}
+throw exception;
+}
+
+}
+
+public boolean isDeclaredException(M

svn commit: r1087524 - in /tomcat/trunk: java/org/apache/catalina/authenticator/ java/org/apache/catalina/realm/ webapps/docs/ webapps/docs/config/

2011-03-31 Thread markt
Author: markt
Date: Fri Apr  1 00:34:45 2011
New Revision: 1087524

URL: http://svn.apache.org/viewvc?rev=1087524&view=rev
Log:
SPNEGP part 3 - the final part for 7.0.12
Integrate with JNDI realm so delegated credentials are used by default.

Modified:
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
tomcat/trunk/java/org/apache/catalina/realm/JNDIRealm.java
tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/realm.xml
tomcat/trunk/webapps/docs/windows-auth-howto.xml

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java?rev=1087524&r1=1087523&r2=1087524&view=diff
==
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
(original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java 
Fri Apr  1 00:34:45 2011
@@ -46,24 +46,6 @@ import org.ietf.jgss.Oid;
  * multiple components. If the configuration is invalid, the error messages are
  * often cryptic although a Google search will usually point you in the right
  * direction.
- * 
- * TODO:
- * 
- * Add support for delegating credentials? Need this if we want to
- * authenticate to a realm as the user. This is likely to result in a fair
- * amount of internal refactoring.
- * 
- * 
- * TBDs:
- * 
- * Does the domain name have to be in upper case?
- * Does the SPN have to start with HTTP/...?
- * Can a port number be appended to the end of the host in the SPN?
- * Can the domain be left off the user in the ktpass command?
- * What are the limitations on the account that Tomcat can run as? SPN
- * associated account works, domain admin works, local admin doesn't
- * work
- * 
  */
 public class SpnegoAuthenticator extends AuthenticatorBase {
 

Modified: tomcat/trunk/java/org/apache/catalina/realm/JNDIRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JNDIRealm.java?rev=1087524&r1=1087523&r2=1087524&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/realm/JNDIRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JNDIRealm.java Fri Apr  1 
00:34:45 2011
@@ -56,6 +56,7 @@ import org.apache.catalina.LifecycleExce
 import org.apache.catalina.util.Base64;
 import org.apache.tomcat.util.buf.ByteChunk;
 import org.apache.tomcat.util.buf.CharChunk;
+import org.ietf.jgss.GSSCredential;
 
 /**
  * Implementation of Realm that works with a directory
@@ -415,6 +416,14 @@ public class JNDIRealm extends RealmBase
  */
 protected int timeLimit = 0;
 
+
+/**
+ * Should delegated credentials from the SPNEGO authenticator be used if
+ * available
+ */
+protected boolean useDelegatedCredential = true;
+
+
 // - Properties
 
 /**
@@ -950,6 +959,15 @@ public class JNDIRealm extends RealmBase
 }
 
 
+
+public boolean isUseDelegatedCredential() {
+return useDelegatedCredential;
+}
+
+public void setUseDelegatedCredential(boolean useDelegatedCredential) {
+this.useDelegatedCredential = useDelegatedCredential;
+}
+
 /**
  * Return descriptive information about this Realm implementation and
  * the corresponding version number, in the format
@@ -1935,6 +1953,12 @@ public class JNDIRealm extends RealmBase
  */
 @Override
 protected Principal getPrincipal(String username) {
+return getPrincipal(username, null);
+}
+
+@Override
+protected Principal getPrincipal(String username,
+GSSCredential gssCredential) {
 
 DirContext context = null;
 Principal principal = null;
@@ -1949,7 +1973,7 @@ public class JNDIRealm extends RealmBase
 try {
 
 // Authenticate the specified username if possible
-principal = getPrincipal(context, username);
+principal = getPrincipal(context, username, gssCredential);
 
 } catch (CommunicationException e) {
 
@@ -1964,7 +1988,7 @@ public class JNDIRealm extends RealmBase
 context = open();
 
 // Try the authentication again.
-principal = getPrincipal(context, username);
+principal = getPrincipal(context, username, gssCredential);
 
 } catch (ServiceUnavailableException e) {
 
@@ -1979,7 +2003,7 @@ public class JNDIRealm extends RealmBase
 context = open();
 
 // Try the authentication again.
-principal = getPrincipal(context, username);
+principal = getPrincipal(context, username, gssCredent

svn commit: r1087525 - /tomcat/trunk/webapps/docs/changelog.xml

2011-03-31 Thread markt
Author: markt
Date: Fri Apr  1 00:35:47 2011
New Revision: 1087525

URL: http://svn.apache.org/viewvc?rev=1087525&view=rev
Log:
Add credit

Modified:
tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1087525&r1=1087524&r2=1087525&view=diff
==
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Fri Apr  1 00:35:47 2011
@@ -101,7 +101,8 @@
 user's delegated credentials and exposing the user's 
delegated
 credentials via a request attribute so applications can make use of the
 to impersonate the current user when accessing third-party systems that
-use a compatible authentication mechanism. (markt)
+use a compatible authentication mechanism. Based on a patch provided by
+Michael Osipov. (markt)
   
   
 HTTP range requests cannot be reliably served when a Writer is in use 
so



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 48685] Spnego Support in Tomcat

2011-03-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=48685

Mark Thomas  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #36 from Mark Thomas  2011-03-31 20:42:47 EDT ---
The final part of the Tomcat SPNEGO implementation has just been committed. It
is broadly based on Michael's patch.

The key features are:
- a new SPNEGO login-config for use in web.xml that supports Windows native
authentication via kerberos
- integration with all Tomcat Realms
- additional integration with the JNDI Realm that enabled the user's delegated
credentials to be used to connected to AD
- the user's delegated credentials are exposed via a request attribute so
applications can use then to impersonate the user when accessing external
services

The main differences compared to the original patch are:
- Use existing Base64 encoder/decoder rather than proposed one
- Integrate with the JNDI realm rather than a new one
- Use existing GenericPrincipal rather than proposed ones
- Documentation

This requires Java 6 so it won't get proposed for back-port to 6.0.x.

Bugs in this implementation and additional configuration / feature requests
should be raised as new Bugzilla issues against Tomcat 7.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



svn commit: r1087534 - /tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java

2011-03-31 Thread markt
Author: markt
Date: Fri Apr  1 01:02:07 2011
New Revision: 1087534

URL: http://svn.apache.org/viewvc?rev=1087534&view=rev
Log:
Another context.xml tracking issue. This time if using just dir deployment.
A changes in context.xml now triggers a redeploy rather than a reload (so the 
context.xml is re-read)

Modified:
tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java

Modified: tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java?rev=1087534&r1=1087533&r2=1087534&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java (original)
+++ tomcat/trunk/java/org/apache/catalina/startup/HostConfig.java Fri Apr  1 
01:02:07 2011
@@ -1055,10 +1055,16 @@ public class HostConfig
 host.addChild(context);
 deployedApp.redeployResources.put(dir.getAbsolutePath(),
 Long.valueOf(dir.lastModified()));
-if (xmlCopy != null) {
-deployedApp.redeployResources.put(
-xmlCopy.getAbsolutePath(),
-Long.valueOf(xmlCopy.lastModified()));
+if (deployXML && xml.exists()) {
+if (xmlCopy == null) {
+deployedApp.redeployResources.put(
+xml.getAbsolutePath(),
+Long.valueOf(xml.lastModified()));
+} else {
+deployedApp.redeployResources.put(
+xmlCopy.getAbsolutePath(),
+Long.valueOf(xmlCopy.lastModified()));
+}
 }
 addWatchedResources(deployedApp, dir.getAbsolutePath(), context);
 } catch (Throwable t) {



-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



DO NOT REPLY [Bug 50957] Blocking IO can serve wrong response data

2011-03-31 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=50957

--- Comment #14 from Tim Whittington  2011-04-01 02:32:40 EDT 
---
It may be unrelated, but I'm trying to track down a (very) reproducible error
on one of our products where using Firefox with HTTP pipelining enabled results
in garbled responses (and a smattering of 401 and 505 responses).

The user reports of this error went along the lines of seeing JavaScript
content where HTML responses were expected, images switched etc., which sounds
similar to this.

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.

-
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org