1

我试图将生产环境融合身份验证实例从版本 1.6.x 升级到 1.9.1 不幸的是,在数据库迁移后,我们在浏览应用程序时出现错误 500 页面。

我查看了显示以下错误的日志:

2019 年 9 月 24 日下午 4:16:03.726 错误 com.inversoft.scheduler.LogAndRetainFailureHandler - 预定服务 [class io.fusionauth.api.service.cache.ThemeCacheLoader] 失败,但将重新运行。

java.lang.IllegalStateException:在 io.fusionauth.api.domain.CachedTheme.(CachedTheme.java:24) 在 io.fusionauth.api.domain.CachedTheme.loadProperties(CachedTheme.java:40) 在 java. .util.stream.Collectors.lambda$toMap$58(Collectors.java:1321) 在 java.util.stream.ReduceOps$3ReducingSink.accept(ReduceOps.java:169) 在 java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList. java:1382) 在 java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) 在 java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) 在 java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:708) 在 java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) 在 io.fusionauth.api.service.cache.ThemeCacheLoader.load(ThemeCacheLoader.java:34) 在 io.fusionauth.api.service.cache.ThemeCacheLoader.run(ThemeCacheLoader.java:40) 在 com.inversoft.scheduler .InjectableRunnable.run(InjectableRunnable.java:37) 在 com.inversoft.scheduler.DefaultScheduler.(DefaultScheduler.java:74)

(我故意截断了日志输出,如果需要我可以用完整的日志编辑问题)

我还查看了包含两个条目的主题表。第一个在数据列中有一个非常大的 JSON 对象字符串文字,第二个只有任何空的 JSON 对象,即“{}”。

我伸出手,希望这是一个简单的数据问题?有没有人有任何想法?提前致谢

4

1 回答 1

1

这是一个已知问题,当您在升级之前定义了自定义主题时可能会发生。

很快就会在 1.9.2 版本中提供一个修复程序,解决方法在上面链接的 GitHub 问题中进行了描述,并在下面提供。 https://github.com/FusionAuth/fusionauth-issues/issues/306

解决方法:

  1. 对于默认 FusionAuth 主题以外的每个主题
  2. 使用检索主题 API
  3. defaultMessages为诸如空字符串设置一个值
  4. 使用更新主题 API 更新主题

https://fusionauth.io/docs/v1/tech/apis/themes

于 2019-09-24T18:13:39.117 回答