Class ACL
- Direct Known Subclasses:
SidACL
- Author:
- Kohsuke Kawaguchi
-
Field Summary
FieldsModifier 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 Summary
Constructors -
Method Summary
Modifier 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.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:
-
ANONYMOUS
Sidthat 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:
-
SYSTEM2
public 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
-
SYSTEM
Deprecated.useSYSTEM2
-
-
Constructor Details
-
ACL
public ACL()
-
-
Method Details
-
checkPermission
Checks 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.
-
checkAnyPermission
Checks 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
-
hasPermission
Checks if the current security principal has this permission.- Returns:
- false if the user doesn't have the permission.
-
hasAnyPermission
Checks 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
-
hasPermission2
public 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
-
lambda2
public 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 ofhasPermission2(Authentication, Permission)- Returns:
- an adapter to that lambda
- Since:
- 2.266
-
lambda
Deprecated.- Since:
- 2.105
-
checkCreatePermission
Checks 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
-
hasCreatePermission2
public 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
-
checkCreatePermission
Checks 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
-
hasCreatePermission2
public 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
-
impersonate
Deprecated.- 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 asSYSTEM2body- an action to run with this alternate authentication in effect- Since:
- 2.266
-
impersonate
Deprecated.- 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)Safer variant ofimpersonate2(Authentication)that does not require a finally-block.- Parameters:
auth- authentication, such asSYSTEM2body- an action to run with this alternate authentication in effect (tryNotReallyRoleSensitiveCallable)- Throws:
T- Since:
- 2.266
-
impersonate
@Deprecated public static <V,T extends Exception> V impersonate(Authentication auth, hudson.remoting.Callable<V, T> body) throws TDeprecated.- 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
-
as
Deprecated.- Since:
- 2.14
-
as
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:
user- the user to impersonate.- Returns:
- the previous authentication context
- Since:
- 2.14
-
isAnonymous2
public 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:
-
isAnonymous
Deprecated.
-
SYSTEM2