SHO酱的Blog

SHO酱的Blog

若依学习笔记

2021-11-17

验证码校验 ValidateCodeFilter

在若依中如果使用到验证码,则可以使用/code来获取验证码。

之后,在若依微服务版的 Gateway 中通过过滤器ValidateCodeFilter完成对验证码的校验,其中常量数组VALIDATE_URL中定义了需要校验验证码的 url 。所以可以将需要校验验证码功能的 url 定义数组中。

部署到CentOS上验证码报500错误

当将ruoyi-gateway部署到CentOS系统后,启动服务前端通过/code路径加载登录验证码时,报 500 错误;后台日志中出现如下错误:

java.lang.InternalError: java.lang.reflect.InvocationTargetException
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
......
Caused by: java.lang.reflect.InvocationTargetException: null
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
	... 78 common frames omitted
Caused by: java.lang.NullPointerException: null
	at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
	at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
	at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
	at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
	at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
	at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
	at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
	... 83 common frames omitted

需要通过以下命令安装fontconfig

yum -y install fontconfig

记得安装完成后重启gateway服务