Package org.opends.server.api
Record Class ResourceLimits
java.lang.Object
java.lang.Record
org.opends.server.api.ResourceLimits
- Record Components:
sizeLimit- The maximum number of entries that should be returnedtimeLimitSec- The maximum length of time in seconds that should be allowed for a searchidleTimeLimitSec- The idle time limit for the connection in secondslookThroughLimit- The maximum number of records that the directory server should "look through" in the course of processing a search request. It is an approximation of the computational cost of processing a search request.maxCandidateSetSize- The maximum number of candidate entry IDs the server may retrieve from an index during a search
public record ResourceLimits(int sizeLimit, int timeLimitSec, int idleTimeLimitSec, int lookThroughLimit, int maxCandidateSetSize)
extends Record
All resource limits for a user.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ResourceLimitsAResourceLimitsthat is used when no other resource limits are provided to AuthenticationInfo objects.static final ResourceLimitsAResourceLimitswith every value set to unlimited. -
Constructor Summary
ConstructorsConstructorDescriptionResourceLimits(int sizeLimit, int timeLimitSec, int idleTimeLimitSec, int lookThroughLimit, int maxCandidateSetSize) Creates an instance of aResourceLimitsrecord class. -
Method Summary
Modifier and TypeMethodDescriptionapplyRequestLimits(SearchRequest request) Merges this ResourceLimits with the provided limits.applyUserLimits(Entry user) Return a ResourceLimits using overrides from a user entry, taking into account the limits from a search request.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.intReturns the value of theidleTimeLimitSecrecord component.booleanisSizeLimitExceeded(int numberOfEntries) Check if the number of entries has exceeded the size limit.intReturns the value of thelookThroughLimitrecord component.intReturns the value of themaxCandidateSetSizerecord component.intReturns the value of thesizeLimitrecord component.intReturns the value of thetimeLimitSecrecord component.final StringtoString()Returns a string representation of this record class.withLookThroughLimit(int newLookThroughLimit) Return a copy of this resource limits with an updated look through limit.withMaxCandidateSetSize(int newMaxCandidateSetSize) Return a copy of this resource limits with an updated maximum candidate size.
-
Field Details
-
NO_LIMITS
AResourceLimitswith every value set to unlimited. -
MIN_LIMITS
AResourceLimitsthat is used when no other resource limits are provided to AuthenticationInfo objects. At a minimum, the default server limits should be provided, but this is not always practical, in particular for unit tests, or when the resource limits on the authentication info object will not be read.This
ResourceLimitsobjects has every value set to the lowest possible limits. It acts as a canary / null-object allowing to quickly spot missing resource limits by quickly denying user operations. It is better than usingNO_LIMITSfor such users, limiting as much as possible the damage such "limitless" users can do in the server.
-
-
Constructor Details
-
ResourceLimits
public ResourceLimits(int sizeLimit, int timeLimitSec, int idleTimeLimitSec, int lookThroughLimit, int maxCandidateSetSize) Creates an instance of aResourceLimitsrecord class.- Parameters:
sizeLimit- the value for thesizeLimitrecord componenttimeLimitSec- the value for thetimeLimitSecrecord componentidleTimeLimitSec- the value for theidleTimeLimitSecrecord componentlookThroughLimit- the value for thelookThroughLimitrecord componentmaxCandidateSetSize- the value for themaxCandidateSetSizerecord component
-
-
Method Details
-
applyUserLimits
Return a ResourceLimits using overrides from a user entry, taking into account the limits from a search request.- Parameters:
user- The entry containing possible overrides.- Returns:
- the ResourceLimits
-
isSizeLimitExceeded
public boolean isSizeLimitExceeded(int numberOfEntries) Check if the number of entries has exceeded the size limit.- Parameters:
numberOfEntries- The number of entries that have been returned- Returns:
trueif the size limit has been exceeded,falseotherwise
-
applyRequestLimits
Merges this ResourceLimits with the provided limits.- Parameters:
request- The search request with size and time limits- Returns:
- the ResourceLimits
-
withMaxCandidateSetSize
Return a copy of this resource limits with an updated maximum candidate size.- Parameters:
newMaxCandidateSetSize- The new maximum candidate size.- Returns:
- The updated resource limits.
-
withLookThroughLimit
Return a copy of this resource limits with an updated look through limit.- Parameters:
newLookThroughLimit- The new look through limit.- Returns:
- The updated resource limits.
-
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with '=='. -
sizeLimit
public int sizeLimit()Returns the value of thesizeLimitrecord component.- Returns:
- the value of the
sizeLimitrecord component
-
timeLimitSec
public int timeLimitSec()Returns the value of thetimeLimitSecrecord component.- Returns:
- the value of the
timeLimitSecrecord component
-
idleTimeLimitSec
public int idleTimeLimitSec()Returns the value of theidleTimeLimitSecrecord component.- Returns:
- the value of the
idleTimeLimitSecrecord component
-
lookThroughLimit
public int lookThroughLimit()Returns the value of thelookThroughLimitrecord component.- Returns:
- the value of the
lookThroughLimitrecord component
-
maxCandidateSetSize
public int maxCandidateSetSize()Returns the value of themaxCandidateSetSizerecord component.- Returns:
- the value of the
maxCandidateSetSizerecord component
-