Although I didn't do that myself yet (I'd love to try it - but had no time so far :-( ), you'll have to modify the corresponding section in login-config.xml and use an LdapLoginModule instead of the UsersRolesLoginModule - further details on this can be found under http://wiki.jboss.org/wiki/Wiki.jsp?page=LdapLoginModule ...
... I don't know what else is necessary from the jackrabbit side ...

in any case: let me know when you have this up and running ...


Markus


Ishai Borovoy schrieb:
Do you know also how to implement it on LDAP? or can you give me some
direction (links...)?


Markus Reis wrote:
Hi Ishai,


you are welcome - and as I can see there's nothing more I can do for you here, since you are already answering your own questions yourself :-)


best regards,
Markus


Ishai Borovoy schrieb:
OK, I think I understand it, it in the SimpleJBossAccessManager class:


public void init(AMContext context)
+            throws AccessDeniedException, Exception {
+        Properties rolemaps = new Properties();
+        File rolemap = new File(context.getHomeDir(),
"rolemapping.properties");
+        log.info("Loading jbossgroup role mappings from {}",
rolemap.getPath());
+        FileInputStream rolefs = new FileInputStream(rolemap);
+        try {
+            rolemaps.load(rolefs);
+        } finally {
+            rolefs.close();
+        }
+ + Iterator iterator =
context.getSubject().getPrincipals().iterator();
+        while (iterator.hasNext()) {
+            Principal principal = (Principal) iterator.next();
+            if (principal instanceof Group
+                    && principal.getName().equalsIgnoreCase("Roles")){
+                Group group = (Group) principal;
+                Enumeration members = group.members();
+                while (members.hasMoreElements()) {
+                    Principal member = (Principal)
members.nextElement();
+                    String role =
rolemaps.getProperty(member.getName());
+                    system = system || "full".equalsIgnoreCase(role);
+                    anonymous = anonymous ||
"read".equalsIgnoreCase(role);
+                }
+            }
+        }
+
+        // @todo check permission to access given workspace based on
principals
+    }

Ishai Borovoy wrote:
Hi Markus,
First I want to really thanks for your help.
One more question, where is the real matching between the role (full,
read
& write) to jackrabbit?

Markus Reis wrote:
Hi,


currently you use the login-config.xml with the following jackrabbit specific "code":
    <application-policy name="Jackrabbit">
      <authentication>
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
          flag="required">
<module-option name="usersProperties">props/jackrabbit-users.properties</module-option> <module-option name="rolesProperties">props/jackrabbit-roles.properties</module-option>
        </login-module>
      </authentication>
    </application-policy>
further you have a jackrabbit-jca-<version>.rar file in the deploy dir
...

... alternatively you could extract this .rar into a folder called jackrabbit-jca-<version>.rar (yes this is a folder now) and then do the changes according to the last section of http://wiki.apache.org/jackrabbit/JackrabbitOnJbossSecurity - this would allow you to leave conf/login-config.xml unchanged (I don't use this "deployment model" however).


kind regards,
Markus


Ishai Borovoy schrieb:
BTW,
what is the last section in
http://wiki.apache.org/jackrabbit/JackrabbitOnJbossSecurity
that talk about creating folder "jackrabbitsecurity.rar"?


Markus Reis wrote:
The class should be in jackrabbit-core-<version>.jar and should be included in jackrabbit-jca-<version>.rar - this however depends on the jackrabbit version you are using ... ... in any case you can put jackrabbit-core-<version>.jar in server/default/lib (simply download it from http://jackrabbit.apache.org/downloads.cgi or build it from source) - and make sure that it contains org.apache.jackrabbit.core.security.SimpleJBossAccessManager ...

... note that the package and the name of this class has changed over the last jackrabbit versions - so be sure that the entry in repository.xml equals the class and package name in the included jar!


regards,
Markus


Ishai Borovoy schrieb:
Hi Markus,
Another thing...
By success I meant that I have no exception when Jboss initialize,
but
when
I try to login (remotly) I get:
"...
 java.lang.ClassNotFoundException: No C
sLoaders found for:
org.apache.jackrabbit.core.security.SimpleJBossAccessMana
...."

I guess it related to the last section in
:http://wiki.apache.org/jackrabbit/JackrabbitOnJbossSecurity,
I follow this section but I am not sure I did it corectly, can you
help
me
with that?


Ishai Borovoy wrote:
OK success,
Thank you very much!!!

Ishai


Ishai Borovoy wrote:
OK thanks,
I will try again.

Ishai

Markus Reis wrote:
(1) you have to create the rolemapping.properties file yourself
(in
your repository.home: you specified that in jcr-ds.xml) - and it should contain the following line in your case:
            friend=full
(2) you did not read the corresponding docs on the wiki (I
pointed
you to) - You have to modify the repository.xml (security section)
to:
  <Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.SimpleJBossAccessManager"
/>
  </Security>

Here's also an example jcr-ds.xml (taken from the template in
SVN):
<connection-factories>
    <tx-connection-factory>
        <jndi-name>jcr/local</jndi-name>
        <xa-transaction/>
        <rar-name>jackrabbit-jca.rar</rar-name>
