|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.wso2.registry.secure.SecureRegistry
public class SecureRegistry
Registry implementation to perform authentication and authorization. Each user should use a separate instance of the SecureRegistry initialized with the user name and a back-end Registry. All SecureRegistry instances should be initialized using the same back-end registry implementation. SecureRegistry verifies whether the user has necessary permissions to perform the requested action and delegates the request to the back-end registry if the authorization succeeds. It also sets user name as a thread local variable before delegating the request, so that the back-end registry can use that user name to associate user information with performed operation (e.g. who commented on the resource /projects/abcbank/orders.doc).
Resource path is used as the unique ID of the resource to associate permissions. So when an operation is request on a certain path, we can first check the permissions for that path, without even touching the actual resource. This has a side effect that if a user has requested an operation on a non-existing resource, he gets an unauthorized operation message rather than a resource does not exist message. This is good as we don't want unauthorized users to check if a resource exist in a particular path.
Constructor Summary | |
---|---|
SecureRegistry(java.lang.String userID,
Registry registry,
org.wso2.usermanager.Realm defaultRealm)
Non-authenticating constructor. |
|
SecureRegistry(java.lang.String userID,
java.lang.String password,
Registry registry,
org.wso2.usermanager.Realm defaultRealm)
|
Method Summary | |
---|---|
java.lang.String |
addComment(java.lang.String resourcePath,
Comment comment)
Adds a comment to a resource. |
void |
applyTag(java.lang.String resourcePath,
java.lang.String tag)
Applies the given tag to the resource in the given path. |
void |
delete(java.lang.String path)
Deletes the resource at the given path. |
void |
editComment(java.lang.String commentPath,
java.lang.String text)
Change the text of an existing comment. |
Resource |
executeQuery(java.lang.String path,
java.util.Map parameters)
Executes a custom query which lives at the given path in the Registry. |
Resource |
get(java.lang.String path)
Returns the resource at the given path. |
float |
getAverageRating(java.lang.String resourcePath)
Returns the average rating for the given resource. |
Comment[] |
getComments(java.lang.String resourcePath)
Get all comments for the given resource. |
LogEntry[] |
getLogs(java.lang.String resourcePath,
int action,
java.lang.String userName,
java.util.Date from,
java.util.Date to,
boolean recentFirst)
Returns the logs of the activities occured in the registy. |
int |
getRating(java.lang.String resourcePath,
java.lang.String userName)
Returns the rating given to the specified resource by the given user |
TaggedResourcePath[] |
getResourcePathsWithTag(java.lang.String tag)
Returns the paths of all Resources that are tagged with the given tag. |
Tag[] |
getTags(java.lang.String resourcePath)
Returns all tags used for tagging the given resource. |
java.lang.String |
getUserID()
|
org.wso2.usermanager.Realm |
getUserRealm()
|
java.lang.String[] |
getVersions(java.lang.String resourcePath)
Get a list of all versions of the resource located at the given path. |
java.lang.String |
importResource(java.lang.String suggestedPath,
java.lang.String sourceURL,
Resource metadata)
Creates a resource by fetching the resource content from the given URL. |
java.lang.String |
put(java.lang.String suggestedPath,
Resource resource)
Checks if the user has "PUT" permissions to the existing ascendent path of the given path. |
void |
rateResource(java.lang.String resourcePath,
int rating)
Rate the given resource. |
void |
removeTag(java.lang.String resourcePath,
java.lang.String tag)
Removes a tag on a resource. |
java.lang.String |
rename(java.lang.String currentPath,
java.lang.String newPath)
Move or rename a resource in the registry. |
boolean |
resourceExists(java.lang.String resourcePath)
Check whether a resource exists at the given path |
void |
restoreVersion(java.lang.String versionPath)
Reverts a resource to a given version. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public SecureRegistry(java.lang.String userID, java.lang.String password, Registry registry, org.wso2.usermanager.Realm defaultRealm) throws RegistryException
RegistryException
public SecureRegistry(java.lang.String userID, Registry registry, org.wso2.usermanager.Realm defaultRealm) throws RegistryException
userID
- user name of the user of the secure registry.registry
- core registry to use by the secure registry.defaultRealm
- default (non-authorizing) realm.
RegistryException
Method Detail |
---|
public java.lang.String getUserID()
public org.wso2.usermanager.Realm getUserRealm()
public Resource get(java.lang.String path) throws RegistryException
CoreRegistry
get
in interface CoreRegistry
path
- Path of the resource. e.g. /project1/server/deployment.xml
RegistryException
- is thrown if the resource is not in the registrypublic boolean resourceExists(java.lang.String resourcePath) throws RegistryException
CoreRegistry
resourceExists
in interface CoreRegistry
resourcePath
- Path of the resource to be checked
RegistryException
- if an error occurspublic java.lang.String put(java.lang.String suggestedPath, Resource resource) throws RegistryException
put
in interface CoreRegistry
suggestedPath
- the path which we'd like to use for the new resource.resource
- New resource @throws RegistryException
RegistryException
public java.lang.String importResource(java.lang.String suggestedPath, java.lang.String sourceURL, Resource metadata) throws RegistryException
Registry
importResource
in interface Registry
suggestedPath
- path where we'd like to add the new resource. Although this path is
specified by the caller of the method, resource may not be actually
added at this path.sourceURL
- where to fetch the resource contentmetadata
- a template Resource
RegistryException
- if we couldn't get or store the new resourcepublic void delete(java.lang.String path) throws RegistryException
CoreRegistry
delete
in interface CoreRegistry
path
- Path of the resource to be deleted.
RegistryException
- is thrown depending on the implementation.public java.lang.String rename(java.lang.String currentPath, java.lang.String newPath) throws RegistryException
Registry
rename
in interface Registry
currentPath
- current path of the resourcenewPath
- where we'd like to move the reosurce
RegistryException
- if something went wrongpublic java.lang.String[] getVersions(java.lang.String resourcePath) throws RegistryException
Registry
getVersions
in interface Registry
resourcePath
- path of a current version of a resource
RegistryException
- if there is an errorpublic void restoreVersion(java.lang.String versionPath) throws RegistryException
Registry
restoreVersion
in interface Registry
versionPath
- path of the version to be reverted. It is not necessary to provide the
path of the resource as it can be derived from the version path.
RegistryException
- if there is an errorpublic void applyTag(java.lang.String resourcePath, java.lang.String tag) throws RegistryException
Registry
applyTag
in interface Registry
resourcePath
- Path of the resource to be tagged.tag
- Tag. Any string can be used for the tag.
RegistryException
- is thrown if a resource does not exist in the given path.public TaggedResourcePath[] getResourcePathsWithTag(java.lang.String tag) throws RegistryException
Registry
getResourcePathsWithTag
in interface Registry
tag
- the tag to search for
RegistryException
- if an error occurspublic Tag[] getTags(java.lang.String resourcePath) throws RegistryException
Registry
getTags
in interface Registry
resourcePath
- Path of the resource
RegistryException
- is thrown if a resource does not exist in the given path.public void removeTag(java.lang.String resourcePath, java.lang.String tag) throws RegistryException
Registry
removeTag
in interface Registry
resourcePath
- Resource path tagged with the given tag.tag
- Name of the tag to be removed.
RegistryException
- if there's a problempublic java.lang.String addComment(java.lang.String resourcePath, Comment comment) throws RegistryException
Registry
addComment
in interface Registry
resourcePath
- Path of the resource to add the comment.comment
- Comment instance for the new comment.
RegistryException
- is thrown if a resource does not exist in the given path.public void editComment(java.lang.String commentPath, java.lang.String text) throws RegistryException
Registry
editComment
in interface Registry
commentPath
- path to comment resource ("..foo/r1;comment:1")text
- new text for the comment.
RegistryException
- Registry implementations may handle exceptions and throw
RegistryException if the exception has to be propagated to the
client.public Comment[] getComments(java.lang.String resourcePath) throws RegistryException
Registry
getComments
in interface Registry
resourcePath
- path of the resource.
RegistryException
- Registry implementations may handle exceptions and throw
RegistryException if the exception has to be propagated to the
client.public void rateResource(java.lang.String resourcePath, int rating) throws RegistryException
Registry
rateResource
in interface Registry
resourcePath
- Path of the resource.rating
- Rating value between 1 and 5.
RegistryException
- Registry implementations may handle exceptions and throw
RegistryException if the exception has to be propagated to the
client.public float getAverageRating(java.lang.String resourcePath) throws RegistryException
Registry
getAverageRating
in interface Registry
resourcePath
- Path of the resource.
RegistryException
- if an error occurspublic int getRating(java.lang.String resourcePath, java.lang.String userName) throws RegistryException
Registry
getRating
in interface Registry
resourcePath
- Path of the resourceuserName
- username of the user
RegistryException
- if there is a problempublic Resource executeQuery(java.lang.String path, java.util.Map parameters) throws RegistryException
Registry
executeQuery
in interface Registry
path
- Path of the query to execute.parameters
- a Map of query parameters (name -> value)
RegistryException
- depends on the implementation.public LogEntry[] getLogs(java.lang.String resourcePath, int action, java.lang.String userName, java.util.Date from, java.util.Date to, boolean recentFirst) throws RegistryException
Registry
getLogs
in interface Registry
resourcePath
- If given, only the logs related to the resource path will be returned. If
null, logs for all resources will be returned.action
- Only the logs pertaining to this action will be returned.userName
- If given, only the logs for activities done by the given user will be
returned. If null, logs for all users will be returned.from
- If given, logs for activities occured after the given date will be
returned. If null, there will not be a bound for the starting date.to
- If given, logs for activities occured before the given date will be
returned. If null, there will not be a bound for the ending date.recentFirst
- If true, returned activities will be most-recent first. If false,
returned activities will be oldest first.
RegistryException
- if there is a problem
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |