You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Ulrich <Fo...@gombers.de> on 2013/07/16 11:13:29 UTC

Fail to instantiate AccessControlManager

My program throws an exception when trying to instantiate
javax.jcr.security.AccessControlManager. For testing I have downloaded me a
jackrabbit-standalone-server-2.6.2.jar. I've started it on my Laptop (Windows 7,
Java 7.0.21) and ran my testprogram.
It gave me this results (see attached program for these messages):
Successfully connected to http://localhost:8080/server/. Workspace=default
Access Control is supported: true
Exception in thread "main" javax.jcr.UnsupportedRepositoryOperationException:
JCR-1104
        at
org.apache.jackrabbit.jcr2spi.SessionImpl.getAccessControlManager(SessionImpl.java:501)
        at de.ulrich.test.TestCaseACL.<init>(TestCaseACL.java:35)
        at de.ulrich.test.TestCaseACL.main(TestCaseACL.java:42)

I have attached the source, the pom.xml and the security-settings of the
jackrabbit-server. May I ask someone in the community to run my program as well,
to see whether he gets the same error. I've seen some samples in this forum of
people who are using the AccessControlManager - so it seems to work, normally.

In my program I verify the setting of
"Repository.OPTION_ACCESS_CONTROL_SUPPORTED", as described in the JCR-Specs
(JSR-283) Chapter 16. So, according to this reference, my program should work.

Any help is appreciated,
Ulrich



package de.ulrich.test

import javax.jcr.Credentials;
import javax.jcr.Repository;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.SimpleCredentials;
import javax.jcr.Value;
import javax.jcr.security.AccessControlManager;

import org.apache.jackrabbit.core.security.AccessManager;

public class TestCaseACL {

        public TestCaseACL() throws RepositoryException, Exception {
                String repositoryURI="http://localhost:8080/server/";
                String userid="admin";
                String password="admin";

                Repository repository =
org.apache.jackrabbit.commons.JcrUtils.getRepository(repositoryURI);
                Credentials cred= new SimpleCredentials(userid,
password.toCharArray());
                Session session = repository.login(cred);

                if (session.isLive())
                        System.out.println("Successfully connected to
"+repositoryURI+". Workspace="+ session.getWorkspace().getName() );

                Value[]
access=session.getRepository().getDescriptorValues(Repository.OPTION_ACCESS_CONTROL_SUPPORTED);
                for (Value value : access) {
                        System.out.println("Access Control is supported: "
+value.getString());
                }
                Thread.sleep(200);

                AccessControlManager acm =  session.getAccessControlManager();

                session.logout();
        }


        public static void main(String[] args) throws Exception {
                new TestCaseACL();
        }

}

The program was created with this pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>de.ulrich.test</groupId>
        <artifactId>justasample</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <build>
                <plugins>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <configuration>
                                        <source>1.7</source>
                                        <target>1.7</target>
                                </configuration>
                        </plugin>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-javadoc-plugin</artifactId>
                        </plugin>
                </plugins>
        </build>
        <dependencies>
                <dependency>
                        <groupId>org.apache.jackrabbit</groupId>
                        <artifactId>jackrabbit-standalone</artifactId>
                        <version>2.7.0</version>
                </dependency>
        </dependencies>
</project>






The repository.xml has set this security-tags:
<Security appName="Jackrabbit">
   <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"
workspaceName="security"/>
   <AccessManager
  class="org.apache.jackrabbit.core.security.DefaultAccessManager"/>
   <LoginModule

