本文介绍了开启安全模式的必要性和步骤。未开启时,系统登录后接口调用上下文可能不确定,导致数据错误或异常。开启需修改webservice.properties文件,设置isRomoteLocate=false,并确保所有服务器和集群的配置都更新。开启后,不符合安全模式的外部系统调用将失败,需调整调用方式。
最详细的两篇如何写代码的帖子https://vip.kingdee.com/article/173164492883473920 和
https://vip.kingdee.com/article/43437547377459342
这里写一篇简单点的。无关代码的。
为什么要开启安全模式
不开启安全模式,登录之后,调用接口的上下文是不确定的,比如你用A账号登录了,调用生成凭证接口。你期望的结果是,产生了凭证001,创建者是A。但是,因为没开启安全模式,可能变成B账号创建的凭证。如果同一个服务器挂了两个数据中心,甚至有可能把数据写入到了另外一个数据中心。另外偶发抛出session 异常。please login first 错误。如果这几点,项目都不关注或者不会发生。那可以不开启安全模式。
如何开启安全模式
安全模式默认是关闭的,如果要开启需要找到文件,eas\server\profiles\server1\config\webservice.properties。
在文件末尾换行,加上 isRomoteLocate=false 。如果打开文件是只有一行的,换个编辑器notepad++可以,正常应该是5行以上。如果已经有isRomoteLocate=true了,就改成false就可以了,不用加行。然后把服务器的每个server目录下的文件都改掉,server1到serverN,然后是集群的话,每台机器的每个server都要改到。每个server的配置是独立的,如果不改全的话,等于没改的那部分实例没有开启安全模式。
开启安全模式的影响
影响所有,以非安全模式调用EAS webservice的代码逻辑。简单来讲,外部系统不按安全模式规定调用EAS webservice 接口的都会调用失败。一般是抛出RMIException。所以如果有二开接口调用的,需要测试验证下开启之后是否正常。如果不正常,需要改动调用方式。参考另外两篇帖子。
推荐阅读