On 12/01/2010 02:56, Konstantin Kolinko wrote:
> =================================================
> First, there is a patch currently in STATUS for TC5.5 and already
> applied to TC6,
> "Prevent session fixation by changing session ID"
> (fix for https://issues.apache.org/bugzilla/show_bug.cgi?id=45255)
> 
> As of now, I would agree with Rainer's comment to keep it disabled by
> default in TC 5.5.
> 
> How about if we implement a system property, that will provide the
> default value for AuthentificatorBase.changeSessionIdOnAuthentication
> field?
> 
> If so, I will agree to have it 'true' by default in TC 5.5, like we
> have in TC 6 now since 6.0.21.

-0.5. I dislike having system properties where we don't absolutely need
them. Removing as many system properties as possible is on my todo list
for Tomcat 7.

I'm happy with a default of false for Tomcat 5.5.x with the option to
enable it per context if required.

> =================================================
> Second, there is a feature currently enabled by setting
> STRICT_SERVLET_COMPLIANCE=true:
> 
> [cite ref="/config/systemprops.html"]
> a call to Response.getWriter() if no character encoding has been
> specified will result in subsequent calls to
> Response.getCharacterEncoding() returning ISO-8859-1 and the
> Content-Type response header will include a charset=ISO-8859-1
> component. (SRV.15.2.22.1)
> [/cite]
> 
> It is implemented in o.a.catalina.connector.Response#getWriter().
> 
> I think it would be reasonable to have a separate system property for
> this feature, independent from STRICT_SERVLET_COMPLIANCE, and to set
> the default value for the new property to be "true" (instead of the
> current effective value of "false").

+1. That is the other part of my Tomcat 7 system property to-do: split
out STRICT_SERVLET_COMPLIANCE into separate properties along the lines
of what I did for
org.apache.tomcat.util.http.ServerCookie.ALWAYS_ADD_EXPIRES,
FWD_SLASH_IS_SEPARATOR & STRICT_NAMING

> The behavior of Response#getWriter() is similar in its effect to
> AddDefaultCharsetFilter of TC7, but approach implemented by
> AddDefaultCharsetFilter is different:  it adds charset to any text/*
> mimetype. It will affect static html files as well, which can contain
> a <meta> tag specifying their encoding.

Only if you map the filter to /*.

> If encoding specified in
> <meta> tag does not match the one provided by Content-Type header,
> even if it is just uppercase/lowercase mismatch,  certain browsers may
> enable content encoding autodetection, thus breaking things.

Pure genius.

> Thus when I tried applying AddDefaultCharsetFilter to our examples
> webapp in rev.893496 I used a trick to add encoding value to
> <mime-type> mappings for html files in its web.xml. The filter applies
> the encoding in upper case, while *.html files in the examples have it
> in lowercase.
> http://svn.apache.org/viewvc?view=revision&revision=893496

That is probably worthy of some additional comment, either in the
web.xml or may be the svn commit message.

> I think that Response#getWriter() is more clear in its behavior, as it
> does not affect static resources.

Again, it depends what you map the filter to. Given the filter mapping
rules, some apps will find it a lot easier than others to avoid static
resources.

> Of course, another filter can be implemented instead of
> AddDefaultCharsetFilter to mimic Response#getWriter(), but maybe we
> can just reuse what is already implemented, just changing the property
> that is used there?

It is a spec compliance issue so I think a separate system property is
the way to go.

> If there are any problems there, they are already exposed by those
> running with STRICT_SERVLET_COMPLIANCE=true.

Indeed.

Mark



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

Reply via email to