Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.8.3
-
None
-
None
-
OSX, Tomcat 6
Description
We're trying to determine whether a user has a certain permission in a filter using AuthorizationManager.checkPermission().
Calling this method however causes an endless loop:
It invokes DefaultAclManager.getPermissions() which tries to parse the page which in turn causes the filters to run.
Stacktrace excerpt:
...
at de.d3web.we.jspwiki.KnowWEPlugin.preTranslate(KnowWEPlugin.java:309)
at com.ecyrd.jspwiki.filters.FilterManager.doPreTranslateFiltering(FilterManager.java:326)
at com.ecyrd.jspwiki.WikiEngine.textToHTML(WikiEngine.java:1511)
at com.ecyrd.jspwiki.WikiEngine.getHTML(WikiEngine.java:1455)
at com.ecyrd.jspwiki.auth.acl.DefaultAclManager.getPermissions(DefaultAclManager.java:187)
at com.ecyrd.jspwiki.auth.AuthorizationManager.checkPermission(AuthorizationManager.java:222)
(more of our code, including the call to checkPermission())
at de.d3web.we.jspwiki.KnowWEPlugin.preTranslate(KnowWEPlugin.java:309)
at com.ecyrd.jspwiki.filters.FilterManager.doPreTranslateFiltering(FilterManager.java:326)
at com.ecyrd.jspwiki.WikiEngine.textToHTML(WikiEngine.java:1511)
at com.ecyrd.jspwiki.WikiEngine.getHTML(WikiEngine.java:1455)
at com.ecyrd.jspwiki.auth.acl.DefaultAclManager.getPermissions(DefaultAclManager.java:187)
at com.ecyrd.jspwiki.auth.AuthorizationManager.checkPermission(AuthorizationManager.java:222)
...
The context used in DefaultAclManager.getPermissions() includes the following setting:
ctx.setVariable( RenderingManager.VAR_EXECUTE_PLUGINS, Boolean.FALSE );
Maybe filters can be disabled in a similar fashion (I think that would be setting PROP_RUNFILTERS to false as well)?