Package org.forgerock.openig.tools.am
Class AmService.Builder
- java.lang.Object
-
- org.forgerock.openig.tools.am.AmService.Builder
-
-
Constructor Summary
Constructors Constructor Description Builder(Handler amHandler, Clock clock, String agentId, String cookieName, AmVersion version, UriService uriService, AuthenticationService authenticationService, AsyncRefreshableSupplier<SsoToken,AuthenticationException> tokenProvider)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AmService
build()
Returns a newAmService
instance.AmService.Builder
enableNotifications(boolean enabled)
Enable or disable the notifications.AmService.Builder
notificationClientProvider(WebSocketClientProvider notificationClientProvider)
Specifies theWebSocketClientProvider
to use to manage notifications.AmService.Builder
notificationService(NotificationService notificationService)
Bind aNotificationService
instance to this builder.AmService.Builder
notificationServiceConnectionAttempts(Integer initialConnectionAttempts)
Specifies the number of Websocket connection attempts to try before failing the AmService creation.AmService.Builder
notificationServiceHeartbeat(Duration interval, ScheduledExecutorService executorService)
Set up heartbeats sent to AM to keep the connection busy.AmService.Builder
notificationServiceProxyOptions(ProxyOptions proxyOptions)
Specifies theProxyOptions
to use for the websocket connection.AmService.Builder
notificationServiceReconnectDelay(Duration delay)
Specifies the delay to wait between connection re-establishments when web-socket connection is lost (or cannot be acquired at startup).AmService.Builder
notificationServiceTls(ClientTlsOptions tlsOptions)
Specifies the TLS options to use for establishing a connection to the Web-socket endpoint.AmService.Builder
sessionCache(com.github.benmanes.caffeine.cache.Caffeine<Object,Object> caffeine, Duration maximumTimeout, DisconnectionStrategy disconnectionStrategy)
Specifies theCaffeine
cache for theCacheSessionService
.AmService.Builder
sessionIdleRefresh(boolean enabled, Duration interval)
Enable or disable the session idle refresh service and set the refresh interval.AmService.Builder
sessionProperties(Set<String> sessionProperties)
Set the session properties and return this builder.AmService.Builder
sessionService(SessionService sessionService)
Bind aSessionService
instance to this builder.
-
-
-
Constructor Detail
-
Builder
public Builder(Handler amHandler, Clock clock, String agentId, String cookieName, AmVersion version, UriService uriService, AuthenticationService authenticationService, AsyncRefreshableSupplier<SsoToken,AuthenticationException> tokenProvider)
-
-
Method Detail
-
enableNotifications
public AmService.Builder enableNotifications(boolean enabled)
Enable or disable the notifications.- Parameters:
enabled
-true
if the notifications should be enabled orfalse
otherwise.- Returns:
- this builder.
-
sessionIdleRefresh
public AmService.Builder sessionIdleRefresh(boolean enabled, Duration interval)
Enable or disable the session idle refresh service and set the refresh interval.- Parameters:
enabled
-true
if the session idle refresh should be enabled orfalse
otherwise.interval
- The interval between session idle refresh requests, when session idle refresh is enabled.- Returns:
- this builder.
-
sessionCache
public AmService.Builder sessionCache(com.github.benmanes.caffeine.cache.Caffeine<Object,Object> caffeine, Duration maximumTimeout, DisconnectionStrategy disconnectionStrategy)
Specifies theCaffeine
cache for theCacheSessionService
. If the cache is set tonull
, no cache will be used.- Parameters:
caffeine
- TheCaffeine
cache. If thecache
isnull
, then the cache will be disabled.maximumTimeout
- The maximum time to cache a session; can benull
.disconnectionStrategy
- The strategy to apply in case of notifications' disconnection.- Returns:
- this builder.
-
sessionService
public AmService.Builder sessionService(SessionService sessionService)
Bind aSessionService
instance to this builder.- Parameters:
sessionService
- service to be bound- Returns:
- this Builder
-
sessionProperties
public AmService.Builder sessionProperties(Set<String> sessionProperties)
Set the session properties and return this builder.- Parameters:
sessionProperties
- The session properties that will be requested from the sessionInfo endpoint of the session service.- Returns:
- this builder.
-
notificationServiceReconnectDelay
public AmService.Builder notificationServiceReconnectDelay(Duration delay)
Specifies the delay to wait between connection re-establishments when web-socket connection is lost (or cannot be acquired at startup).- Parameters:
delay
- reconnection delay used when notification service is disconnected- Returns:
- this builder.
-
notificationServiceHeartbeat
public AmService.Builder notificationServiceHeartbeat(Duration interval, ScheduledExecutorService executorService)
Set up heartbeats sent to AM to keep the connection busy. Specifies the interval between heartbeats sent to AM to keep the connection busy.- Parameters:
interval
- the duration between heartbeats.Duration.UNLIMITED
orDuration.ZERO
disable the feature.executorService
- theScheduledExecutorService
to use to schedule heartbeat tasks- Returns:
- this builder.
-
notificationServiceConnectionAttempts
public AmService.Builder notificationServiceConnectionAttempts(Integer initialConnectionAttempts)
Specifies the number of Websocket connection attempts to try before failing the AmService creation.- Parameters:
initialConnectionAttempts
- number of retries allowed to set up the first connection to the notification service- Returns:
- this builder.
-
notificationServiceTls
public AmService.Builder notificationServiceTls(ClientTlsOptions tlsOptions)
Specifies the TLS options to use for establishing a connection to the Web-socket endpoint.- Parameters:
tlsOptions
- options to use when establishing secure connection to the WS endpoint- Returns:
- this builder.
-
notificationClientProvider
public AmService.Builder notificationClientProvider(WebSocketClientProvider notificationClientProvider)
Specifies theWebSocketClientProvider
to use to manage notifications.- Parameters:
notificationClientProvider
- service provider for service to be bound- Returns:
- this builder.
-
notificationServiceProxyOptions
public AmService.Builder notificationServiceProxyOptions(ProxyOptions proxyOptions)
Specifies theProxyOptions
to use for the websocket connection.- Parameters:
proxyOptions
- theProxyOptions
to use for the websocket connection.- Returns:
- this builder.
-
notificationService
public AmService.Builder notificationService(NotificationService notificationService)
Bind aNotificationService
instance to this builder.- Parameters:
notificationService
- service to be bound- Returns:
- this Builder
-
-