Class DownloadGateKeeper
- java.lang.Object
-
- com.atlassian.confluence.security.DownloadGateKeeper
-
- All Implemented Interfaces:
GateKeeper
public class DownloadGateKeeper extends Object implements GateKeeper
GateKeeper for the Confluence downloads directory.Any resource granted permissions for will be normalised to remove any part of the path before the first occurrence of the text
download. So/confluence/download/foo.txtwill need to be checked asdownload/foo.txt. Attempts to grant permission to a path that doesn't contain "download" will throw an exception.Permissions will be expired 24 hours after they are granted.
-
-
Constructor Summary
Constructors Constructor Description DownloadGateKeeper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddKey(String path, com.atlassian.user.User user)Permit a user to download a particular resource.voidaddKey(String path, String username)Add permission for a user to access a certain path.voidallowAnonymousAccess(String path)Allow all users, including the anonymous user, access to a particular path.voidcleanAllKeys()Revoke all granted permissions.voidcleanAllKeysOlderThan(long millis)booleanisAccessPermitted(String path, com.atlassian.user.User user)Determine whether a user is permitted to access a resource.booleanisAccessPermitted(String path, String userName)Determine whether a user is permitted to access a resource.
-
-
-
Method Detail
-
addKey
public void addKey(String path, String username)
Add permission for a user to access a certain path. The path will be normalised on the way in so that anything before the text "download' is discarded. So/confluence/download/Foowill be normalised todownload/Foo. If the text "download" does not appear in the path, an exception will be thrown- Specified by:
addKeyin interfaceGateKeeper- Parameters:
username- the username of the user to be permitted.nullrepresents the name of the anonymous users.path- the path being granted permission to. Must not be null.- Throws:
IllegalArgumentException- if the path is not of the expected form
-
addKey
public void addKey(String path, com.atlassian.user.User user)
Description copied from interface:GateKeeperPermit a user to download a particular resource. This permission is temporary, and may expire after whatever time period the GateKeeper thinks is reasonable.- Specified by:
addKeyin interfaceGateKeeper- Parameters:
path- the path to the resource being made accessibleuser- the user to grant permission for.nullmay be used to represent anonymous users.
-
allowAnonymousAccess
public void allowAnonymousAccess(String path)
Allow all users, including the anonymous user, access to a particular path. The path will be normalised to the same rules asaddKey(java.lang.String, java.lang.String)- Specified by:
allowAnonymousAccessin interfaceGateKeeper- Parameters:
path- The resource to grant access permission to
-
isAccessPermitted
public boolean isAccessPermitted(String path, com.atlassian.user.User user)
Description copied from interface:GateKeeperDetermine whether a user is permitted to access a resource.- Specified by:
isAccessPermittedin interfaceGateKeeper- Parameters:
path- the path to the resource being requesteduser- the user requesting permission to retrieve that resource- Returns:
- true if the user is permitted to retrieve that resource, false otherwise
-
isAccessPermitted
public boolean isAccessPermitted(String path, String userName)
Description copied from interface:GateKeeperDetermine whether a user is permitted to access a resource.- Specified by:
isAccessPermittedin interfaceGateKeeper- Parameters:
path- the path to the resource being requesteduserName- the name of the user requesting permission to retrieve that resource- Returns:
- true if the user is permitted to retrieve that resource, false otherwise
-
cleanAllKeys
public void cleanAllKeys()
Description copied from interface:GateKeeperRevoke all granted permissions.- Specified by:
cleanAllKeysin interfaceGateKeeper
-
cleanAllKeysOlderThan
public void cleanAllKeysOlderThan(long millis)
-
-