AO Servlet Filter Changelog


Snapshot Notes

  • Case-insensitive matching of URL schemes. Previously, URL schemes were matched case-sensitive, while the spec is case-insensitive. This has been OK given we only use lower-case schemes within our code and tools, but this is now a correct implementation.
  • NoSessionFilter now passes the URL encoding up the filter chain after its modifications. Previously, the URL rewriting was stopped here. To obtain the previous behavior, use in conjunction with NoEncodeUrlFilter.
  • New context init parameter com.aoindustries.servlet.filter.NoSessionFilter.cookieUrlParamPrefix that may be used to provide a custom cookie URL prefix. A fun alternative is Unicode Character 'COOKIE' (U+1F36A).
  • StripInvalidXmlCharactersFilter now removes parameters that have invalid names.
  • HideJspExtensionFilter no longer removes index.jsp(x) or .jsp(x) extensions from URLs that have a scheme. However, http:// and https:// links to the same host are still rewritten in order to handle absolute URLs.
  • HideJspExtensionFilter now sends redirect in UTF-8.
  • LocaleFilter now sends redirect in UTF-8.
  • Cookie names, values, comments, and paths are now URI-encoded.


Release Notes

  • Using managed dependencies:
    1. This project uses managed dependencies.
    2. This project's managed dependencies may also be imported by other projects.


Release Notes

  • Minimum Java version changed from 1.6 to 1.7.
  • Deprecated TempFileContext in favor of new ServletTempFileContext that does not require web.xml configuration, supports additional scopes (application and session), and registers a shutdown hook to delete on JVM exit.
  • Aligned the session URL rewriting excluded path extensions to match other projects. The list is now:
    1. *.bmp (added this release)
    2. *.css
    3. *.exe (added this release)
    4. *.gif
    5. *.ico
    6. *.jpeg
    7. *.jpg
    8. *.js
    9. *.png
    10. *.svg (added this release)
    11. *.txt
    12. *.zip


Release Notes

  • Updated dependencies.
  • New AddResponseHeaderFilter filter to add response headers. For when filter mappings are not expressive enough, supports both lightning-fast WildcardPatternMatcher and standard Java Pattern.


Release Notes

  • New AO OSS Parent POM to simplify pom.xml files.
  • Project documentation moved to per-project book in SemanticCMS format.
  • Added changelog as top-level project link.


Release Notes

  • Improved Javadoc formatting.
  • Improved README formatting.


Release Notes

  • Improved Javadoc formatting.
  • Now automatically maintains some ThreadLocal values between caller and executor during concurrent processing, and provides wrapper hook for subclasses to extend.
  • May now provide temp file list.
  • Tracks the request concurrency.
  • Added a hook for subclasses to take further action based on concurrency.
  • Now only setting encoding when not provided by client. Also removed ThreadLocale stuff that was unnecessary and never belonged here.
  • Each lock object now a small empty class to help identify lock contention.

    The lock contention profiler in NetBeans is just showing "java.lang.Object" all over, and can't seem to get from the lock object id to the actual object in the heap dump using OQL (id not found).

  • Trim on includes is just unnecessary filter invocation.
  • Avoiding setting ThreadLocal when value has not changed.
  • Using ServletContextCache for more throughput on Tomcat.


Release Notes

  • Improved Maven configuration for Java EE 6 dependencies.


Release Notes

  • Improved Javadoc formatting.


Release Notes

  • Now also hiding .jspx extension in addition to .jsp.


Release Notes

  • Reverted to Java 1.6 for Android and Java EE 6 compatibility.


Release Notes

  • Project moved to GitHub and Maven.