Fusion Auth 升级到 v 1.9.1 后出现内部服务器错误

Internal Server Error after Fusion Auth Upgrade to v 1.9.1

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

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

Sep 24, 2019 4:16:03.726 PM ERROR com.inversoft.scheduler.LogAndRetainFailureHandler - The scheduled service [class io.fusionauth.api.service.cache.ThemeCacheLoader] failed but will be re-run.

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

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

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

我正在伸出援手,希望这是一个简单的数据问题?有人有什么想法吗?提前致谢

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

很快将在 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