Class ACL
- Direct Known Subclasses:
- SidACL
- Author:
- Kohsuke Kawaguchi
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final SidSidthat represents the anonymous unauthenticated users.static final StringThe username for the anonymous userstatic final SidSpecialSidthat represents "everyone", even including anonymous users.static final AuthenticationDeprecated.static final StringThe username for the system userstatic final org.springframework.security.core.AuthenticationSidthat represents the Hudson itself.
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic ACLContextChanges theAuthenticationassociated with the current thread to the specified one and returns anAutoCloseablethat restores the previous security context.static ACLContextas(Authentication auth) Deprecated.static ACLContextas2(org.springframework.security.core.Authentication auth) Changes theAuthenticationassociated with the current thread to the specified one and returns anAutoCloseablethat restores the previous security context.final voidcheckAnyPermission(Permission... permissions) Checks if the current security principal has one of the supplied permissions.final voidChecks if the current security principal has the permission to create top level items within the specified item group.final voidChecks if the current security principal has the permission to create views within the specified view group.final voidChecks if the current security principal has this permission.final booleanhasAnyPermission(Permission... permissions) Checks if the current security principal has any of the permissions.booleanbooleanbooleanhasCreatePermission2(org.springframework.security.core.Authentication a, ItemGroup c, TopLevelItemDescriptor d) Checks if the given principal has the permission to create top level items within the specified item group.booleanhasCreatePermission2(org.springframework.security.core.Authentication a, ViewGroup c, ViewDescriptor d) Checks if the given principal has the permission to create views within the specified view group.final booleanChecks if the current security principal has this permission.booleanhasPermission(Authentication a, Permission permission) booleanhasPermission2(org.springframework.security.core.Authentication a, Permission permission) Checks if the given principle has the given permission.static SecurityContextimpersonate(Authentication auth) Deprecated.static <V,T extends Exception> 
 Vimpersonate(Authentication auth, hudson.remoting.Callable<V, T> body) Deprecated.use try with resources andas2(Authentication)static voidimpersonate(Authentication auth, Runnable body) Deprecated.static org.springframework.security.core.context.SecurityContextimpersonate2(org.springframework.security.core.Authentication auth) Deprecated.use try with resources andas2(Authentication)static <V,T extends Exception> 
 Vimpersonate2(org.springframework.security.core.Authentication auth, hudson.remoting.Callable<V, T> body) Deprecated.use try with resources andas2(Authentication)static voidimpersonate2(org.springframework.security.core.Authentication auth, Runnable body) Deprecated.use try with resources andas2(Authentication)static booleanisAnonymous(Authentication authentication) Deprecated.static booleanisAnonymous2(org.springframework.security.core.Authentication authentication) Checks if the given authentication is anonymous by checking its class.static ACLstatic ACLlambda2(BiFunction<org.springframework.security.core.Authentication, Permission, Boolean> impl) Creates a simpleACLimplementation based on a “single-abstract-method” easily implemented via lambda syntax.
- 
Field Details- 
EVERYONE
- 
ANONYMOUS_USERNAME@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static final String ANONYMOUS_USERNAMEThe username for the anonymous user- See Also:
 
- 
ANONYMOUSSidthat represents the anonymous unauthenticated users.HudsonFiltersets this up, so this sid remains the same regardless of the currentSecurityRealmin use.
- 
SYSTEM_USERNAME@Restricted(org.kohsuke.accmod.restrictions.NoExternalUse.class) public static final String SYSTEM_USERNAMEThe username for the system user- See Also:
 
- 
SYSTEM2public static final org.springframework.security.core.Authentication SYSTEM2Sidthat represents the Hudson itself.This is used when Hudson is performing computation for itself, instead of acting on behalf of an user, such as doing builds. - Since:
- 2.266
 
- 
SYSTEMDeprecated.useSYSTEM2
 
- 
- 
Constructor Details- 
ACLpublic ACL()
 
- 
- 
Method Details- 
checkPermissionChecks if the current security principal has this permission.This is just a convenience function. - Throws:
- org.springframework.security.access.AccessDeniedException- if the user doesn't have the permission.
 
- 
checkAnyPermissionChecks if the current security principal has one of the supplied permissions. This is just a convenience function.- Throws:
- org.springframework.security.access.AccessDeniedException- if the user doesn't have the permission.
- IllegalArgumentException- if no permissions are provided
- Since:
- 2.222
 
- 
hasPermissionChecks if the current security principal has this permission.- Returns:
- false if the user doesn't have the permission.
 
- 
hasAnyPermissionChecks if the current security principal has any of the permissions.- Returns:
- falseif the user doesn't have one of the required permissions.
- Throws:
- IllegalArgumentException- if no permissions are provided
 
- 
hasPermission2public boolean hasPermission2(@NonNull org.springframework.security.core.Authentication a, @NonNull Permission permission) Checks if the given principle has the given permission.Note that SYSTEM2can be passed in as the authentication parameter, in which case you should probably just assume it has every permission.- Since:
- 2.266
 
- 
hasPermission
- 
lambda2public static ACL lambda2(BiFunction<org.springframework.security.core.Authentication, Permission, Boolean> impl) Creates a simpleACLimplementation based on a “single-abstract-method” easily implemented via lambda syntax.- Parameters:
- impl- the implementation of- hasPermission2(Authentication, Permission)
- Returns:
- an adapter to that lambda
- Since:
- 2.266
 
