Package org.springframework.security.core.context

# Interface SecurityContextHolderStrategy

All Known Implementing Classes:
  `ListeningSecurityContextHolderStrategy`

public interface SecurityContextHolderStrategy
A strategy for storing security context information against a thread.

The preferred strategy is loaded by `SecurityContextHolder`.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearContext()`
Clears the current context.
`SecurityContext`
`createEmptyContext()`
Creates a new, empty context implementation, for use by `SecurityContextRepository` implementations, when creating a new context for the first time.
`SecurityContext`
`getContext()`
Obtains the current context.
`default Supplier<SecurityContext>`
`getDeferredContext()`
Obtains a `Supplier` that returns the current context.
`void`
`setContext(SecurityContext context)`
Sets the current context.
`default void`
`setDeferredContext(Supplier<SecurityContext> deferredContext)`
Sets a `Supplier` that will return the current context.

## Method Details

### clearContext

void clearContext()
Clears the current context.

### getContext

SecurityContext getContext()
Obtains the current context.

Returns:
  a context (never `null` - create a default implementation if necessary)

### getDeferredContext

default Supplier<SecurityContext> getDeferredContext()
Obtains a `Supplier` that returns the current context.

Returns:
  a `Supplier` that returns the current context (never `null` - create a default implementation if necessary)
Since:
  5.8

### setContext

void setContext(SecurityContext context)
Sets the current context.

Parameters:
  `context` - to the new argument (should never be `null`, although implementations must check if `null` has been passed and throw an `IllegalArgumentException` in such cases)

### setDeferredContext

default void setDeferredContext(Supplier<SecurityContext> deferredContext)
Sets a `Supplier` that will return the current context. Implementations can override the default to avoid invoking `Supplier.get()`.

Parameters:
  `deferredContext` - a `Supplier` that returns the `SecurityContext`
Since:
  5.8

### createEmptyContext

SecurityContext createEmptyContext()
Creates a new, empty context implementation, for use by `SecurityContextRepository` implementations, when creating a new context for the first time.

Returns:
  the empty context.