异常信息 Error updating database. Cause: java.lang.IllegalArgumentException: Illegal group reference
出现原因
-
在使用
SpringSecurity
时,自定义注册时,进行了密码加密(passwordEncoder
),调用MybatisPlus#insert
时出现异常Illegal group reference
,
最直接的方法就是对加密后的字符串进行转义( $ )
-
在注册的实体类设置时使用
/** * 字符转义 * * @param value 是已经加密的数据(调用了 passwordEncoder.encoder) * @return */ private String escapeDollarSign(String value) { // 将一个 $ 替换为 \$ => 数据库中的体现 return value != null ? value.replace("$", "\\$") : value; }
-
解密的时候,实现一个字符转义的方法
/** * 将 \ 转义去除,去除之后调用 passwordEncoder.match 方法就可以了 */ private String removeEscapeCharacter(String value) { return value != null ? value.replace("\\$", "$") : value; }