- 
lambdaDeprecated.- Since:
- 2.105
 
- 
checkCreatePermissionChecks if the current security principal has the permission to create top level items within the specified item group.This is just a convenience function. - Parameters:
- c- the container of the item.
- d- the descriptor of the item to be created.
- Throws:
- org.springframework.security.access.AccessDeniedException- if the user doesn't have the permission.
- Since:
- 1.607
 
- 
hasCreatePermission2public boolean hasCreatePermission2(@NonNull org.springframework.security.core.Authentication a, @NonNull ItemGroup c, @NonNull TopLevelItemDescriptor d) Checks if the given principal has the permission to create top level items within the specified item group.Note that SYSTEM2can be passed in as the authentication parameter, in which case you should probably just assume it can create anything anywhere.- Parameters:
- a- the principal.
- c- the container of the item.
- d- the descriptor of the item to be created.
- Returns:
- false if the user doesn't have the permission.
- Since:
- 2.266
 
- 
hasCreatePermission@Deprecated public boolean hasCreatePermission(@NonNull Authentication a, @NonNull ItemGroup c, @NonNull TopLevelItemDescriptor d) - Since:
- 1.607
 
- 
checkCreatePermissionChecks if the current security principal has the permission to create views within the specified view group.This is just a convenience function. - Parameters:
- c- the container of the item.
- d- the descriptor of the view to be created.
- Throws:
- org.springframework.security.access.AccessDeniedException- if the user doesn't have the permission.
- Since:
- 1.607
 
- 
hasCreatePermission2public boolean hasCreatePermission2(@NonNull org.springframework.security.core.Authentication a, @NonNull ViewGroup c, @NonNull ViewDescriptor d) Checks if the given principal has the permission to create views within the specified view group.Note that SYSTEM2can be passed in as the authentication parameter, in which case you should probably just assume it can create anything anywhere.- Parameters:
- a- the principal.
- c- the container of the view.
- d- the descriptor of the view to be created.
- Returns:
- false if the user doesn't have the permission.
- Since:
- 2.266
 
- 
hasCreatePermission@Deprecated public boolean hasCreatePermission(@NonNull Authentication a, @NonNull ViewGroup c, @NonNull ViewDescriptor d) - Since:
- 2.37
 
- 
impersonate2@Deprecated @NonNull public static org.springframework.security.core.context.SecurityContext impersonate2(@NonNull org.springframework.security.core.Authentication auth) Deprecated.use try with resources andas2(Authentication)Changes theAuthenticationassociated with the current thread to the specified one, and returns the previous security context.When the impersonation is over, be sure to restore the previous authentication via SecurityContextHolder.setContext(returnValueFromThisMethod); or just useimpersonate2(Authentication, Runnable).We need to create a new SecurityContextinstead ofSecurityContext.setAuthentication(Authentication)because the sameSecurityContextobject is reused for all the concurrent requests from the same session.- Since:
- 2.266
 
- 
impersonateDeprecated.- Since:
- 1.462
 
- 
impersonate2@Deprecated public static void impersonate2(@NonNull org.springframework.security.core.Authentication auth, @NonNull Runnable body) Deprecated.use try with resources andas2(Authentication)Safer variant ofimpersonate2(Authentication)that does not require a finally-block.- Parameters:
- auth- authentication, such as- SYSTEM2
- body- an action to run with this alternate authentication in effect
- Since:
- 2.266
 
- 
impersonateDeprecated.- Since:
- 1.509
 
- 
impersonate2@Deprecated public static <V,T extends Exception> V impersonate2(org.springframework.security.core.Authentication auth, hudson.remoting.Callable<V, T> body) throws TDeprecated.use try with resources andas2(Authentication)- Throws:
- T
 
- 
impersonate@Deprecated public static <V,T extends Exception> V impersonate(Authentication auth, hudson.remoting.Callable<V, T> body) throws TDeprecated.use try with resources andas2(Authentication)- Throws:
- T
- Since:
- 1.587
 
- 
as2@NonNull public static ACLContext as2(@NonNull org.springframework.security.core.Authentication auth) Changes theAuthenticationassociated with the current thread to the specified one and returns anAutoCloseablethat restores the previous security context.This makes impersonation much easier within code as it can now be used using the try with resources construct: try (ACLContext ctx = ACL.as2(auth)) { ... }- Parameters:
- auth- the new authentication.
- Returns:
- the previous authentication context
- Since:
- 2.266
 
- 
asDeprecated.- Since:
- 2.14
 
- 
asChanges theAuthenticationassociated with the current thread to the specified one and returns anAutoCloseablethat restores the previous security context.This makes impersonation much easier within code as it can now be used using the try with resources construct: try (ACLContext ctx = ACL.as2(auth)) { ... }- Parameters:
- user- the user to impersonate.
- Returns:
- the previous authentication context
- Since:
- 2.14
 
- 
isAnonymous2public static boolean isAnonymous2(@NonNull org.springframework.security.core.Authentication authentication) Checks if the given authentication is anonymous by checking its class.- Since:
- 2.266
- See Also:
 
- 
isAnonymousDeprecated.
 
- 
SYSTEM2