All work
- LoginClient/RefreshClient: Suppress stacktrace, compress JSONOKAPI-1207Resolved issue: OKAPI-1207Julian Ladisch
- Release 6.2.0 for SunflowerOKAPI-1206Resolved issue: OKAPI-1206Julian Ladisch
- Upgrade dependencies for SunflowerOKAPI-1205Resolved issue: OKAPI-1205Julian Ladisch
- Migrate Java from 17 to 21OKAPI-1204Resolved issue: OKAPI-1204Julian Ladisch
- Vert.x 4.5.13 fixing bugsOKAPI-1203Resolved issue: OKAPI-1203Julian Ladisch
- HttpResponse: Sanitize HTTP status code outside 100...999OKAPI-1202Resolved issue: OKAPI-1202Julian Ladisch
- Proxy should NOT relay Host headerOKAPI-1201Resolved issue: OKAPI-1201Adam Dickmeiss
- Test ModuleTest.testInitdatabaseBadCredentials failsOKAPI-1200
- incorrect type 'internal' for okapi interface enables mod-okapi-facadeOKAPI-1199Resolved issue: OKAPI-1199Adam Dickmeiss
- Increase max URI length from 4096 to 8192OKAPI-1198Resolved issue: OKAPI-1198Julian Ladisch
- -Dloglevel and OKAPI_LOGLEVEL doesn't change loglevelOKAPI-1197
- ChattyHttpResponseExpectation, deprecating ChattyResponsePredicateOKAPI-1196Resolved issue: OKAPI-1196Julian Ladisch
- Upgrade dependencies for RamsonsOKAPI-1195Resolved issue: OKAPI-1195Julian Ladisch
- Bump checkstyle version, fix checkstyle issuesOKAPI-1194
- commons-io 2.16.1OKAPI-1192Resolved issue: OKAPI-1192Julian Ladisch
- NumberFormatException in timerId halts OkapiOKAPI-1191Resolved issue: OKAPI-1191Julian Ladisch
- Upgrade testcontainers, commons-compress, commons-lang3, commons-fileupload, commons-ioOKAPI-1190Resolved issue: OKAPI-1190Julian Ladisch
- Add "extensions" field to module descriptorOKAPI-1189Resolved issue: OKAPI-1189Oleksii Kuzminov
- HttpResponse: Log method, path and stacktraceOKAPI-1188Resolved issue: OKAPI-1188Julian Ladisch
- Illegal base64 character 5f on token with umlautOKAPI-1187Resolved issue: OKAPI-1187Julian Ladisch
- Clearly log which user/tenant has invalid credentialsOKAPI-1193Resolved issue: OKAPI-1193Julian Ladisch
- Add ChattyResponsePredicate to okapi-commonOKAPI-1186Resolved issue: OKAPI-1186Julian Ladisch
- Vert.x 4.5.7 fixing PostgreSQL SSL hostname verificationOKAPI-1185Resolved issue: OKAPI-1185Julian Ladisch
- Upgrade dependencies for Quenselia: Vert.x 4.5.3, Micrometer 1.12.2, ...OKAPI-1184Resolved issue: OKAPI-1184Julian Ladisch
- Vert.x 4.4.8 fixing CVE-2024-1023OKAPI-1183Resolved issue: OKAPI-1183Julian Ladisch
- Improve 404 log entry for authn/login and authn/login-with-expiryOKAPI-1182
- Allow Module Dependency Checking to be ConfigurableOKAPI-1181Resolved issue: OKAPI-1181Olamide Kolawole
- In Debian package upgrade openjdk from 11 to 17OKAPI-1180Resolved issue: OKAPI-1180Julian Ladisch
- Improve Json.decodeValue array error messageOKAPI-1179Resolved issue: OKAPI-1179Julian Ladisch
- Vert.x 4.4.6 fixing netty-codec-http2 DoS (CVE-2023-44487)OKAPI-1178Resolved issue: OKAPI-1178Julian Ladisch
- Disable reduced pom in shade pluginOKAPI-1177Resolved issue: OKAPI-1177Julian Ladisch
- Release 5.1.0 for PoppyOKAPI-1176Resolved issue: OKAPI-1176Julian Ladisch
- Upgrade dependencies for Poppy: Vert.x 4.4.5, ...OKAPI-1175Resolved issue: OKAPI-1175Julian Ladisch
- Version vulnerabilities of org.yaml and com.fasterxml.jackson.coreOKAPI-1174Resolved issue: OKAPI-1174
- okapi INFO log level should not be exposing sensitive dataOKAPI-1173
- Reduce excessive logging on deployOKAPI-1172Resolved issue: OKAPI-1172Julian Ladisch
- Can delete tenant with enabled modulesOKAPI-1171
- Update to Java 17 okapiOKAPI-1170Resolved issue: OKAPI-1170Julian Ladisch
- Sporadic MapExpiryTest failureOKAPI-1169Resolved issue: OKAPI-1169Julian Ladisch
- Add tenantId to Token Cache KeyOKAPI-1168Resolved issue: OKAPI-1168Olamide Kolawole
- Recreating tenant requires restarting of the okapiOKAPI-1167
- Enable API-related GitHub Workflows, replace those Jenkins stagesOKAPI-1166Resolved issue: OKAPI-1166David Crossley
- Handle Sonar issuesOKAPI-1165Resolved issue: OKAPI-1165Steve Ellis
- ctx.request().path() log injection in okapi-test-module MainVerticleOKAPI-1164Resolved issue: OKAPI-1164Julian Ladisch
- Add time waited to the WAIT log message (log_wait_ms)OKAPI-1163Resolved issue: OKAPI-1163Julian Ladisch
- apt upgrade - OpenSSL 3.0.8 fixing 8 vulnsOKAPI-1162Resolved issue: OKAPI-1162Julian Ladisch
- Release 5.0.0 for OrchidOKAPI-1161Resolved issue: OKAPI-1161Adam Dickmeiss
- Okapi 4.14.10 Fail. Some modules cannot be topologically sorting ( on update mod-search)OKAPI-1160Resolved issue: OKAPI-1160
- Vert.x 4.3.8, Micrometer 1.10.3OKAPI-1159Resolved issue: OKAPI-1159Julian Ladisch
- Upgrade mod-permissions before module renameOKAPI-1158Resolved issue: OKAPI-1158Julian Ladisch
50 of
LoginClient/RefreshClient: Suppress stacktrace, compress JSON
Done
Description
Environment
None
Potential Workaround
None
Checklist
hideDetails
Assignee
Julian LadischJulian LadischReporter
Julian LadischJulian LadischPriority
TBDDevelopment Team
Core: PlatformFix versions
Release
Sunflower (R1 2025)TestRail: Cases
Open TestRail: CasesTestRail: Runs
Open TestRail: Runs
Details
Details
Assignee
Julian Ladisch
Julian LadischReporter
Julian Ladisch
Julian LadischPriority
Development Team
Core: Platform
Fix versions
Release
Sunflower (R1 2025)
TestRail: Cases
Open TestRail: Cases
TestRail: Runs
Open TestRail: Runs
Created March 5, 2025 at 12:02 PM
Updated March 12, 2025 at 9:16 AM
Resolved March 7, 2025 at 2:54 PM
Activity
Show:
okapi-common' LoginClient and RefreshClient cause a log entry like this:
ERROR olioResourceProvider Unable to get the access token org.folio.okapi.common.refreshtoken.client.ClientException: POST /authn/login-with-expiry returned status 422: { 2025-03-05T10:10:00.951724749Z "errors" : [ { 2025-03-05T10:10:00.951733124Z "message" : "User must be flagged as active", "type" : "error", "code" : "user.blocked", "parameters" : [ ] } ] } at org.folio.okapi.common.refreshtoken.client.impl.LoginClient.lambda$getTokenWithExpiry$1(LoginClient.java:95) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.Mapping.onSuccess(Mapping.java:35) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.FutureBase.emitSuccess(FutureBase.java:66) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.FutureImpl.tryComplete(FutureImpl.java:259) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.PromiseImpl.onSuccess(PromiseImpl.java:49) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.PromiseImpl.handle(PromiseImpl.java:41) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.future.PromiseImpl.handle(PromiseImpl.java:23) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.handleDispatchResponse(HttpContext.java:397) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:384) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:362) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.fire(HttpContext.java:329) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.dispatchResponse(HttpContext.java:291) ~[edge-sip2-fat.jar:?] at io.vertx.ext.web.client.impl.HttpContext.lambda$null$7(HttpContext.java:507) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:279) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.ContextInternal.dispatch(ContextInternal.java:261) ~[edge-sip2-fat.jar:?] at io.vertx.core.impl.ContextInternal.lambda$runOnContext$0(ContextInternal.java:59) ~[edge-sip2-fat.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) [edge-sip2-fat.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) [edge-sip2-fat.jar:?] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [edge-sip2-fat.jar:?] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566) [edge-sip2-fat.jar:?] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [edge-sip2-fat.jar:?] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [edge-sip2-fat.jar:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [edge-sip2-fat.jar:?] at java.base/java.lang.Thread.run(Unknown Source) [?:?]
The stacktrace is useless because it only shows Netty and Vert.x interals.
The JSON body is pretty-printed taking multiple lines and should be compressed into a single line.
The useless verbosity blows up the logs and makes it more difficult for sysops to browse the logs.