public interface PolicyStore extends OpssServiceInstance, JavaPolicy, PolicyMgmt
OpssServiceInstance.StateJpsPersistable.Mode| Modifier and Type | Method and Description |
|---|---|
java.util.Set<ResourceActionsEntry> |
checkBulkAuthorization(javax.security.auth.Subject subject, java.util.Set<ResourceActionsEntry> requestedResources)
Determines whether the subject has access one or more Resource Actions.
|
ApplicationPolicy |
createApplicationPolicy(java.lang.String appId)
Creates an application policy given the application name -
appid. |
ApplicationPolicy |
createApplicationPolicy(java.lang.String appId, java.lang.String displayName, java.lang.String description, ApplicationPolicy.DATA_SECURITY_TYPE type)
Creates an application policy given the application name -
appid, display name displayName and description description and type type |
void |
deleteApplicationPolicy(java.lang.String appId)
Delete an application policy given the application name -
appid. |
java.util.Map<java.lang.String,ApplicationPolicy> |
getApplicationPolicies()
Deprecated.
Use
getApplicationPolicy(String appId) Returns a map of applications and their policies managed by this PolicyStore This may in turn be queried for application roles, and policies provisioned for a given application |
ApplicationPolicy |
getApplicationPolicy(java.lang.String appId)
Returns a application policy for the given application by this PolicyStore
|
java.util.List<AppRoleEntry> |
getAppRoles(StoreAppRoleSearchQuery query)
Search ApplicationRoles across one or more Applications based upon user specified criteria (query)
Caller should have PolicyStoreAccessPermission("context=APPLICATION,name=Queried Applicaiton's stripe Id" , "getApplicationPolicy") permission to search for roles.If the caller does not supply an application name (or supplies a partial application name with some MATCHER other than EXACT) then they should have PolicyStoreAccessPermission("context=APPLICATION, name=*" , "getApplicationPolicy") to search for app roles. |
java.util.List<java.lang.String> |
getConfiguredApplications()
Deprecated.
|
PDPInfoViewer |
getPDPInfoViewer()
Gets an instance of PDP instances viewer
|
PolicyStoreType |
getPolicyStoreType()
Returns the underlying Policy Storage mechanism (XML, LDAP, etc).
|
RASConfigurationBindingManager |
getRASConfigurationBindingManager()
Gets an instance of RAS Configuration Binding Manager
|
RASConfigurationManager |
getRASConfigurationManager()
Gets an instance of RAS Configuration Manager
|
JavaPolicy |
getSystemPolicy()
Returns the "system" or "non-app-specific" or "global" policy
|
void |
modifyApplicationPolicy(ApplicationPolicy app)
Modify an application policy in the persistence store.
|
getStateaccept, getName, getServiceProviderpersist, refreshgetPermissions, getPermissions, getPermissions, getPermissions, getPermissions, hasPermission, implies, refreshgetGrantEntries, grant, grant, modifyGrant, revoke, revokejava.util.Map<java.lang.String,ApplicationPolicy> getApplicationPolicies() throws PolicyStoreException
getApplicationPolicy(String appId) Returns a map of applications and their policies managed by this PolicyStore This may in turn be queried for application roles, and policies provisioned for a given applicationPolicyStorePolicyStoreException - - if there is an error during this policy operation
java.util.List<java.lang.String> getConfiguredApplications()
throws PolicyStoreException
Caller should have PolicyStoreAccessPermission("context=SYSTEM,name=*", "getConfiguredApplications") permission to be able to invoke this method.
PolicyStoreExceptionjava.security.AccessControlException - if the caller does not have the PolicyStoreAccessPermission("context=SYSTEM,name=*" , "getConfiguredApplications").ApplicationPolicy getApplicationPolicy(java.lang.String appId) throws InvalidArgumentException, PolicyObjectNotFoundException, PolicyStoreException
Caller should have view privileges to the application.
appId - name of the applicationPolicyStorePolicyStoreException - if there is an error during this policy operationInvalidArgumentException - if application name is null or empty.PolicyObjectNotFoundException - if application policy for the given application does not exist.JavaPolicy getSystemPolicy() throws PolicyStoreException
PolicyStoreException - - if there is an error during this operationApplicationPolicy createApplicationPolicy(java.lang.String appId) throws InvalidArgumentException, PolicyObjectAlreadyExistsException, PolicyStoreException
appid.appId -PolicyObjectAlreadyExistsException - if this application policy already existsPolicyStoreException - if there is an error during creation of the policyInvalidArgumentException - if application name is null or empty.java.security.AccessControlException - if the caller does not have the PolicyStoreAccessPermission("context=APPLICATION,name=Applicaiton's stripe Id" , "createApplicationPolicy").
void deleteApplicationPolicy(java.lang.String appId)
throws InvalidArgumentException,
PolicyObjectNotFoundException,
PolicyStoreException
appid.appId -PolicyObjectNotFoundException - if this application policy does not existPolicyStoreException - if there is an error during deletion of the policyInvalidArgumentException - if application name is null or empty.java.security.AccessControlException - if the caller does not have the PolicyStoreAccessPermission("context=APPLICATION,name=Applicaiton's stripe Id" , "deleteApplicationPolicy").PolicyStoreType getPolicyStoreType()
java.util.Set<ResourceActionsEntry> checkBulkAuthorization(javax.security.auth.Subject subject, java.util.Set<ResourceActionsEntry> requestedResources) throws PolicyStoreException
Following example illustrates how to invoke this method
import oracle.security.jps.*;
import oracle.security.jps.util.*;
import oracle.security.jps.service.policystore.*;
import oracle.security.jps.service.policystore.info.*;
import oracle.security.jps.service.policystore.info.common.*;
import oracle.security.jps.service.policystore.info.resource.*;
import oracle.security.jps.service.policystore.search.*;
import java.util.*;
import java.security.*;
import javax.security.auth.*;
...
PolicyStore ps; // the current PolicyStore
// Construct the requested Resource-Actions
Set<ResourceActionsEntry> requestedResources = new HashSet<ResourceActionsEntry>();
ResourceActionsEntry aResourceActionsEntry;
Set<String> allowedActions;
// actions for this resource
allowedActions = new HashSet<String>();
allowedActions.add("read");
allowedActions.add("write");
// Build one resource-actions
// Assuming FILE is a pre-existing resource type defined in the application 'application_1'
aResourceActionsEntry = InfoFactory.newResourceActionsEntry("FILE", "/tmp", allowedActions, "application_1");
// and add it to the request
requestedResources.add ( aResourceActionsEntry );
// build one more resource-actions
allowedActions = new HashSet<String>();
allowedActions.add("connect");
// Assuming SOCKET is a pre-existing resource type defined in the application 'application2'
aResourceActionsEntry = InfoFactory.newResourceActionsEntry("SOCKET", "somehost:9999", allowedActions, "application_2");
requestedResources.add ( aResourceActionsEntry );
// Create a Subject (not shown here)
Subject jdoe;
Set<ResourceActionsEntry> allowedResources;
// Return result has the allowed resource-actions
allowedResources = ps.checkBulkAuthorization(jdoe, requestedResources);
subject - the Subject to authorizerequestedResources - a Set of resource actions the caller is requesting access to.ResourceActionsEntry correspond to action1 AND action2 ... AND action_n.requestedResources. Resource Actions the caller cannot access are not included in the return result.
If the Subject is not authorized to all the resoure-actions, an empty Set is returned.
If the applicalication associated with the ResourceActionEntry set does not exist, a DENY result is returned.
PolicyStoreException - if an error occurs while evaluating the request.InfoFactory.newResourceActionsEntry(String,String,Set,String)java.util.List<AppRoleEntry> getAppRoles(StoreAppRoleSearchQuery query) throws PolicyStoreException
PolicyStoreAccessPermission("context=APPLICATION,name=Queried Applicaiton's stripe Id" , "getApplicationPolicy") permission to search for roles.PolicyStoreAccessPermission("context=APPLICATION, name=*" , "getApplicationPolicy") to search for app roles. Otherwise the method will throw a SecurityException or AccessControlException.query - Cross application AppRole search criteria.PolicyStoreException - if an error occurs while querying.java.security.AccessControlException - if the caller does not have sufficient privileges for querying applications.void modifyApplicationPolicy(ApplicationPolicy app) throws InvalidArgumentException, PolicyObjectNotFoundException, PolicyStoreException
app - ApplicationPolicy object.InvalidArgumentException - an invalid parameter was suppliedPolicyObjectNotFoundException - application policy not found in the peristence store.PolicyStoreException - if an error occurs while persisting the changes.java.security.AccessControlException - if the caller does not have the PolicyStoreAccessPermission("context=APPLICATION,name=Applicaiton's stripe Id" , "createApplicationPolicy").RASConfigurationManager getRASConfigurationManager()
java.lang.RuntimeException - if the policy store is not properly initialized.RASConfigurationBindingManager getRASConfigurationBindingManager()
java.lang.RuntimeException - if the policy store is not properly initialized.PDPInfoViewer getPDPInfoViewer()
ApplicationPolicy createApplicationPolicy(java.lang.String appId, java.lang.String displayName, java.lang.String description, ApplicationPolicy.DATA_SECURITY_TYPE type) throws InvalidArgumentException, PolicyObjectAlreadyExistsException, PolicyStoreException
appid, display name displayName and description description and type typeappId -displayName -description -type -PolicyObjectAlreadyExistsException - if this application policy already existsPolicyStoreException - if there is an error during creation of the policyInvalidArgumentException - if application name is null or empty.java.security.AccessControlException - if the caller does not have the PolicyStoreAccessPermission("context=APPLICATION,name=Applicaiton's stripe Id" , "createApplicationPolicy").