I have custom type node /et:document /which needs to shared among some users
in jackrabbit repository.
But when I try to impersonate as superuser and assign to each user, a
defined property /sharedWithMe/, getting *failed login exception*.
Log in as application user,
/SimpleCredentials credentials = new SimpleCredentials(userName,
password.toCharArray());
Session session = repository.login(credentials, "default");/
Trying to share documents(with property added to user node)
/SimpleCredentials credentials = new SimpleCredentials("superuser",
"superuser".toCharArray());
Session adminUser = session.impersonate(credentials);
UserManager userManager = ((JackrabbitSession) adminUser).getUserManager();
for(String userID : users) {
User user = (User) userManager.getAuthorizable(userID);
Value value = vf.createValue(docPath);
Value[] sharedDocsPath = user.getProperty("sharedWithMe");
int shareDocIndex = 0;
Value[] revisedSharedDocPath = null;
if (null != sharedDocsPath && sharedDocsPath.length > 0) {
revisedSharedDocPath = new Value[sharedDocsPath.length + 1];
for (Value v : sharedDocsPath) {
revisedSharedDocPath[shareDocIndex] = v;
shareDocIndex++;
}
revisedSharedDocPath[shareDocIndex] = value;
} else {
revisedSharedDocPath = new Value[1];
revisedSharedDocPath[shareDocIndex] = value;
}
user.setProperty("sharedWithMe", revisedSharedDocPath);
}/
getting exception:
*Caused by: javax.security.auth.login.FailedLoginException: attempt to
impersonate denied for superuser
at
org.apache.jackrabbit.core.security.authentication.DefaultLoginModule.impersonate(DefaultLoginModule.java:306)
at
org.apache.jackrabbit.core.security.authentication.AbstractLoginModule.login(AbstractLoginModule.java:330)
at
org.apache.jackrabbit.core.security.authentication.LocalAuthContext.login(LocalAuthContext.java:86)*
Security tag info in repository.xml
/
<Security appName="EnterpriseManager">
<SecurityManager
class="org.apache.jackrabbit.core.DefaultSecurityManager">
<WorkspaceAccessManager
class="org.apache.jackrabbit.core.security.simple.SimpleWorkspaceAccessManager"/>
</SecurityManager>
<AccessManager
class="org.apache.jackrabbit.core.security.DefaultAccessManager"/>
<LoginModule
class="org.apache.jackrabbit.core.security.authentication.DefaultLoginModule">
</LoginModule>
</Security>
<Workspace name="${wsp.name}">
<WorkspaceSecurity>
<AccessControlProvider
class="org.apache.jackrabbit.core.security.authorization.principalbased.ACLProvider">
</AccessControlProvider>
</WorkspaceSecurity>
</Workspace>/
Using JCR 2.0, Jackrabbit 2.6
--
View this message in context:
http://jackrabbit.510166.n4.nabble.com/Unable-to-impersonate-Jackrabbit-tp4661380.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.