Interface RestSubjectResolver

Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface RestSubjectResolver
Resolves the current security subject from a REST request.
  • Method Details

    • resolveSubject

      Optional<com.svenruppert.jsentinel.authorization.api.JSentinelSubject> resolveSubject(RestRequest request)
      Resolves the current subject.
      Parameters:
      request - request
      Returns:
      subject, or empty if no subject is authenticated
    • resolveSessionMetadata

      default Optional<com.svenruppert.jsentinel.session.SessionMetadata> resolveSessionMetadata(RestRequest request)
      Resolves session metadata for the current request.

      The default returns Optional.empty() so existing implementations keep working. Implementations that want the REST filters to enforce idle / absolute lifetime via SessionPolicy.evaluate(SessionMetadata) should override this and return a populated record built from their token store's metadata (creation timestamp, last-activity timestamp).

      Parameters:
      request - request
      Returns:
      metadata for the current request, or empty when the resolver doesn't track session lifetime
    • resolveJSentinelVersionContext

      default Optional<RestJSentinelVersionContext> resolveJSentinelVersionContext(RestRequest request)
      Resolves the session's security-version snapshot for RestJSentinelVersionFilter.

      The default returns Optional.empty() so existing implementations keep working — the filter becomes a no-op for them. Override this when your token / session store records the JSentinelVersion captured at login time and you want drifted sessions refused with 401 + WWW-Authenticate: SessionStale.

      Parameters:
      request - request
      Returns:
      security-version context, or empty when the resolver doesn't track per-session versions