CTGIMS009E You do not have the authority to perform this operation.

在项目中,有时会用到webSphere Application Server的IBM中间组件,进行用户访问控制等操作,比如IBM的一个产品:IBM Tivoli Identity Manager, 简称 TIM, 是IBM身份的生命周期的管理工具。

我在一个项目中,TIM作为下游系统,需要连接TIM,将数据推送到TIM中,进行数据集成统一,所以需要与TIM进行二次开发有两种方式:
1、集成TIM的jar-api进行开发
2、调用TIM的webservice进行开发

不管哪种方式都会牵涉到TIM的数据操作。

我就遇到了如下问题:
com.ibm.itim.apps.exception.AppProcessingException: CTGIMS009E You do not have the authority to perform this operation.

经过了两天的排查,终于找到了原因:
原因是:对TIM的Person对象进行修改时,修改到了某个时间属性,这个时间属性值得格式不对。

排错过程:
1、找到下游TIM程序的日志文件:
可以采用命令:find / -name “trace.log”

查看:```
2018.08.08 14:49:12.565+08:00
ITIMDev2
CTGIM
com.ibm.itim.apps.ejb.organization
server1

WebContainer : 15 ``` 发现并没有什么有价值的信息,由Trace Level="MIN"知道这个日志级别是最低的

2、我在想是不是登录TIM的账号没有管理员的权限呢,不能进行增删改操作,就用这个账号登录到TIM的控制台随意修改了一个测试账号,发现可以修改,排除这个原因

3、那有没有可能是某个属性没有修改权限呢,可以要怎么看有没有权限呢,google一下,上面说可以通过修改日志级别来查看属性权限 http://www-01.ibm.com/support/docview.wss?uid=swg21384050

还说了有可能是:当供应策略授权参数中包含日期字段,且窗体上显示的日期与从供应策略参数中检索到的日期不同时,将发生此异常 ftp://129.35.224.19/ecc/sar/CMA/TIA/00v3l/0/5.0.0.9-TIV-TIM-FP0009.README

Symptom: The exception “CTGIMS009E: You do not have the authority to perform this operation” may occur when end users request accounts for themselves via the SSUI. This exception occurs when a date field is included in Provisioning Policy entitlement parameters and if the date displayed on the form differs from the date retrieved from the provisioning policy parameters.

4、打开TIM最高的日志级别:
找到TIM服务器上的enRoleLogging.properties文件
加入:
logger.trace.com.ibm.itim.authorization.level=DEBUG_MAX
logger.trace.com.ibm.itim.apps.ejb.account.level=DEBUG_MAX
logger.trace.com.ibm.itim.apps.ejb.organization.level=DEBUG_MAX
每十分钟刷新下配置,或是重启tim(建议等上几分钟,毕竟TIM不是自己产品)。

可以看到每个属性的权限:


 
 ITIMDev2
 CTGIM
 com.ibm.itim.authorization
 server1
 
 
 WebContainer : 0

这样打印出来就知道哪个属性是只读权限了(r=read ,w=write)
发现这些属性都是自定义属性,没有默认属性在里面

这时就能看到我想看到的日志了:


 
 ITIMDev2
 CTGIM
 com.ibm.itim.apps.ejb.organization
 server1
 
 
 WebContainer : 17
```	

LogText标签中会出现详细错误:The following attributes is not writable according to ACIs.Details - entity:...................
(类似这样的,忘记保存日志了)

我的原因找到了,就是由于erpersonstatus/ercreatedate/ersynchpassword属性值引起的,删了就没问题了,因为这些都是系统默认属性,没有权利更改这个属性,一旦数据有变化,这些数据会跟着变化。希望可以帮助到跟我一样遇到此类问题的人。

你可能感兴趣的:(技术,经验)