|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils
public class AccessControlUtils
This class provides common access control related utilities.
| Constructor Summary | |
|---|---|
AccessControlUtils()
|
|
| Method Summary | |
|---|---|
static boolean |
addAccessControlEntry(Session session,
String absPath,
Principal principal,
Privilege[] privileges,
boolean isAllow)
A utility method to add a new access control entry. |
static boolean |
addAccessControlEntry(Session session,
String absPath,
Principal principal,
String[] privilegeNames,
boolean isAllow)
A utility method to add a new access control entry. Please note, that calling Session.save()() is required
in order to persist the changes. |
static boolean |
allow(Node node,
String principalName,
String... privileges)
Allow certain privileges on a given node for a given principal. |
static boolean |
clear(Node node)
Removes the access control list at a given node. |
static boolean |
clear(Node node,
String principalName)
Removes all ACL entries for a principal on a given node. |
static boolean |
clear(Session session,
String absPath)
Removes the access control list at the specified absolute path. |
static boolean |
clear(Session session,
String absPath,
String principalName)
Removes all ACL entries for a principal at a given absolute path. |
static boolean |
deny(Node node,
String principalName,
String... privileges)
Deny certain privileges on a node for a given principal. |
static boolean |
denyAllToEveryone(Session session,
String absPath)
Utility to deny jcr:all privilege to the everyone group principal. |
static org.apache.jackrabbit.api.security.JackrabbitAccessControlList |
getAccessControlList(AccessControlManager accessControlManager,
String absPath)
Utility that combines AccessControlManager.getApplicablePolicies(String)
and AccessControlManager.getPolicies(String) to retrieve
a modifiable JackrabbitAccessControlList for the given path.Note that the policy must be reapplied
and the changes must be saved in order to make the AC modifications take
effect. |
static org.apache.jackrabbit.api.security.JackrabbitAccessControlList |
getAccessControlList(Session session,
String absPath)
Utility that combines AccessControlManager.getApplicablePolicies(String)
and AccessControlManager.getPolicies(String) to retrieve
a modifiable JackrabbitAccessControlList for the given path.Note that the policy must be reapplied
and the changes must be saved in order to make the AC modifications take
effect. |
static Principal |
getEveryonePrincipal(Session session)
Shortcut for calling PrincipalManager#getEveryone(). |
static Principal |
getPrincipal(Session session,
String principalName)
Retrieves the principal with the specified principalName. |
static boolean |
grantAllToEveryone(Session session,
String absPath)
Utility to grant jcr:all privilege to the everyone group principal. |
static String[] |
namesFromPrivileges(Privilege... privileges)
Retrieves the names of the specified privileges. |
static Privilege[] |
privilegesFromNames(AccessControlManager accessControlManager,
String... privilegeNames)
Retrieves the Privileges from the specified privilege names. |
static Privilege[] |
privilegesFromNames(Session session,
String... privilegeNames)
Retrieves the Privileges from the specified privilege names. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public AccessControlUtils()
| Method Detail |
|---|
public static Privilege[] privilegesFromNames(Session session,
String... privilegeNames)
throws RepositoryException
Privileges from the specified privilege names.
session - The editing session.privilegeNames - The privilege names.
RepositoryException - If an error occurs or if privilegeNames
contains an unknown/invalid privilege name.
public static Privilege[] privilegesFromNames(AccessControlManager accessControlManager,
String... privilegeNames)
throws RepositoryException
Privileges from the specified privilege names.
accessControlManager - The access control manager.privilegeNames - The privilege names.
RepositoryException - If an error occurs or if privilegeNames
contains an unknown/invalid privilege name.public static String[] namesFromPrivileges(Privilege... privileges)
privileges - One or more privileges.
public static org.apache.jackrabbit.api.security.JackrabbitAccessControlList getAccessControlList(Session session,
String absPath)
throws RepositoryException
AccessControlManager.getApplicablePolicies(String)
and AccessControlManager.getPolicies(String) to retrieve
a modifiable JackrabbitAccessControlList for the given path.reapplied
and the changes must be saved in order to make the AC modifications take
effect.
session - The editing session.absPath - The absolute path of the target node.
RepositoryException - If an error occurs.
public static org.apache.jackrabbit.api.security.JackrabbitAccessControlList getAccessControlList(AccessControlManager accessControlManager,
String absPath)
throws RepositoryException
AccessControlManager.getApplicablePolicies(String)
and AccessControlManager.getPolicies(String) to retrieve
a modifiable JackrabbitAccessControlList for the given path.reapplied
and the changes must be saved in order to make the AC modifications take
effect.
accessControlManager - The AccessControlManager .absPath - The absolute path of the target node.
RepositoryException - If an error occurs.
public static boolean addAccessControlEntry(Session session,
String absPath,
Principal principal,
String[] privilegeNames,
boolean isAllow)
throws RepositoryException
Session.save()() is required
in order to persist the changes.
session - The editing session.absPath - The absolute path of the target node.principal - The principal to grant/deny privileges to.privilegeNames - The names of the privileges to grant or deny.isAllow - true to grant; false otherwise.
true if the node's ACL was modified and the session has
pending changes.
RepositoryException - If an error occurs.
public static boolean addAccessControlEntry(Session session,
String absPath,
Principal principal,
Privilege[] privileges,
boolean isAllow)
throws RepositoryException
Session.save()() is required in order
to persist the changes.
session - The editing sessionabsPath - The absolute path of the target node.principal - The principal to grant/deny privileges to.privileges - The privileges to grant or denyisAllow - true to grant; false otherwise;
true if the node's ACL was modified and the session has
pending changes.
RepositoryException - If an error occurs.
public static boolean grantAllToEveryone(Session session,
String absPath)
throws RepositoryException
Session.save()() is required in order
to persist the changes.
session - The editing session.absPath - The absolute path of the target node
true if the node's access control list was modified;
false otherwise;
RepositoryException - If an error occurs.
public static boolean denyAllToEveryone(Session session,
String absPath)
throws RepositoryException
Session.save()() is required in order
to persist the changes.
session - The editing session.absPath - The absolute path of the target node
true if the node's access control list was modified;
false otherwise;
RepositoryException - If an error occurs.
public static boolean allow(Node node,
String principalName,
String... privileges)
throws RepositoryException
To activate the ACL change, session.save() must be called.
node - node to set the resource-based ACL entry on; underlying session is used to write the ACLprincipalName - Name of the principal for which the ACL entry should applyprivileges - list of privileges to set by name (see Privilege)
true if the node's ACL was modified and the session has pending changes.
RepositoryException - If an unexpected repository error occurs
public static boolean deny(Node node,
String principalName,
String... privileges)
throws RepositoryException
To activate the ACL change, session.save() must be called.
node - node to set the resource-based ACL entry on; underlying session is used to write the ACLprincipalName - Name of the principal for which the ACL entry should applyprivileges - list of privileges to set by name (see Privilege)
true if the node's ACL was modified and the session has pending changes.
RepositoryException - If an unexpected repository error occurs
public static boolean clear(Session session,
String absPath,
String principalName)
throws RepositoryException
principalName is null the policy will be removed altogether.
Modifications only take effect upon Session.save().
session - The editing session.absPath - Absolute path of an existing node from which to remove ACL entries (or the policy)principalName - Name of the principal whose entries should be removed;
use null to clear the policy.
true if the policy has been modified; false otherwise.
RepositoryException - If an unexpected repository error occurs
public static boolean clear(Node node,
String principalName)
throws RepositoryException
Modification to the policy only take effect upon Session.save() must be called.
node - node from which to remove ACL entries; underlying session is used to write the changesprincipalName - Name of the principal whose entries should be removed; use null to clear the policy altogether.
true if the node's ACL was modified, false otherwise.
RepositoryException - If an unexpected repository error occurs
public static boolean clear(Node node)
throws RepositoryException
To persist the modifications, Session.save() must be called.
node - node from which to remove the ACL; underlying session is used to write the changes
true if the node's ACL was removed, false otherwise.
RepositoryException - If an unexpected repository error occurs
public static boolean clear(Session session,
String absPath)
throws RepositoryException
To persist the modification, session.save() must be called.
session - The editing session.absPath - An absolute path of a valid node accessible to the editing session from which to remove the ACL.
true if the node's ACL got removed, false otherwise.
RepositoryException - If an unexpected repository error occurs
public static Principal getPrincipal(Session session,
String principalName)
throws RepositoryException
principalName. Shortcut
for calling PrincipalManager#getPrincipal(String).
session - The editing session which must be a JackrabbitSession.principalName - The name of the principal.
null if no such principal exists.
RepositoryException - If an error occurs or if the session is not a JackrabbitSession.
public static Principal getEveryonePrincipal(Session session)
throws RepositoryException
PrincipalManager#getEveryone().
session - The editing session which must be a JackrabbitSession.
RepositoryException - If an error occurs or if the session is not a JackrabbitSession.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||