An implementation of SessionStore
that relies on the Infinispan Java Client.
Warning
|
This module has Tech Preview status, this means the API can change between versions. |
Getting started
To use this module, add the following to the dependencies section of your Maven POM file:
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web-sstore-infinispan</artifactId>
<version>4.2.0.CR1</version>
</dependency>
Or, if you use Gradle:
compile 'io.vertx:vertx-web-sstore-infinispan:4.2.0.CR1'
Using
If this session store is the only one you have in your dependencies, you can initialize it in a generic way:
JsonObject config = new JsonObject()
.put("servers", new JsonArray()
.add(new JsonObject()
.put("host", "server1.datagrid.mycorp.int")
.put("username", "foo")
.put("password", "bar"))
.add(new JsonObject()
.put("host", "server2.datagrid.mycorp.int")
.put("username", "foo")
.put("password", "bar"))
);
SessionStore store = SessionStore.create(vertx, config);
SessionHandler sessionHandler = SessionHandler.create(store);
router.route().handler(sessionHandler);
Otherwise, use the InfinispanSessionStore
type explicitely:
JsonObject config = new JsonObject()
.put("servers", new JsonArray()
.add(new JsonObject()
.put("host", "server1.datagrid.mycorp.int")
.put("username", "foo")
.put("password", "bar"))
.add(new JsonObject()
.put("host", "server2.datagrid.mycorp.int")
.put("username", "foo")
.put("password", "bar"))
);
InfinispanSessionStore store = InfinispanSessionStore.create(vertx, config);
SessionHandler sessionHandler = SessionHandler.create(store);
router.route().handler(sessionHandler);
Configuring
Config entries
The root entries are:
-
servers
: mandatory, a JSON array of server definitions (see below) -
cacheName
: optional, the name of the cache used to store session data (defaults tovertx-web.sessions
) -
retryTimeout
: optional, the retry timeout value in milli-seconds used by the session handler when it retrieves a value from the store (defaults to5000
)
The entries for a server definition are:
-
uri
: optional, a Hot Rod URI -
host
: optional (defaults tolocalhost
) -
port
: optional (defaults to11222
) -
clientIntelligence
: optional (one ofBASIC
,TOPOLOGY_AWARE
,HASH_DISTRIBUTION_AWARE
) -
username
: mandatory -
password
: mandatory -
realm
: optional (defaults todefault
) -
saslMechanism
: optional (defaults toDIGEST-MD5
) -
saslQop
: optional (one ofAUTH
,AUTH_INT
,AUTH_CONF
)
Important
|
If the uri entry is set, the others are ignored.
|
Custom Infinispan Client
For advanced configuration requirements, you can provide a custom RemoteCacheManager
:
InfinispanSessionStore sessionStore = InfinispanSessionStore.create(vertx, config, remoteCacheManager);