Custom Session ID Generator Example
Create the custom ID generator
This code snippet creates a simple custom session ID generator.
#include <rwsf/servlet/http/HttpSessionIdGenerator.h>
#include <string>
class CustomSessionIdGenerator : public rwsf::HttpSessionIdGenerator //1
{ public:
std::string generateSessionId();
std::string CustomSessionIdGenerator::generateSessionId() //2
return "Custom Session ID";
//1 Create a new class derived from rwsf::HttpSessionIdGenerator
//2 Override the abstract method generateSessionId()
//3 Define the create function using the macro RWSF_DEFINE_HTTP_SESSION_ID_GENERATOR()
Compile the custom generator into a loadable shared library placed in the search path of the HydraExpress Agent, for example,
Register the custom generator
Next, register the custom generator by adding the rwsf:httpSessionIdGenerator property to the servlet handler under the http handler-chain in the agent configuration file rwagent.xml, located by default in <installdir>\conf.
The value defined is the library name followed by the create function name separated by a period, CustomLib.createCustomSessionIdGenerator in this example. The following code snippet demonstrates the relevant rwagent.xml file modifications:
<rwsf:handler-chain name="http">
<rwsf:handler name="httpServer"
<rwsf:handler name="servlet"
<rwsf:property name="rwsf:configDir" value="${RWSF_CONF}/servlet"/>
<rwsf:property name="rwsf:webappsDir" value="${RWSF_HOME}/apps/servlets"/>
<rwsf:property name="rwsf:librarySuffix" value="19012d"/>
<rwsf:property name="rwsf:debugLibrarySuffix" value="19015d"/>
<rwsf:property name="rwsf:httpSessionIdGenerator"