   class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule"/>
</Security>

Re: Fail to instantiate AccessControlManager

Posted by Ulrich <Fo...@gombers.de>.
Thank you - that explains it. I was serioulsy bothered about this.
Ulrich

> Angela Schreiber <an...@adobe.com> hat am 16. Juli 2013 um 11:48
> geschrieben:
>
>
> hi ulrich
>
> ok… now i get it! you are not running on jackrabbit-core but try
> to use the jcr-remoting. unfortunately, the access control part
> is not yet implemented in the remoting setup which has jcr2spi
> on it's client side.
>
> see https://issues.apache.org/jira/browse/JCR-2113
>
> kind regards
> angela
>
>
> On Jul 16, 2013, at 11:13 AM, Ulrich <Fo...@gombers.de> wrote:
>
> > My program throws an exception when trying to instantiate
> > javax.jcr.security.AccessControlManager. For testing I have downloaded me a
> > jackrabbit-standalone-server-2.6.2.jar. I've started it on my Laptop
> > (Windows 7,
> > Java 7.0.21) and ran my testprogram.
> > It gave me this results (see attached program for these messages):
> > Successfully connected to http://localhost:8080/server/. Workspace=default
> > Access Control is supported: true
> > Exception in thread "main"
> > javax.jcr.UnsupportedRepositoryOperationException:
> > JCR-1104
> >        at
> > org.apache.jackrabbit.jcr2spi.SessionImpl.getAccessControlManager(SessionImpl.java:501)
> >        at de.ulrich.test.TestCaseACL.<init>(TestCaseACL.java:35)
> >        at de.ulrich.test.TestCaseACL.main(TestCaseACL.java:42)
> >
> > I have attached the source, the pom.xml and the security-settings of the
> > jackrabbit-server. May I ask someone in the community to run my program as
> > well,
> > to see whether he gets the same error. I've seen some samples in this forum
> > of
> > people who are using the AccessControlManager - so it seems to work,
> > normally.
> >
> > In my program I verify the setting of
> > "Repository.OPTION_ACCESS_CONTROL_SUPPORTED", as described in the JCR-Specs
> > (JSR-283) Chapter 16. So, according to this reference, my program should
> > work.
> >
> > Any help is appreciated,
> > Ulrich
> >
> >
> >
> > package de.ulrich.test
> >
> > import javax.jcr.Credentials;
> > import javax.jcr.Repository;
> > import javax.jcr.RepositoryException;
> > import javax.jcr.Session;
> > import javax.jcr.SimpleCredentials;
> > import javax.jcr.Value;
> > import javax.jcr.security.AccessControlManager;
> >
> > import org.apache.jackrabbit.core.security.AccessManager;
> >
> > public class TestCaseACL {
> >
> >        public TestCaseACL() throws RepositoryException, Exception {
> >                String repositoryURI="http://localhost:8080/server/";
> >                String userid="admin";
> >                String password="admin";
> >
> >                Repository repository =
> > org.apache.jackrabbit.commons.JcrUtils.getRepository(repositoryURI);
> >                Credentials cred= new SimpleCredentials(userid,
> > password.toCharArray());
> >                Session session = repository.login(cred);
> >
> >                if (session.isLive())
> >                        System.out.println("Successfully connected to
> > "+repositoryURI+". Workspace="+ session.getWorkspace().getName() );
> >
> >                Value[]
> > access=session.getRepository().getDescriptorValues(Repository.OPTION_ACCESS_CONTROL_SUPPORTED);
> >                for (Value value : access) {
> >                        System.out.println("Access Control is supported: "
> > +value.getString());
> >                }
> >                Thread.sleep(200);
> >
> >                AccessControlManager acm =
> >  session.getAccessControlManager();
> >
> >                session.logout();
> >        }
> >
> >
> >        public static void main(String[] args) throws Exception {
> >                new TestCaseACL();
> >        }
> >
> > }
> >
> > The program was created with this pom.xml:
> > <project xmlns="http://maven.apache.org/POM/4.0.0"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> > http://maven.apache.org/xsd/maven-4.0.0.xsd">
> >        <modelVersion>4.0.0</modelVersion>
> >        <groupId>de.ulrich.test</groupId>
> >        <artifactId>justasample</artifactId>
> >        <version>0.0.1-SNAPSHOT</version>
> >        <build>
> >                <plugins>
> >                        <plugin>
> >                                <groupId>org.apache.maven.plugins</groupId>
> > 
> >                               <artifactId>maven-compiler-plugin</artifactId>
> >                                <configuration>
> >                                        <source>1.7</source>
> >                                        <target>1.7</target>
> >                                </configuration>
> >                        </plugin>
> >                        <plugin>
> >                                <groupId>org.apache.maven.plugins</groupId>
> >                                <artifactId>maven-javadoc-plugin</artifactId>
> >                        </plugin>
> >                </plugins>
> >        </build>
> >        <dependencies>
> >                <dependency>
> >                        <groupId>org.apache.jackrabbit</groupId>
> >                        <artifactId>jackrabbit-standalone</artifactId>
> >                        <version>2.7.0</version>
> >                </dependency>
> >        </dependencies>
> > </project>
> >
> >
> >
> >
> >
> >
> > The repository.xml has set this security-tags:
> > <Security appName="Jackrabbit">
> >   <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"
> > workspaceName="security"/>
> >   <AccessManager
> >  class="org.apache.jackrabbit.core.security.DefaultAccessManager"/>
> >   <LoginModule
> >
> > 
> >  class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule"/>
> > </Security>
>

Re: Fail to instantiate AccessControlManager

Posted by Angela Schreiber <an...@adobe.com>.
hi ulrich

ok… now i get it! you are not running on jackrabbit-core but try
to use the jcr-remoting. unfortunately, the access control part
is not yet implemented in the remoting setup which has jcr2spi
on it's client side.

see https://issues.apache.org/jira/browse/JCR-2113

kind regards
angela


On Jul 16, 2013, at 11:13 AM, Ulrich <Fo...@gombers.de> wrote:

> My program throws an exception when trying to instantiate
> javax.jcr.security.AccessControlManager. For testing I have downloaded me a
> jackrabbit-standalone-server-2.6.2.jar. I've started it on my Laptop (Windows 7,
> Java 7.0.21) and ran my testprogram.
> It gave me this results (see attached program for these messages):
> Successfully connected to http://localhost:8080/server/. Workspace=default
> Access Control is supported: true
> Exception in thread "main" javax.jcr.UnsupportedRepositoryOperationException:
> JCR-1104
>        at
> org.apache.jackrabbit.jcr2spi.SessionImpl.getAccessControlManager(SessionImpl.java:501)
>        at de.ulrich.test.TestCaseACL.<init>(TestCaseACL.java:35)
>        at de.ulrich.test.TestCaseACL.main(TestCaseACL.java:42)
> 
> I have attached the source, the pom.xml and the security-settings of the
> jackrabbit-server. May I ask someone in the community to run my program as well,
> to see whether he gets the same error. I've seen some samples in this forum of
> people who are using the AccessControlManager - so it seems to work, normally.
> 
> In my program I verify the setting of
> "Repository.OPTION_ACCESS_CONTROL_SUPPORTED", as described in the JCR-Specs
> (JSR-283) Chapter 16. So, according to this reference, my program should work.
> 
> Any help is appreciated,
> Ulrich
> 
> 
> 
> package de.ulrich.test
> 
> import javax.jcr.Credentials;
> import javax.jcr.Repository;
> import javax.jcr.RepositoryException;
> import javax.jcr.Session;
> import javax.jcr.SimpleCredentials;
> import javax.jcr.Value;
> import javax.jcr.security.AccessControlManager;
> 
> import org.apache.jackrabbit.core.security.AccessManager;
> 
> public class TestCaseACL {
> 
>        public TestCaseACL() throws RepositoryException, Exception {
>                String repositoryURI="http://localhost:8080/server/";
>                String userid="admin";
>                String password="admin";
> 
>                Repository repository =
> org.apache.jackrabbit.commons.JcrUtils.getRepository(repositoryURI);
>                Credentials cred= new SimpleCredentials(userid,
> password.toCharArray());
>                Session session = repository.login(cred);
> 
>                if (session.isLive())
>                        System.out.println("Successfully connected to
> "+repositoryURI+". Workspace="+ session.getWorkspace().getName() );
> 
>                Value[]
> access=session.getRepository().getDescriptorValues(Repository.OPTION_ACCESS_CONTROL_SUPPORTED);
>                for (Value value : access) {
>                        System.out.println("Access Control is supported: "
> +value.getString());
>                }
>                Thread.sleep(200);
> 
>                AccessControlManager acm =  session.getAccessControlManager();
> 
>                session.logout();
>        }
> 
> 
>        public static void main(String[] args) throws Exception {
>                new TestCaseACL();
>        }
> 
> }
> 
> The program was created with this pom.xml:
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/xsd/maven-4.0.0.xsd">
>        <modelVersion>4.0.0</modelVersion>
>        <groupId>de.ulrich.test</groupId>
>        <artifactId>justasample</artifactId>
>        <version>0.0.1-SNAPSHOT</version>
>        <build>
>                <plugins>
>                        <plugin>
>                                <groupId>org.apache.maven.plugins</groupId>
>                                <artifactId>maven-compiler-plugin</artifactId>
>                                <configuration>
>                                        <source>1.7</source>
>                                        <target>1.7</target>
>                                </configuration>
>                        </plugin>
>                        <plugin>
>                                <groupId>org.apache.maven.plugins</groupId>
>                                <artifactId>maven-javadoc-plugin</artifactId>
>                        </plugin>
>                </plugins>
>        </build>
>        <dependencies>
>                <dependency>
>                        <groupId>org.apache.jackrabbit</groupId>
>                        <artifactId>jackrabbit-standalone</artifactId>
>                        <version>2.7.0</version>
>                </dependency>
>        </dependencies>
> </project>
> 
> 
> 
> 
> 
> 
> The repository.xml has set this security-tags:
> <Security appName="Jackrabbit">
>   <SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"
> workspaceName="security"/>
>   <AccessManager
>  class="org.apache.jackrabbit.core.security.DefaultAccessManager"/>
>   <LoginModule
> 
>   class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule"/>
> </Security>