- Bump Guice from
5.1.0
to6.0.0
(#474)
-
Add ability to set custom default size limits for requests and responses (#467)
New constructor:
BrowserUpProxyServer(int maximumRequestBufferSizeInBytes, int maximumResponseBufferSizeInBytes)
-
Drop
jzlib
dependency (#465)Originally
jzlib
depdency was added to support defalte decompression, this library was optional in netty: https://github.com/lightbody/browsermob-proxy/pull/225/files. Over time JDK zlib decompression support was added to netty: netty/netty#1481. And then this implemnetation became default: netty/netty#4707. It makesjzlib
dependency redundant, as JDK based implementation is used now. If someone needs to usejzlib
dependency, then it's required to set the corresponding netty flag and to add this library explicitly to the local project dependencies. -
Drop
guice-multibindings
dependency (#466)Since Guice 4.2, multibindings support has moved to Guice core: https://github.com/google/guice/wiki/Guice42#changes-since-guice-42.
-
Bump Netty from
4.1.116.Final
to4.1.117.Final
(#463) -
Bump Bouncy Castle from
1.79
to1.80
(#462) -
Bump Selenium from
4.27.0
to4.28.1
(#464) -
Bump Jetty from
9.4.56.v20240826
to9.4.57.v20241219
(#470) -
Bump Jersey from
2.45
to2.46
(#469) -
Bump Guice from 4.2.3 to 5.1.0 (#468)
- Bump LittleProxy from
2.3.2
to2.4.3
(#449, #456) - Bump Netty from
4.1.115.Final
to4.1.116.Final
(#453) - Bump Log4J from
2.24.1
to2.24.3
(#445, #451) - Bump Selenium from
4.26.0
to4.27.0
(#448) - Bump Jackson from
2.18.1
to2.18.2
(#447) - Bump Guava from
33.3.1-jre
to33.4.0-jre
(#452)
-
Bump minimal required Java from 8 to 11 (#407)
-
[browserup-proxy-rest] Improved the result returned by
/proxy/{port}/har/mostRecentEntry
if no HAR entries are available (#434):Old behaviour New behaviour Status code 200
204
Response body HAR entry with required fields having default values No content -
Har log filtering logic is moved out of model class into a separate utility class (#431)
Removed method Replacement com.browserup.harreader.model.HarLog#findMostRecentEntry()
com.browserup.harreader.filter.HarLogFilter#findMostRecentEntry(HarLog)
com.browserup.harreader.model.HarLog#findMostRecentEntry(Pattern)
com.browserup.harreader.filter.HarLogFilter#findMostRecentEntry(HarLog, Pattern)
com.browserup.harreader.model.HarLog#findEntries(Pattern)
com.browserup.harreader.filter.HarLogFilter#findEntries(HarLog, Pattern)
-
Remove copy-pasted HAR models and migrate back to the original model (#430)
Removed entity Replacement com.browserup.harreader.model.Har
de.sstoehr.harreader.model.Har
com.browserup.harreader.model.HarCache
de.sstoehr.harreader.model.HarCache
com.browserup.harreader.model.HarContent
de.sstoehr.harreader.model.HarContent
com.browserup.harreader.model.HarCookie
de.sstoehr.harreader.model.HarCookie
com.browserup.harreader.model.HarCreatorBrowser
de.sstoehr.harreader.model.HarCreatorBrowser
com.browserup.harreader.model.HarEntry
de.sstoehr.harreader.model.HarEntry
com.browserup.harreader.model.HarHeader
de.sstoehr.harreader.model.HarHeader
com.browserup.harreader.model.HarLog
de.sstoehr.harreader.model.HarLog
com.browserup.harreader.model.HarPage
de.sstoehr.harreader.model.HarPage
com.browserup.harreader.model.HarPageTiming
de.sstoehr.harreader.model.HarPageTiming
com.browserup.harreader.model.HarPostData
de.sstoehr.harreader.model.HarPostData
com.browserup.harreader.model.HarPostDataParam
de.sstoehr.harreader.model.HarPostDataParam
com.browserup.harreader.model.HarQueryParam
de.sstoehr.harreader.model.HarQueryParam
com.browserup.harreader.model.HarRequest
de.sstoehr.harreader.model.HarRequest
com.browserup.harreader.model.HarResponse
de.sstoehr.harreader.model.HarResponse
com.browserup.harreader.model.HarTiming
de.sstoehr.harreader.model.HarTiming
com.browserup.harreader.model.HttpMethod
de.sstoehr.harreader.model.HttpMethod
com.browserup.harreader.model.HttpStatus
de.sstoehr.harreader.model.HttpStatus
Alongside the models, custom APIs were removed:
Removed Replacement com.browserup.harreader.model.Har#writeTo(java.io.Writer)
de.sstoehr.harreader.HarWriter#writeTo(java.io.Writer, de.sstoehr.harreader.model.Har)
com.browserup.harreader.model.Har#writeTo(java.io.OutputStream)
de.sstoehr.harreader.HarWriter#writeTo(java.io.OutputStream, de.sstoehr.harreader.model.Har)
com.browserup.harreader.model.Har#writeTo(java.io.File)
de.sstoehr.harreader.HarWriter#writeTo((java.io.File, de.sstoehr.harreader.model.Har)
com.browserup.harreader.model.Har#asBytes()
de.sstoehr.harreader.HarWriter#writeAsBytes(de.sstoehr.harreader.model.Har)
com.browserup.harreader.model.Har#deepCopy()
No direct replacement is avaialble, combination of de.sstoehr.harreader.HarWriter
andde.sstoehr.harreader.HarReader
invocations should be used instead -
Remove deprecated public API (#441, #442):
Removed Replacement com.browserup.bup.proxy.dns.DnsJavaResolver
com.browserup.bup.proxy.dns.NativeResolver
com.browserup.bup.client.ClientUtil#createDnsJavaResolver()
com.browserup.bup.client.ClientUtil#createNativeResolver
com.browserup.bup.client.ClientUtil#createDnsJavaWithNativeFallbackResolver()
com.browserup.bup.client.ClientUtil#createNativeCacheManipulatingResolver
com.browserup.bup.proxy.BlocklistEntry#getPattern()
com.browserup.bup.proxy.BlocklistEntry#getUrlPattern()
com.browserup.bup.proxy.BlocklistEntry#getMethod()
com.browserup.bup.proxy.BlocklistEntry#getHttpMethodPattern()
com.browserup.bup.proxy.BlocklistEntry#getResponseCode()
com.browserup.bup.proxy.BlocklistEntry#getStatusCode()
com.browserup.bup.proxy.Allowlist.Allowlist(java.lang.String[], int)
com.browserup.bup.proxy.Allowlist.Allowlist(java.util.Collection<java.lang.String>, int)
com.browserup.bup.proxy.Allowlist#getResponseCode()
com.browserup.bup.proxy.Allowlist#getStatusCode()
com.browserup.harreader.HarReader
de.sstoehr.harreader.HarReader
com.browserup.harreader.HarReaderException
de.sstoehr.harreader.HarReaderException
com.browserup.harreader.HarReaderMode
de.sstoehr.harreader.HarReaderMode
com.browserup.harreader.jackson.DefaultMapperFactory
de.sstoehr.harreader.jackson.DefaultMapperFactory
com.browserup.harreader.jackson.ExceptionIgnoringDateDeserializer
de.sstoehr.harreader.jackson.ExceptionIgnoringDateDeserializer
com.browserup.harreader.jackson.ExceptionIgnoringIntegerDeserializer
de.sstoehr.harreader.jackson.ExceptionIgnoringIntegerDeserializer
com.browserup.harreader.jackson.MapperFactory
de.sstoehr.harreader.jackson.MapperFactory
-
Remove internal APIs (it was not intended for external usage, but was public) (#440)
Removed entity Replacement com.browserup.harreader.filter.HarEntriesFilter
java.util.function.Predicate<HarEntry>
com.browserup.harreader.filter.HarEntriesUrlPatternFilter
Not available, the logic was inlined
- Bump HAR reader from
2.3.0
to2.5.0
(#432, #436, #439) - Bump LittleProxy from
2.0.22
to2.3.2
(#339, #408, #421, #429) - Bump Netty from
4.1.113.Final
to4.1.115.Final
(#420, #433) - Bump Bouncy Castle from
1.78.1
to1.79
(#426) - Bump Log4J from
2.24.0
to2.24.1
(#415) - Bump Selenium from
4.13.0
to4.26.0
(#399, #410, #427) - Bump Jackson from
2.17.2
to2.18.1
(#412, #425) - Bump Swagger from
2.2.23
to2.2.26
(#418, #437) - Bump Guava from
33.3.0-jre
to33.3.1-jre
(#414)
- Bump Netty from
4.1.112.Final
to4.1.113.Final
(#404) - Bump SLF4J from
2.0.13
to2.0.16
(#393) - Bump Log4J from
2.23.1
to2.24.0
(#403) - Bump dnsjava from
3.6.0
to3.6.1
(#386) - Bump Apache Commons Lang from
3.15.0
to3.17.0
(#392, #400) - Bump Swagger from
2.2.22
to2.2.23
(#398) - Bump Jetty from
9.4.54.v20240208
to9.4.56.v20240826
(#406) - Bump Jersey from
2.43
to2.45
(#390, #405) - Bump Guava from
33.2.1-jre
to33.3.0-jre
(#396) - Bump Awaitility from
4.2.1
to4.2.2
(#395)
- Bump Netty from
4.1.111.Final
to4.1.112.Final
(#381) - Bump dnsjava from
3.5.3
to3.6.0
(#385) - Bump Jackson from
2.17.1
to2.17.2
(#380) - Bump Apache Commons Lang from
3.14.0
to3.15.0
(#382)
- Bump Netty from
4.1.107.Final
to4.1.111.Final
(#352, #359, #369, #372) - Bump Bouncy Castle from
1.77
to1.78.1
(#356, #360) - Bump SLF4J from
2.0.12
to2.0.13
(#358) - Bump Swagger from
2.2.20
to2.2.22
(#353, #367) - Bump Jackson from
2.17.0
to2.17.1
(#362) - Bump Jetty from
9.4.53.v20231009
to9.4.54.v20240208
(#377) - Bump Jersey from
2.40
to2.43
(#357, #378) - Bump Guava from
33.1.0-jre
to33.2.1-jre
(#363, #372)
- Bump HAR reader from
2.2.1
to2.3.0
(#309) - Bump Netty from
4.1.101.Final
to4.1.107.Final
(#319, #330, #338) - Bump SLF4J from
2.0.9
to2.0.12
(#326, #328, , #335) - Bump Log4J from
2.21.1
to2.23.1
(#308, #327, #340, , #346) - Bump Swagger from
2.2.19
to2.2.20
(#323) - Bump Jackson from
2.16.0
to2.17.0
(#324, #348, , #350) - Bump Apache Commons Lang from
3.13.0
to3.14.0
(#257) - Bump Guava from
32.1.3-jre
to33.1.0-jre
(#322, #351) - Bump Awaitility from
4.2.0
to4.2.1
(#349)
-
Use native Java to manage OS processes (#306)
org.zeroturnaround:zt-exec
dependency is dropped.
- Bump Netty from
4.1.100.Final
to4.1.101.Final
(#297) - Bump
okhttp
from4.11.0
to4.12.0
(#290) - Bump Log4J from
2.20.0
to2.21.1
(#289, #292) - Bump Swagger from
2.2.17
to2.2.19
(#291, #296) - Bump dnsjava from
3.5.2
to3.5.3
(#298) - Bump Bouncy Castle from
1.76
to1.77
(#300) - Bump Jackson from
2.15.3
to2.16.0
(#299)
-
Fix scope of
org.slf4j:jcl-over-slf4j
dependency: do not add it ascompile
-scope dependency (#303)Users should decide which logging framework to use and how to bridge Jakarta Commons Logging (JCL).
- Bump LittleProxy from
2.0.20
to2.0.22
(#277, #279, #285) - Bump Netty from
4.1.97.Final
to4.1.100.Final
(#274, #276) - Bump Jetty from
9.4.51.v20230217
to9.4.53.v20231009
(#281) - Bump Swagger from
2.2.15
to2.2.17
(#273, #286) - Bump Jackson from
2.15.2
to2.15.3
(#288) - Bump Guava from
32.1.2-jre
to32.1.3-jre
(#284) - Bump Selenium from
4.12.1
to4.13.0
(#275)
- Bump LittleProxy from
2.0.19
to2.0.20
(#272) - Bump SLF4J from
2.0.7
to2.0.9
(#267) - Bump Selenium from
4.11.0
to4.12.1
(#265, #271)
- Bump Netty from
4.1.95.Final
to4.1.97.Final
(#258, #264) - Bump Bouncy Castle from
1.75
to1.76
(#256) - Bump Apache Commons Lang from
3.12.0
to3.13.0
(#257) - Bump Guava from
32.1.1-jre
to32.1.2-jre
(#260) - Bump Selenium from
4.10.0
to4.11.0
(#259)
- Bump LittleProxy from
2.0.17
to2.0.19
(#235, #253) - Bump Netty from
4.1.92.Final
to4.1.95.Final
(#236, #246, #252) - Bump Swagger from
2.2.9
to2.2.15
(#231, #237, #242, #245, #250) - Bump Jersey from
2.32
to2.40
(#255) - Bump Bouncy Castle from
1.73
to1.75
(#243, #247) - Bump Jackson from
2.15.0
to2.15.2
(#233, #238) - Bump Guava from
31.1-jre
to32.1.1-jre
(#234, #241, #249) - Bump Selenium from
4.9.0
to4.10.0
(#229, #240)
- Bump LittleProxy from
2.0.16
to2.0.17
(#218) - Bump Netty from
4.1.90.Final
to4.1.92.Final
(#219, #228) - Bump
okhttp
from4.10.0
to4.11.0
(#227) - Bump Bouncy Castle from
1.72
to1.73
(#222) - Bump Jackson from
2.14.2
to2.15.0
(#226) - Bump Selenium from
4.8.2
to4.9.0
(#216, #227)
- Bump LittleProxy from
2.0.15
to2.0.16
(#207) - Bump Jetty from
9.4.50.v20221201
to9.4.51.v20230217
(#208) - Bump Swagger from
2.2.8
to2.2.9
(#212) - Bump SLF4J from
2.0.6
to2.0.7
(#214) - Bump Netty from
4.1.89.Final
to4.1.90.Final
(#213) - Bump Selenium from
4.8.1
to4.8.2
(#215)
- Bump Swagger from
2.2.7
to2.2.8
(#194) - Bump Netty from
4.1.86.Final
to4.1.89.Final
(#196, #203, #204) - Bump Jackson from
2.14.1
to2.14.2
(#198) - Bump Selenium from
4.7.2
to4.8.1
(#197, #205) - Bump Log4J from
2.19.0
to2.20.0
(#134)
- Bump Selenium from
4.5.0
to4.7.2
(#164, #189) - Bump LittleProxy from
2.0.13
to2.0.15
(#180, #188) - Bump httpclient from
4.5.13
to4.5.14
(#182) - Bump Jetty from
9.4.49.v20220914
to9.4.50.v20221201
(#184) - Bump SLF4J from
2.0.5
to2.0.6
(#187) - Bump Netty from
4.1.82.Final
to4.1.86.Final
(#190)
- Bump Swagger from
2.2.6
to2.2.7
(#173) - Bump dnsjava from
3.5.1
to3.5.2
(#176) - Bump SLF4J from
2.0.3
to2.0.5
(#174, #179)
- Bump SLF4J from
2.0.1
to2.0.3
(#143, #147) - Bump Bouncy Castle from
1.71.1
to1.72
(#148) - Bump Swagger from
2.2.2
to2.2.3
(#146) - Bump LittleProxy from
2.0.11
to2.0.13
(#150) - Bump Selenium from
4.4.0
to4.5.0
(#145) - Revise Jackson dependencies (#153)
- Bump Netty from
4.1.82.Final
to4.1.84.Final
(#156) - Bump Jakson BOM from
2.13.4
to2.13.4.20221013
(#155)
- Start deprecating copy-pasted HAR reader logic (#154)
At some point the full copy of HAR reader library (https://github.com/sdstoehr/har-reader) was added to BrowserUp proxy: browserup#38. That was not a good solution, since the fixes from the original library are not added back, the copy adds extra maintenance effort, etc. The best strategy here is to propose custom changes to the original implementation step by step.
This commit starts the deprecation process of copy-pasted as-is HAR reader entities.Deprecated entity Replacement com.browserup.harreader.HarReader
de.sstoehr.harreader.HarReader
com.browserup.harreader.HarReaderException
de.sstoehr.harreader.HarReaderException
com.browserup.harreader.HarReaderMode
de.sstoehr.harreader.HarReaderMode
com.browserup.harreader.jackson.DefaultMapperFactory
de.sstoehr.harreader.jackson.DefaultMapperFactory
com.browserup.harreader.jackson.ExceptionIgnoringDateDeserializer
de.sstoehr.harreader.jackson.ExceptionIgnoringDateDeserializer
com.browserup.harreader.jackson.ExceptionIgnoringIntegerDeserializer
de.sstoehr.harreader.jackson.ExceptionIgnoringIntegerDeserializer
com.browserup.harreader.jackson.MapperFactory
de.sstoehr.harreader.jackson.MapperFactory
com.browserup.harreader.model.HarHeader
de.sstoehr.harreader.model.HarHeader
com.browserup.harreader.model.HarPageTiming
de.sstoehr.harreader.model.HarPageTiming
com.browserup.harreader.model.HarQueryParam
de.sstoehr.harreader.model.HarQueryParam
- Bump Selenium from
4.3.0
to4.4.0
(#123) - Bump Bouncy Castle from
1.71
to1.71.1
(#127) - Bump Netty from
4.1.79.Final
to4.1.82.Final
(#128, #132, , #136) - Bump Jackson from
2.13.3
to2.13.4
(#129) - Bump SLF4J from
1.7.36
to2.0.1
(#138) - Bump Log4J from
2.18.0
to2.19.0
(#134) - Switch to Log4j SLF4J 2.0 API binding to Log4j 2 Core (#140)
- Bump Jetty from
9.4.48.v20220622
to9.4.49.v20220914
(#141)
- Bump Selenium from
4.2.2
to4.3.0
(#110) - Bump LittleProxy from
2.0.9
to2.0.11
(#115, #122) (incl. fix for a memory leak) - Bump Bouncy Castle from
1.70
to1.71
(#117) - Bump Swagger from
2.2.1
to2.2.2
(#119)
- Bump Selenium from
4.1.4
to4.2.2
(#99) - Bump Swagger from
2.2.0
to2.2.1
(#106) - Bump Netty from
4.1.77.Final
to4.1.79.Final
(#107, #114) - Bump Jetty from
9.4.46.v20220331
to9.4.48.v20220622
(#108)
- Add ability to get deep copy of HAR object (#85)
- Add ability to find the most recent entry in HAR:
HarLog#findMostRecentEntry()
(#86) - Add ability to convert HAR to byte array (#90)
-
Make sure default values from HAR entities satisfies specification (#84)
http://www.softwareishard.com/blog/har-12-spec/#request:
- headersSize [number] - Set to -1 if the info is not available.
- bodySize [number] - Set to -1 if the info is not available.
http://www.softwareishard.com/blog/har-12-spec/#response:
- headersSize [number]* - Set to -1 if the info is not available.
- bodySize [number] - Set to -1 if the info is not available.
-
Fix
Falcon
deprecation warnings (#101)
- Bump Log4J from
2.17.1
to2.17.2
- Bump Jackson from
2.13.1
to2.13.3
- Bump Awaitility from
4.1.1
to4.2.0
- Bump Guava from
31.0.1-jre
to31.1-jre
- Bump Swagger from
2.1.13
to2.2.0
- Bump Jetty from
9.4.35.v20201120
to9.4.46.v20220331
- Bump Netty from
4.1.74.Final
to4.1.77.Final
- Upgrade to LittleProxy
2.0.9
- Upgrade to an actively maintained LittleProxy fork
- Bump Selenium from
3.141.59
to4.1.4
- Use the
CONNECT
method URI as host detection fallback - Bump dnsjava from
3.5.0
to3.5.1
- Drop Javassist dependency: Javassist dependency was added in order to improve Netty performance, however Netty dropped Javassist support a long time ago
- Optimize logging performance
- Bump SLF4J from
1.7.32
to1.7.36
- Bump Netty from
4.1.72.Final
to4.1.74.Final
- Bump dnsjava from
3.4.3
to3.5.0
- Bump Swagger from
2.1.12
to2.1.13
The reason of forking can be found here.
TBD
TBD
TBD
TBD
TBD
- Performance, Page and Network assertions. The proxy now lets you "assert" over the REST API about the recent HTTP traffic. If you are familiar with HAR files, this lets you skip handling them directly for most use-cases. Some highlights (See the rest in: https://github.com/valfirst/browserup-proxy/commit/889aeda6d27b05b50714b754f6e43b3a600e6d9b):
- assertMostRecentResponseTimeLessThanOrEqual
- assertResponseTimeLessThanOrEqual
- assertMostRecentResponseContentContains
- assertMostRecentResponseContentMatches
- assertAnyUrlContentLengthLessThanOrEquals
- assertAnyUrlContentMatches
- assertAnyUrlContentDoesNotContain
- assertAnyUrlResponseHeaderContains
- assertResponseStatusCode
- assertMostRecentResponseContentLengthLessThanOrEqual
- Fix compatibility with the HAR viewer by setting correct defaults per the HAR spec
- Update Netty to the latest version
- Merge in contribution from @jrgp to allow upstream proxy connections to utilize HTTPS.
- Default to the step name "Default" when requests come through and no page is set yet.
- No changes, binaries compiled for Java 8+.
- Add much-needed handling of Brotli Compression. Brotli has become a popular alternative to GZIP compression scheme, and is utilized all over the web by websites including Google and Facebook. The proxy can now decompress and recognize brotli.
- Add recognition for variant (versioned) JSON content type strings. Previously, response bodies for JSON content types with content types like "application/something-v1+json" would not be captured. Now they will be.
- Fix a credentials leak where the basic auth header was being added to non-connect request types.
- Dependency updates
- ZIP distribution with launch scripts, SSL certificates and keys
- Dependency updates
- Initial fork based on BrowserMob Proxy
- HTTP/2 support via Netty 4.1.34 upgrade
- Java 11 support
- Upgrades to dependencies (mockito, etc)
- Upgrade to an actively maintained, LittleProxy fork
- Switch to Gradle
- Import a new, better HAR reader from https://github.com/sdstoehr/har-reader
- Extend the har reader with filtering/finding capabilities
- Modify every existing file by adding a header to ensure compliance with Apache License
- Rename our fork to our own name, BrowserUp, as we will be investing in it heavily. We have no relation to BrowserMob, which was a company acquired by Neustar in 2010.
- Updates to the Readme to remove legacy proxyserver information