[java-identity-provider COMMIT] in /trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl: StorageBack...

noreply at shibboleth.net noreply at shibboleth.net
Thu Aug 27 09:53:04 EDT 2015


Author: scantor
Date: Thu Aug 27 09:53:03 2015
New Revision: 7707

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7707&view=rev
Log:
IDP-594 - Rework conditional use of SP session features in session cache

Modified:
    trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java
    trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializer.java
    trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java

Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java?rev=7707&r1=7706&r2=7707&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java	(original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedIdPSession.java	Thu Aug 27 09:53:03 2015
@@ -319,7 +319,7 @@
     @Override
     @Nonnull @NonnullElements @NotLive @Unmodifiable public Set<SPSession> getSPSessions() {
         
-        if (sessionManager.isTrackSPSessions()) {
+        if (sessionManager.isTrackSPSessions() && sessionManager.storageServiceMeetsThreshold()) {
             // Check for any sparse/null values in the map, which need to be loaded before returning a complete set.
             final Iterator<Map.Entry<String, Optional<SPSession>>> entries =
                     getSPSessionMap().entrySet().iterator();
@@ -347,7 +347,7 @@
     /** {@inheritDoc} */
     @Override
     @Nullable public SPSession getSPSession(@Nonnull @NotEmpty final String serviceId) {
-        if (sessionManager.isTrackSPSessions()) {
+        if (sessionManager.isTrackSPSessions() && sessionManager.storageServiceMeetsThreshold()) {
             // Check existing map.
             SPSession result = super.getSPSession(serviceId);
             if (result != null) {
@@ -383,6 +383,11 @@
     @Override
     @Nullable public SPSession addSPSession(@Nonnull final SPSession spSession) throws SessionException {
         if (sessionManager.isTrackSPSessions()) {
+            if (!sessionManager.storageServiceMeetsThreshold()) {
+                log.info("Unable to add SP session due to to storage service limitations");
+                return null;
+            }
+            
             try {
                 // Store the record.
                 if (!saveSPSessionToStorage(spSession) && !sessionManager.isMaskStorageFailure()) {

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=7707&r1=7706&r2=7707&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 Aug 27 09:53:03 2015
@@ -122,13 +122,17 @@
             }
 
             if (sessionManager.isTrackSPSessions()) {
-                final Set<SPSession> services = instance.getSPSessions();
-                if (!services.isEmpty()) {
-                    gen.writeStartArray(SERVICE_ID_ARRAY_FIELD);
-                    for (final SPSession service : services) {
-                        gen.write(service.getId());
+                if (sessionManager.storageServiceMeetsThreshold()) {
+                    final Set<SPSession> services = instance.getSPSessions();
+                    if (!services.isEmpty()) {
+                        gen.writeStartArray(SERVICE_ID_ARRAY_FIELD);
+                        for (final SPSession service : services) {
+                            gen.write(service.getId());
+                        }
+                        gen.writeEnd();
                     }
-                    gen.writeEnd();
+                } else {
+                    log.info("Unable to serialize SP session due to to storage service limitations");
                 }
             }
 

Modified: trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java?rev=7707&r1=7706&r2=7707&view=diff
==============================================================================
--- trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java	(original)
+++ trunk/idp-session-impl/src/main/java/net/shibboleth/idp/session/impl/StorageBackedSessionManager.java	Thu Aug 27 09:53:03 2015

[... 109 lines stripped ...]


More information about the commits mailing list