我正在编写一个自定义Java webscript,它接受文档noderef和外部用户名(字符串值)作为参数。我启用了审核,审核日志显示了在调用webscript时对文档的访问。现在我想知道是否可以修改审计跟踪,这样当它显示该特定文档的日志时,它还会显示外部用户的名称。
webscript url:http://localhost:8080/alfresco/service/node/{noderef}/user/{user}
在调用它时,我在日志中得到以下输出:
Extracted audit data:
Application: AuditApplication[ name=alfresco-access, id=1, disabledPathsId=2]
Values:
/alfresco-access/transaction/sub-actions=readContent
/alfresco-access/transaction/action=READ
/alfresco-access/transaction/node=workspace://SpacesStore/c21db432-4ad6-4af2-8bcf-78bc89724afe
/alfresco-access/transaction/type=cm:content
/alfresco-access/transaction/path=/app:company_home/app:shared/cm:audit-services-context.xml
/alfresco-access/transaction/user=admin
New Data:
/alfresco-access/transaction/sub-actions=readContent
/alfresco-access/transaction/action=READ
/alfresco-access/transaction/type=cm:content
/alfresco-access/transaction/user=admin
/alfresco-access/transaction/path=/app:company_home/app:shared/cm:audit-services-context.xml
我想将{user}也存储在审计跟踪中。
答案 0 :(得分:0)
您可以尝试使用private Recordset readExcelData()
{
Recordset rs;
try
{
//some logic here
}
catch (Exception e)
{
e.printStackTrace();
}
return rs;
}
。我认为这应该对你有帮助。但我没有测试过这个。
答案 1 :(得分:0)
您可能不希望这样做,至少不是以您描述的方式,而是没有采取额外的安全预防措施。
这符合IMHO对安全标准的意见,如果管理员需要阅读文档,则需要使用其用户名记录操作,如果普通用户需要访问文档,则需要对该操作进行适当的身份验证。 / p>
从我所拥有的小环境来看,我会说这实际上是与其他一些不与Alfresco共享SSO的应用程序的集成。所以我建议使用以下解决方案:
在Alfresco和您的应用程序之间使用适当的SSO,让相关用户在Alfresco中ping正确的端点并让SSO为您正确验证请求。
使用共享密钥(类似于共享密码来编码请求中的权限名称+正确的身份验证子系统或请求过滤器来处理)或密钥对(类似于solr和alfresco之间的securecomms)到能够安全地将权限信息传递给请求
使用系统帐户(最好不是管理员,但专用于此用例/应用程序集成的帐户)为相关用户生成有效的alf_ticket,并让您的应用程序将该票证附加到请求。 (当然,在运行代码片段以从runAsSystem块获取alf_ticket之前,您的"模拟" webscript需要检查正确的系统/集成用户名。在这种情况下,我还建议不要使用管理员帐户,而是使用没有权限的用户,除了这个用例。
如果您要选择快速实施,我建议至少提供以下内容:
您需要确保没有任何用户可以ping该webscript,并且只有管理员/系统用户才能真正访问该webscript。
您可能应该在审计跟踪中记录整个模拟操作(使用相同的审计条目或单独的审计条目),这样就可以清楚地知道这实际上是代表用户而不是用户自己直接
如果您使用有问题的webscript除了阅读节点的内容之外的其他任何内容(如果您的onReadContent行为也有一些令人讨厌的AuthenticationUtil.setFullyAuthenticatedUser
,也可以是这种情况)要求将操作记录为系统/最初经过身份验证的用户,您可能很难做到这一点......您应该切换到更强大的方法!