我正在尝试运行查询以使用SCIM连接器在OpenIAM中执行用户搜索。在Linux虚拟机上进行测试,攻击URL并使用OpenDJ,我可以通过其id过滤用户,并使用curl命令,并在每个控制台以JSON格式返回JSON数据时发出GET请求,但是当我运行该应用程序时,它会给我一个提示。错误:java.lang.IllegalArgumentException:查询中的非法字符
在CentOs控制台中,我使用以下语句与用户一起返回JSON:
curl --request GET --user admin:xxxxxxx "http://10.10.11.74:8081/api/users?_queryFilter=_id+pr&_prettyPrint=true"
输出:
{
"result" : [ {
"_id" : "Hector Un.Grifoll Un",
"_rev" : "00000000ffe5a0e4",
"_schema" : "frapi:opendj:rest2ldap:user:1.0",
"_meta" : {
"created" : "2019-03-15T10:49:53Z",
"lastModified" : "2019-06-11T14:44:46Z"
},
"userName" : "asasf@aaeg.ee",
"displayName" : [ "Hector Un Grifoll Un" ],
"name" : {
"givenName" : "Hector Un",
"familyName" : "Grifoll Un"
},
"contactInformation" : {
"emailAddress" : "asasf@aaeg.ee"
}
}
但是,当我运行该应用程序并将“搜索URL”放在一个字段中以使其自动化时,输出日志会向我显示非法字符异常。
这是我添加查询过滤器的字段。
2019-06-25 18:11:31.727信息12162 --- [_TaskExecutor20] ooimlConnectorResponseListener:从后端中的连接器捕获了ADD响应:Response {status = FAILURE,errorCode = null,errorText ='Other Error:java。 lang.IllegalArgumentException:索引37处查询中的非法字符:10.10.11.74/api/users?_queryFilter=id"Scott.Nelson“',responseValue = null,errorTokenList = null,stacktraceText = null}
我认为Java有些不喜欢的东西,我想可能有些亲戚或钥匙,但无论如何我都尝试过。
答案 0 :(得分:0)
不是_queryFilter=id eq "Scott.Nelson"
吗?您可能需要对空格进行url编码。