[java-identity-provider COMMIT] /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedId...
noreply at shibboleth.net
noreply at shibboleth.net
Thu Nov 3 15:52:38 EDT 2016
Author: scantor
Date: Thu Nov 3 15:52:38 2016
New Revision: 8555
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8555&view=rev
Log:
IDP-1078 - StorageBackedIdPSessionSerializer is slow under heavy load
https://issues.shibboleth.net/jira/browse/IDP-1078
Modified:
trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java
Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java?rev=8555&r1=8554&r2=8555&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java (original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java Thu Nov 3 15:52:38 2016
@@ -25,13 +25,13 @@
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import javax.annotation.concurrent.ThreadSafe;
-import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonException;
import javax.json.JsonObject;
import javax.json.JsonReader;
import javax.json.JsonString;
import javax.json.JsonStructure;
+import javax.json.spi.JsonProvider;
import javax.json.stream.JsonGenerator;
import net.shibboleth.idp.authn.AuthenticationResult;
@@ -82,6 +82,8 @@
/** Object instance to overwrite with deserialization method. */
@Nullable private final StorageBackedIdPSession targetObject;
+ /** JsonProvider to be used for session serialization. */
+ @Nonnull private final JsonProvider jsonProvider;
/**
* Constructor.
*
@@ -92,6 +94,7 @@
@Nullable final StorageBackedIdPSession target) {
sessionManager = Constraint.isNotNull(manager, "SessionManager cannot be null");
targetObject = target;
+ jsonProvider = JsonProvider.provider();
}
/** {@inheritDoc} */
@@ -100,7 +103,7 @@
try {
final StringWriter sink = new StringWriter(128);
- final JsonGenerator gen = Json.createGenerator(sink);
+ final JsonGenerator gen = jsonProvider.createGenerator(sink);
gen.writeStartObject().write(CREATION_INSTANT_FIELD, instance.getCreationInstant())
.write(PRINCIPAL_NAME_FIELD, instance.getPrincipalName());
@@ -156,7 +159,7 @@
}
try {
- final JsonReader reader = Json.createReader(new StringReader(value));
+ final JsonReader reader = jsonProvider.createReader(new StringReader(value));
final JsonStructure st = reader.read();
if (!(st instanceof JsonObject)) {
throw new IOException("Found invalid data structure while parsing IdPSession");
More information about the commits
mailing list