0309d26184
@PreAuth 里的 SpEL 字符串由框架在**请求时**求值,root object 是 AuthFun。 函数名写错既不过编译期、也不在启动期暴露,只会在真实调用时抛异常 (表现为接口 500)——正好是最难在开发阶段发现的一类错。 故把两个表达式抽到 CertAuditPermissions,并在测试中用与框架相同的 SpelExpressionParser + AuthFun 作为 root object 实际解析求值,覆盖: - 只授司机菜单 / 只授车辆菜单 / 两个都没有; - 只有查看权限、没有审核按钮权限时必须拒绝(能看≠能审); - 表达式必须引用票 01 建的真实菜单码,且不得再出现角色名判断。 顺带消除控制器里与共享常量重复的两份字符串。 6 个新用例;全模块 79 个测试通过。