java - 导入DXL文件时出现"You are not authorized..."

标签 java security import xpages lotus-domino

我在基于 Java 的 DXL 导入时遇到问题。

我们希望通过 Java 框架维护属性文件。我正在文件系统上使用临时文件(我正在本地服务器上工作)。我将新的属性文件导出到我的文件系统,在同一文件夹中生成 DXL 文件,然后尝试将 DXL 导入到我的数据库中。

我已经完成了导入器的多个选项,我们正在使用 sessionAsSignerWithFullAccess 创建流和导入器。该代码是使用对所有内容具有完全访问权限的服务器管理员的 ID 进行签名的。

导入 DXL 时,我仅收到错误消息“DXL 导入操作失败”,导入器的错误日志显示我无权执行此操作。

您知道可能出现什么问题吗?从我的角度来看,我不能再给我的用户在服务器上的任何权利。

这是导入函数的代码:

private void importDXLFile(String filepath) {
    String dxlPath = filepath.replaceAll(".properties", ".dxl");
    DxlImporter importer = null;
    Stream stream = null;

    System.out.println("dxlPath: " + dxlPath);

    try {           
        stream = BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).createStream();
        if (!stream.open(dxlPath, "ISO-8859-1")) {
            System.out.println("Cannot read " + dxlPath + " from server");
        }
        System.out.println("User: " + BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).getEffectiveUserName());
        importer = BCCJsfUtil.getCurrentSessionAsSignerWithFullAccess(FacesContextEx.getCurrentInstance()).createDxlImporter();
        importer.setReplaceDbProperties(false);
        importer.setReplicaRequiredForReplaceOrUpdate(false);
        importer.setDesignImportOption(DxlImporter.DXLIMPORTOPTION_REPLACE_ELSE_CREATE);
        importer.setInputValidationOption(DxlImporter.DXLVALIDATIONOPTION_VALIDATE_NEVER);
        importer.setExitOnFirstFatalError(false);
        importer.importDxl(stream.readText(), BCCJsfUtil.getCurrentDatabase());

        stream.close();
    } catch (NotesException e) {
        e.printStackTrace();
        try {
            System.out.println("Log: " + importer.getLog());
            System.out.println("LogComment: " + importer.getLogComment());

        } catch (NotesException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    }
}
正如你所看到的,我尝试了几个选项,希望它能改变任何事情,但它总是相同的错误消息。 生成的 DXL 似乎有效,因为我们可以使用 Ytria 手动导入它。

我希望有人有想法。任何帮助将不胜感激。

提前致谢。

马蒂亚斯

最佳答案

请检查您的 ACL 设置: “最大互联网名称和密码”是否设置为“管理员”或“设计者”?

关于java - 导入DXL文件时出现"You are not authorized...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14232336/

相关文章:

java - 检查源级别 AnnotationProcessors 中 Element 的继承

python - 与 Python 中的导入进一步混淆

animation - 如何将 .C3D 文件导入 Blender?

java - 奇怪的NPE : primitive field null inside instance method

java - 如何编写在linux中安装atg的批处理脚本?

java - JVM 是否可以选择自动加密其内存?

html - 如何提高不需要登录的在线表单的安全性?

security - Grails 的用户管理插件/框架?

linux - 在 ELF 二进制文件中导入名称

java - 通过构造函数传递实例或使用静态访问它?