即使用户无权访问到期读者字段,查看数据源也会返回条目

时间:2015-02-14 13:18:05

标签: xpages

我遇到了很奇怪的行为我无法解释,但我需要。在Xpage上,我嵌入了使用视图数据源和相应的转发器创建的视图。现在我发现,该视图数据源返回所有视图条目,即使那些用户无法访问到期访问控制(读者字段)。在重复控件内部我得到了NotesXSPViewEntry.getDocument()nullPointer错误,因为NotesXSPViewEntry为getDocument()返回null。视图数据源如何返回我无权访问的文档的条目?更多这个应用程序在生产一年,但我们发现这种行为最近似乎升级到9.01FP3(从9.01)。开发服务器在没有FP的9.01上运行并且工作正常有人注意到这种奇怪的行为吗?

编辑#1: 它是单一类别视图,用户无权访问该类别中的任何文档。现在,当我使用NotesXSPViewEntry.getDocument()!= null修复代码内部重复检查时,我可以通过这种方式修复视图,因此xpage正确呈现,但在任何提交后,它失败并显示如下隐藏的内部错误。 (我甚至尝试使用空动作的按钮,只检查完整提交)

NotesException: A required argument has not been provided
Location:   
Code Snippet:   

    ... 64 more at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:820)    at com.ibm.xsp.model.domino.wrapped.DominoViewEntry.getDocument(DominoViewEntry.java:381)   at lotus.domino.local.Database.getDocumentByUNID(Unknown Source)    at lotus.domino.local.Database.NgetDocumentByUNID(Native Method)
Caused by: NotesException: A required argument has not been provided

    ... 48 more at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78)   at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:194)   at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:222)   at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)    at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)    at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)  at java.security.AccessController.doPrivileged(AccessController.java:365)   at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)    at com.ibm.jscript.JSExpression.access$1(JSExpression.java:424) at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435) at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)  at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)    at com.ibm.jscript.ASTTree.binaryop.ASTBinaryRelAnd.interpret(ASTBinaryRelAnd.java:73)  at com.ibm.jscript.ASTTree.binaryop.ASTBinaryDefaultOp.interpret(ASTBinaryDefaultOp.java:49)    at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:197)  at com.ibm.jscript.types.FBSObject.call(FBSObject.java:161) at com.ibm.xsp.script.WrapperDominoEx$fct_AbstractDominoViewEntry.call(WrapperDominoEx.java:1105)null
Caused by: com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=19: [TypeError] Exception occurred calling method NotesXspViewEntry.getDocument()

    ... 19 more at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:98) at com.ibm.xsp.component.UIViewRootEx.processDecodes(UIViewRootEx.java:1399)    at com.ibm.xsp.component.UIViewRootEx._processDecodes(UIViewRootEx.java:1438)   at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:343) at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIForm.processDecodes(UIForm.java:166) at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331)   at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331)   at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331)   at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331)   at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331)   at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177)  at com.ibm.xsp.component.UIDataIterator.processDecodes(UIDataIterator.java:780) at com.ibm.xsp.component.UIDataPanelBase.isRendered(UIDataPanelBase.java:78)    at com.ibm.xsp.component.UIDataPanelBase.isRenderedProp(UIDataPanelBase.java:81)    at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:451)   at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)

1 个答案:

答案 0 :(得分:2)

在“视图设置”中,某个地方的某个属性基本上表示“不显示空类别”。这可能是正在发生的事情。 “读者”字段正在运行,但视图索引本身内部存在多个安全文档,并且由于类别,可供更多用户使用。因此,在客户端中,您可以打开“不显示空”选项来消除它 我认为这也适用于XPages世界,但我并不是百分之百确定,因为我没有在XPages中完成很多读者领域。