मुझे कई उपयोगकर्ताओं के लिए एक संग्रह को डिज़ाइन और निर्माण करने के बारे में कोई दस्तावेज शायद ही मिल सकता है।जैकबैबिट उपयोगकर्ता प्रबंधन
मैं जैकब्रिबिट के लिए काफी नया हूं और मैं हमेशा एक मास्टर उपयोगकर्ता क्रेडेंशियल्स का उपयोग कर रहा था जो एक रिपॉजिटरी बनाने के लिए था जिसे केवल एक मास्टर उपयोगकर्ता द्वारा एक्सेस किया गया था।
अब मुझे एक रिपोजिटरी चाहिए जो हजारों उपयोगकर्ताओं द्वारा साझा की जाती है और प्रत्येक उपयोगकर्ता अपने नोड्स के साथ काम करता है और दूसरों को अनुमति नहीं देता है।
SimpleAccessManager काफी सरल है:
public boolean isGranted(ItemId id, int permissions) throws RepositoryException {
checkInitialized();
if (system) {
// system has always all permissions
return true;
} else if (anonymous) {
// anonymous is always denied WRITE & REMOVE permissions
if ((permissions & WRITE) == WRITE
|| (permissions & REMOVE) == REMOVE) {
return false;
}
}
return true;
}
ऐसा लगता है कि एक SimpleLoginModule और SimpleAccessManager साथ इस तरह के एक बहु-उपयोगकर्ता भंडार नहीं बना सकते। क्योंकि यह केवल व्यवस्थापक और अनाम उपयोगकर्ताओं है कि सब कुछ पढ़ सकते हैं लेकिन नहीं लिख सकते हैं बीच अंतर ...
तो यह है कि एक DefaultAccessManager का उपयोग करें और शायद करने के लिए है कुछ इस तरह करते हैं:
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
UserManager um = ((JackrabbitSession) session).getUserManager();
User user = um.createUser("john", "doe");
/* And assign some ALC as follows... And then play with it like this, which really sucks without proper documentation, one has to reverse engineer everything, wtf */
AccessControlManager acm = session.getAccessControlManager();
AccessControlPolicyIterator it = acm.getApplicablePolicies(testRootNode.getPath());
while (it.hasNext()) {
AccessControlPolicy acp = it.nextAccessControlPolicy();
Privilege[] privileges = new Privilege[]{acm.privilegeFromName(Privilege.JCR_WRITE)};
((AccessControlList)acp).addAccessControlEntry(new PrincipalImpl(user.getUserID()), privileges);
acm.setPolicy(testRootNode.getPath(), acp);
}
भंडार के माध्यम से सुलभ हो जाएगा ओपनसीएमआईएस जो ग्राहक से उपयोगकर्ता प्रमाण-पत्र प्रदान करता है।
संपादित करें: यह है कि क्या मैं, AccessControl
असल में विक्टर यह इसलिए है क्योंकि जैकबब्बी जावा सामग्री रिपोजिटरी का कार्यान्वयन है - जो एक विनिर्देश है। जेसीआर ... जैकबब्बीट .... इसे प्राप्त करें? – MJB