keycloak~管理平台的查询bug与自定rest中文检索
对于keycloak来说,它的管理平台在它的源码中的admin-client中,它会定义相关的rest接口规范;在我们使用keycloak管理平台时,其中有一个组的查询,在我们查询中文组时,它是不支持的,经过测试和mysql日志监控得到原因:
- keycloak rest使用
javax.ws.rs包下面的注解,在使用@QueryParam注解来接收url参数时,当出现中文时,它实现是一个urlEncode的字符 - 它本身不会对字段进行urlDecode的操作,所以我们自己要做;而spring框架帮我们作了这事,我们自己不用做
- urlDecode截图之前和之后

- 手动添加urlDecode代码
@GET
@Path("search")
@NoCache
@Produces({MediaType.APPLICATION_JSON})
@Encoded
public Response search(@QueryParam("name") String name) throws UnsupportedEncodingException {
if (StringUtils.isEmpty(name)) {
throw new ClientErrorException("name不能为空", Response.Status.BAD_REQUEST);
}
TypedQuery<GroupEntity> query = em.createQuery("select u from GroupEntity u where u.realm = :realm and lower(u.name) = :name", GroupEntity.class);
log.info("group name:" + name);
name = URLDecoder.decode(name, "utf-8");
log.info("group name 2:" + name);
query.setParameter("name", name.trim().toLowerCase());
query.setParameter("realm", session.getContext().getRealm().getName());
List<GroupEntity> result = query.getResultList();
return Response.ok(result, APPLICATION_JSON_TYPE).build();
}
查询中文组
[
{
"id": "d355cb9e-9557-4465-9eba-44f20b0c24ea",
"name": "测试",
"parentId": " ",
"realm": "fabao",
"attributes": []
}
]
keycloak~管理平台的查询bug与自定rest中文检索的更多相关文章
- API管理平台XXL-API
<API管理平台XXL-API> 一.简介 1.1 概述 XXL-API是一个简洁易用API管理平台,提供API的"管理"."文档"."M ...
- 基于 Java Web 的毕业设计选题管理平台--测试报告与用户手册
一.测试报告 1.兼容性测试 功能 描述 效果 Chrome浏览器 FireFox浏览器 IE浏览器 war 端浏览器 管理员登录 管理员用户登录功能 弹出“登录成功”对话框,进入到毕业设计选题管理平 ...
- 【转】腾讯移动品质中心TMQ [腾讯 TMQ] 测试管理平台大比拼
简介 测试管理平台是贯穿测试整个生命周期的工具集合,它主要解决的是测试过程中团队协作的问题,比如缺陷管理.用例管理.测试任务管理等. 目前市面上比较流行的测试管理工具有QC. Mantis. BugZ ...
- kettle系列-我的开源kettle调度、管理平台[kettle-manager]介绍
kettle管理工具 专门为kettle这款优秀的ETL工具开发的web端调度.管理工具. 新版本 项目简介 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用的都是使用客户端操 ...
- Dubbo入门到精通学习笔记(五):持续集成管理平台之sonarqube代码质量管理平台的介绍与安装
文章目录 SonarQube的介绍 SonarQube的安装 安装简介 详细安装过程 详细使用过程 SonarQube的介绍 SonarQube是一个管理代码质量的开放平台. 可以从七个维度检测代码质 ...
- 开发haproxy管理平台
1.说明:该脚本仅适用于Linux操作系统2.使用方法: 在该脚本同级目录下要创建一个名字叫做 haproxy 的文件 haproxy 文件内容如下 global log 127.0.0.1 loca ...
- (视频) 《快速创建网站》1. 网站管理平台WordPress & 微软Azure 云计算简介
网站并不神秘,过节了,在家闲的没事的,自己建个网站玩玩吧.每段视频不超过15分钟,地铁/公交/睡前/醒来看一段,几天之后变身建站专家,找老板加薪去! 在普通人眼里,创建网站是专业开发人员和IT工程师才 ...
- OpenStack 企业私有云的若干需求(9): 云管理平台 CMP
本系列会介绍OpenStack 企业私有云的几个需求: 自动扩展(Auto-scaling)支持 多租户和租户隔离 (multi-tenancy and tenancy isolation) 混合云( ...
- 一个简单易用的容器管理平台-Humpback
什么是Humpback? 在回答这个问题前,我们得先了解下什么的 Docker(哦,现在叫 Moby,文中还是继续称 Docker). 在 Docker-百度百科 中,对 Docker 已经解释得很清 ...
随机推荐
- 【转载】Python 代码调试技巧
https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/ Python 代码调试技巧 张 颖2012 年 5 月 03 日发布 ...
- SSH自动断开连接的原因-20200323
SSH自动断开连接的原因 方法一: 用putty/SecureCRT连续3分钟左右没有输入, 就自动断开, 然后必须重新登陆, 很麻烦. 在网上查了很多资料, 发现原因有多种, 环境变量TMOUT ...
- linux 解压总结
tar解压 gz解压 bz2等各种解压文件使用方法 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压 ...
- 矩阵中的路径 DFS+剪枝
给定一个 m x n 二维字符网格 board 和一个字符串单词 word .如果 word 存在于网格中,返回 true :否则,返回 false . 单词必须按照字母顺序,通过相邻的单元格内的字母 ...
- APP测试(appium+Python基础操作)一
一.Appium入门案例 demo from appium import webdriver from time import sleep # server 启用参数 desired_caps = { ...
- 经典问题--php/go输出n对括号的所有组合
问题 n对括号有多少种合法的组合,写出一个可以执行出该结果的函数: 当n=1时,输出["()"]; 当n=2时,输出["(())","()()&quo ...
- Linux 安装配置 tftp 服务器
1.安装TFTP服务 安装服务端 sudo apt-get install tftpd-hpa 安装客服端 sudo apt-get install tftp-hpa 2.创建TFTP服务器目录 cd ...
- 痞子衡嵌入式:串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是串行NAND Flash的两大特性导致其在i.MXRT FlexSPI下无法XiP. 在嵌入式世界里,当我们提起XiP设备(支持代码原地 ...
- GPU上的图像和信号处理
GPU上的图像和信号处理 NVIDIA Performance Primitives(NPP)库提供GPU加速的图像,视频和信号处理功能,其执行速度比仅CPU实施快30倍.拥有5000多个用于图像和信 ...
- 将十进制数据转换为二进制AND将二进制数据转换为十进制!
一,将十进制数据转换为二进制: //*********************************************** Console.WriteLine(&quo ...