<connection-definition>javax.jcr.Repository</connection-definition> <config-property name="homeDir" type="java.lang.String">/temp/jackrabbit</config-property> <config-property name="configFile" type="java.lang.String">classpath:repository.xml</config-property> <config-property name="bindSessionToTransaction" type="java.lang.Boolean">true</config-property>
    </tx-connection-factory>
</connection-factories>
change the rar name and homeDir (that's the dir where to put the rolemapping.properties)


Markus



Ishai Borovoy schrieb:
I sent you the files through Gmail.

Ishai Borovoy wrote:
OK, I will.

Markus Reis wrote:
Hi,


please send me the contents of the following files:
(1) server\default\conf\props\jackrabbit-roles.properties
(2) server\default\conf\props\jackrabbit-users.properties
(3) rolemapping.properties (and the location where you put it)
(4) repository.xml in the jca rar file


Markus


Ishai Borovoy schrieb:
Hi Markus,
I did all your instruction below and restart the Jboss, no
error...
but the problem I can login with no matter what user/password
I
use. Here is the client code (I call it remotly (use the
jackrabbit-jcr-rmi-1.3.1.jar)).

<code>
                    rr = (RemoteRepository)
ctx.lookup("jnp://localhost:1099/jcrServer");
                    Repository repository =
adapter.getRepository(rr);
                    // no matter what user name or password I
will
put
the
code success to run with no exeption
                    Credentials credJBoss = new
SimpleCredentials("username","password".toCharArray()); Session session = repository.login(credJBoss);
                    Node n = session.getRootNode().getNode("foo");
                    n.setProperty("Ishai", true);
                    session.save();
                    session.logout();
</code>

Any suggestion?

Thanks,
Ishai

Markus Reis wrote:
Hi Ishai,


if you are looking for simple authentication based on a few configuration files you could follow the approach presented
on:
http://wiki.apache.org/jackrabbit/SimpleJbossAccessManager
Further to the description there you will have to:
(1) add the following lines to login-config.xml in
server\default\conf:
<application-policy name="Jackrabbit">
<authentication>
<login-module
code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required"> <module-option name="usersProperties">props/jackrabbit-users.properties</module-option> <module-option name="rolesProperties">props/jackrabbit-roles.properties</module-option>
</login-module>
</authentication>
</application-policy>
(2) create a
server\default\conf\props\jackrabbit-roles.properties
file listing <username>=<rolename> pairs
(3) create a
server\default\conf\props\jackrabbit-users.properties
file listing <username>=<passsword> pairs
(4) rename the rolemappings.properties file in
repository.home
(that lists <rolename>=<permission> pairs) to
rolemapping.properties
(if
you use jackrabbit 1.3 or higher)


hope that helps,
Markus


Ishai Borovoy schrieb:
Hi,
I succeed to deploy (JCA deployment) rar file on JBosss,
and
everything
is
work fine.  how can I configure the repository/Jboss to
work
with
custom
authentication (for example with user.properties file)?
--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506



--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506



--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506



--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506



--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506



--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506






--
Mag. Markus Reis

Austrian Research Centers GmbH - ARC
Research Studios
Studio Digital Memory Engineering

Thurngasse 8/3/20, A-1090 Wien
Mobile: +43 664 825 1106
Tel.: +43-1-585 05 37 - 16
Fax: +43-1-585 37 41

<[EMAIL PROTECTED]>
http://www.arcs.ac.at/
http://www.researchstudio.at/
http://dme.researchstudio.at/

HG Wien – FN 115980i – ATU14703506

Reply via email to