Skip to content

Token Management: Values beyond 1000 years accepted but show "invalid date" #22787

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
damianharouff opened this issue Jun 3, 2025 · 0 comments
Labels

Comments

@damianharouff
Copy link

In Token Management, values beyond 1000 years are accepted by the front end and apparently accepted by the back end, but result in "Invalid Date":

Image

MDB shows odd values for expires_at:

  {
    _id: ObjectId('683f539cadb47365561754c4'),
    last_access: ISODate('1970-01-01T00:00:00.000Z'),
    expires_at: ISODate('3025-06-03T19:57:16.161Z'),
    created_at: ISODate('2025-06-03T19:57:16.161Z'),
    token_type: 1,
    token: 'redacted',
    username: 'graylog-forwarder',
    NAME: 'malarkey2'
  },
  {
    _id: ObjectId('683f53a2adb47365561754c8'),
    last_access: ISODate('1970-01-01T00:00:00.000Z'),
    expires_at: ISODate('+012025-06-03T19:57:22.312Z'),
    created_at: ISODate('2025-06-03T19:57:22.312Z'),
    token_type: 1,
    token: 'redacted',
    username: 'graylog-forwarder',
    NAME: 'malarkey3'
  },
  {
    _id: ObjectId('683f53a9adb47365561754cc'),
    last_access: ISODate('1970-01-01T00:00:00.000Z'),
    expires_at: ISODate('+102025-06-03T19:57:29.041Z'),
    created_at: ISODate('2025-06-03T19:57:29.041Z'),
    token_type: 1,
    token: 'redacted',
    username: 'graylog-forwarder',
    NAME: 'malarkey4'
  }

Even larger values are still accepted by the front end but rejected by the back end:

2025-06-03T12:55:45.668-07:00 ERROR [ServerRuntime$Responder] An exception has been thrown from an exception mapper class org.graylog2.shared.rest.exceptionmappers.JsonMappingExceptionMapper.
java.lang.NullPointerException: Cannot invoke "com.fasterxml.jackson.core.JsonLocation.getLineNr()" because the return value of "com.fasterxml.jackson.databind.JsonMappingException.getLocation()" is null
	at org.graylog2.shared.rest.exceptionmappers.JsonMappingExceptionMapper.errorWithJsonPath(JsonMappingExceptionMapper.java:75) ~[graylog.jar:?]
	at org.graylog2.shared.rest.exceptionmappers.JsonMappingExceptionMapper.toResponse(JsonMappingExceptionMapper.java:43) ~[graylog.jar:?]
	at org.graylog2.shared.rest.exceptionmappers.JsonMappingExceptionMapper.toResponse(JsonMappingExceptionMapper.java:37) ~[graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$Responder.processExceptionWithMapper(ServerRuntime.java:606) [graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$Responder.mapException(ServerRuntime.java:571) [graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:447) [graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:282) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [graylog.jar:?]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266) [graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253) [graylog.jar:?]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696) [graylog.jar:?]
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:367) [graylog.jar:?]
	at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:190) [graylog.jar:?]
	at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:259) [graylog.jar:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]
2025-06-03T12:55:45.670-07:00 ERROR [ServerRuntime$Responder] An exception was not mapped due to exception mapper failure. The HTTP 500 response will be returned.
com.fasterxml.jackson.databind.JsonMappingException: Text cannot be parsed to a Period (through reference chain: org.graylog2.rest.resources.users.UsersResource$GenerateTokenTTL["token_ttl"])
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:401) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:360) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1964) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:587) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:447) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1497) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:348) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:185) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2102) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1249) ~[graylog.jar:?]
	at com.fasterxml.jackson.jakarta.rs.base.ProviderBase.readFrom(ProviderBase.java:784) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:236) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:215) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:135) ~[graylog.jar:?]
	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundReadFrom(MappableExceptionWrapperInterceptor.java:49) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:135) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072) ~[graylog.jar:?]
	at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:657) ~[graylog.jar:?]
	at org.glassfish.jersey.server.ContainerRequest.readEntity(ContainerRequest.java:290) ~[graylog.jar:?]
	at org.glassfish.jersey.server.internal.inject.EntityParamValueParamProvider$EntityValueSupplier.apply(EntityParamValueParamProvider.java:73) ~[graylog.jar:?]
	at org.glassfish.jersey.server.internal.inject.EntityParamValueParamProvider$EntityValueSupplier.apply(EntityParamValueParamProvider.java:56) ~[graylog.jar:?]
	at org.glassfish.jersey.server.spi.internal.ParamValueFactoryWithSource.apply(ParamValueFactoryWithSource.java:50) ~[graylog.jar:?]
	at org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:68) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$AbstractMethodParamInvoker.getParamValues(JavaResourceMethodDispatcherProvider.java:109) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:93) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400) ~[graylog.jar:?]
	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) ~[graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:274) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [graylog.jar:?]
	at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [graylog.jar:?]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:266) [graylog.jar:?]
	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:253) [graylog.jar:?]
	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:696) [graylog.jar:?]
	at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:367) [graylog.jar:?]
	at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:190) [graylog.jar:?]
	at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:259) [graylog.jar:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]
	at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: java.time.format.DateTimeParseException: Text cannot be parsed to a Period
	at java.base/java.time.Period.parse(Unknown Source) ~[?:?]
	at org.threeten.extra.PeriodDuration.parse(PeriodDuration.java:292) ~[graylog.jar:?]
	at org.graylog2.jackson.PeriodDurationDeserializer.deserialize(PeriodDurationDeserializer.java:37) ~[graylog.jar:?]
	at org.graylog2.jackson.PeriodDurationDeserializer.deserialize(PeriodDurationDeserializer.java:28) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer.deserialize(ReferenceTypeDeserializer.java:207) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:543) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:585) ~[graylog.jar:?]
	... 41 more
Caused by: java.lang.NumberFormatException: Error at index 10 in: "1000000000000"
	at java.base/java.lang.NumberFormatException.forCharSequence(Unknown Source) ~[?:?]
	at java.base/java.lang.Integer.parseInt(Unknown Source) ~[?:?]
	at java.base/java.time.Period.parseNumber(Unknown Source) ~[?:?]
	at java.base/java.time.Period.parse(Unknown Source) ~[?:?]
	at org.threeten.extra.PeriodDuration.parse(PeriodDuration.java:292) ~[graylog.jar:?]
	at org.graylog2.jackson.PeriodDurationDeserializer.deserialize(PeriodDurationDeserializer.java:37) ~[graylog.jar:?]
	at org.graylog2.jackson.PeriodDurationDeserializer.deserialize(PeriodDurationDeserializer.java:28) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.std.ReferenceTypeDeserializer.deserialize(ReferenceTypeDeserializer.java:207) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:543) ~[graylog.jar:?]
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:585) ~[graylog.jar:?]
	... 41 more
  • Graylog Version: 6.3.0-beta.4
  • Java Version: embedded
  • OpenSearch Version: Data Node 6.3.0-beta.4
  • MongoDB Version: 8.0.3
  • Operating System: Debian 12
  • Browser version: Arc Version 1.97.0 (63507) - Chromium Engine Version 137.0.7151.56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant