【问题标题】:OSGI server Addin programming and Domino security not workingOSGI 服务器插件编程和 Domino 安全性不起作用
【发布时间】:2016-05-13 16:51:56
【问题描述】:

我正在构建一个 Domino OSGI 服务器插件,当从 Web 调用时它必须访问不同的应用程序。 到目前为止,它正在工作。我得到参数中给出的应用程序,并根据包括数据库ID的调用参数将json返回给调用者。还有一些其他的东西。

下一步是尝试检查匿名调用且无权访问特定应用程序的用户是否会从服务器获得答复。

我发现服务器总是响应,并且当用户尝试在 Web 浏览器中直接打开该应用程序时,该应用程序的访问级别始终为 6 级,该应用程序已锁定且用户无法访问 那是因为无论用户是否登录,如果您查看它,该服务将以服务器的权限运行。

我检查了这个:

 directoryDatabase = s.getDatabase("",dbName");
 pw.println("Common userName = " + s.getCommonUserName() + " effective user name " + s.getEffectiveUserName() + "<BR>";

和其他一些打印,结果总是这样:

Common user Name = geniusgermany effective user nameCN=geniusgermany/O=genius
File really opened = fakenames10k.nsf fakenames10k.nsf
File current access level = 6

所以问题是我必须如何构建插件以确保它适用于用户访问级别。不是与服务器之一?

【问题讨论】:

    标签: java osgi acl lotus-domino


    【解决方案1】:

    好的第一件事就是使用

    import com.ibm.domino.osgi.core.context.ContextInfo;   
    
    
    Session NotesSession = ContextInfo.getUserSession(); 
    

    如果他已经登录,您将获得当前用户的信息。

    而不是使用

    NotesFactory.createSession();
    

    NotesFactory.createSession() 总是使用服务器 ID 及其权限。 我做了什么。 您也许还可以使用

    Session NotesSession = NotesFactory.createSession(null, "user", "password");
    

    但是你必须提供用户名和密码。

    当您在开发服务器上并从 eclipse 的工作区运行开发时,您也可能会遇到安全错误。

    如果您在 domino 服务器控制台上看到类似的内容

    HTTP JVM:错误:'java.security.AccessControlException:访问被拒绝 (java.lang.RuntimePermission getProtectionDomain)' HTTP JVM:
    :拒绝访问 (java.lang.RuntimePermission getProtectionDomain) HTTP JVM:javax.xml.transform.TransformerConfigurationException: java.security.AccessControlException:访问被拒绝 (java.lang.RuntimePermission getProtectionDomain) HTTP JVM:在 com.ibm.xtq.xslt.jaxp.AbstractTransformerFactory.newTransformer(未知 来源

    您需要在 domino 服务器上为 java.policy 文件添加一些权限。

    我加了

    grant {
      permission java.security.AllPermission;
    };
    

    那里。因为在该设置中,您没有使用 Domino java Policy shield。

    部署到暂存系统后,您必须彻底检查是否在那里工作。

    感谢 Ulrich Krause 和 Sven Hasselbach 在http://atnotes.de/index.php/topic,59779.0.html 的回答

    【讨论】:

      【解决方案2】:

      如果您需要更多关于 JVM 和有关 JVM 的 domino 安全模型的解释,请阅读此http://www.socialbizug.org/blogs/2ec5d0ed-d04e-4b18-9610-9819fcebca79/entry/the_java_policy_file_in_ibm_domino?lang=en_us

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-26
        • 2019-12-12
        • 1970-01-01
        相关资源
        最近更新 更多