Uploaded image for project: 'Hippo CMS'
  1. Hippo CMS
  2. CMS-4999

[REGRESSION] Session.checkPrivileges broken for hippo based privileges over RMI

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • High
    • Resolution: Fixed
    • 2.18.01
    • 2.19.00
    • repository-core
    • None

    Description

      In the Hippo repository the checkPrivileges() is overridden. When running embedded this works fine. However when running over RMI the org.apache.jackrabbit.rmi.client.ClientSession maps the checkPrivileges method to hasPrivileges before doing the remote call. So the overridden checkPrivileges is not called at all.

      SEVERE: Servlet.service() for servlet LogViewer threw exception
      java.lang.IllegalArgumentException: Unknown actions: [hippo:admin]
      at org.apache.jackrabbit.core.SessionImpl.hasPermission(SessionImpl.java:1548)
      at org.hippoecm.repository.decorating.SessionDecorator.hasPermission(SessionDecorator.java:387)
      at org.hippoecm.repository.decorating.checked.SessionDecorator.hasPermission(SessionDecorator.java:484)
      at org.apache.jackrabbit.rmi.server.ServerSession.hasPermission(ServerSession.java:111)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
      at sun.rmi.transport.Transport$1.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
      at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
      at sun.rmi.server.UnicastRef.invoke(Unknown Source)
      at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
      at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
      at $Proxy25.hasPermission(Unknown Source)
      at org.apache.jackrabbit.rmi.client.ClientSession.hasPermission(ClientSession.java:318)
      at org.apache.jackrabbit.rmi.client.ClientSession.checkPermission(ClientSession.java:308)
      at org.onehippo.forge.authfilter.BasicAuthenticationFilter.checkPrivileges(BasicAuthenticationFilter.java:212)
      at org.onehippo.forge.authfilter.BasicAuthenticationFilter.authenticate(BasicAuthenticationFilter.java:149)
      at org.onehippo.forge.authfilter.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:268)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:396)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)

      Attachments

        Issue Links

          Activity

            People

              jsheriff Junaidh Kadhar Sheriff
              bvdschans Bart van der Schans (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: