[java-identity-provider] branch master updated: IDP-1634 - Add configuration for more Persistent NameID storage control

Scott Cantor cantor.2 at osu.edu
Mon Jul 6 17:55:54 UTC 2020


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=500508874f2c753bd84c528143b0444a146f0379

The following commit(s) were added to refs/heads/master by this push:
       new  500508874 IDP-1634 - Add configuration for more Persistent NameID storage control
500508874 is described below

commit 500508874f2c753bd84c528143b0444a146f0379
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jul 6 13:55:56 2020 -0400

    IDP-1634 - Add configuration for more Persistent NameID storage control
    
    https://issues.shibboleth.net/jira/browse/IDP-1634
---
 .../idp/attribute/impl/JDBCPairwiseIdStore.java        | 11 ++++++-----
 .../main/resources/system/conf/saml-nameid-system.xml  | 18 +++++++++++++++++-
 2 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
index bcf23320e..b32a77b2e 100644
--- a/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
+++ b/idp-attribute-impl/src/main/java/net/shibboleth/idp/attribute/impl/JDBCPairwiseIdStore.java
@@ -27,7 +27,6 @@ import java.sql.Types;
 import java.time.Duration;
 import java.time.Instant;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
@@ -44,6 +43,8 @@ import net.shibboleth.utilities.java.support.annotation.constraint.NonNegative;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -147,7 +148,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
     /** Constructor. */
     public JDBCPairwiseIdStore() {
         transactionRetry = 3;
-        retryableErrors = Arrays.asList("23000", "23505");
+        retryableErrors = List.of("23000", "23505");
         queryTimeout = Duration.ofSeconds(5);
         verifyDatabase = true;
         
@@ -221,7 +222,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
     public void setTransactionRetries(@NonNegative final int retries) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
-        transactionRetry = Constraint.isGreaterThanOrEqual(0, retries, "Timeout must be greater than or equal to 0");
+        transactionRetry = Constraint.isGreaterThanOrEqual(0, retries, "Retries must be greater than or equal to 0");
     }
 
     /**
@@ -230,7 +231,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
      * 
      * @return retryable messages
      */
-    @Nonnull @NonnullElements public Collection<String> getRetryableErrors() {
+    @Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<String> getRetryableErrors() {
         return retryableErrors;
     }
     
@@ -243,7 +244,7 @@ public class JDBCPairwiseIdStore extends AbstractInitializableComponent implemen
     public void setRetryableErrors(@Nullable @NonnullElements final Collection<String> errors) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
         
-        retryableErrors = new ArrayList<>(StringSupport.normalizeStringCollection(errors));
+        retryableErrors = List.copyOf(StringSupport.normalizeStringCollection(errors));
     }
     
     /**
diff --git a/idp-conf/src/main/resources/system/conf/saml-nameid-system.xml b/idp-conf/src/main/resources/system/conf/saml-nameid-system.xml
index 6f69cdaa9..1f06c5c8d 100644
--- a/idp-conf/src/main/resources/system/conf/saml-nameid-system.xml
+++ b/idp-conf/src/main/resources/system/conf/saml-nameid-system.xml
@@ -66,7 +66,23 @@
         p:encoding="#{ T(net.shibboleth.idp.attribute.impl.ComputedPairwiseIdStore.Encoding).%{idp.persistentId.encoding:BASE64} }" />
 
     <bean id="shibboleth.StoredPersistentIdGenerator" parent="shibboleth.JDBCPersistentIdStore" lazy-init="true"
-        p:dataSource="#{getObject('%{idp.persistentId.dataSource:undefined}'.trim())}" />
+            p:dataSource="#{getObject('%{idp.persistentId.dataSource:undefined}'.trim())}"
+            p:queryTimeout="%{idp.persistentId.queryTimeout:PT5S}"
+            p:transactionRetries="%{idp.persistentId.transactionRetries:3}"
+            p:verifyDatabase="%{idp.persistentId.verifyDatabase:true}"
+            p:tableName="#{'%{idp.persistentId.tableName:shibpid}'.trim()}"
+            p:localEntityColumn="#{'%{idp.persistentId.localEntityColumn:localEntity}'.trim()}"
+            p:peerEntityColumn="#{'%{idp.persistentId.peerEntityColumn:peerEntity}'.trim()}"
+            p:principalNameColumn="#{'%{idp.persistentId.principalNameColumn:principalName}'.trim()}"
+            p:sourceIdColumn="#{'%{idp.persistentId.sourceIdColumn:localId}'.trim()}"
+            p:persistentIdColumn="#{'%{idp.persistentId.persistentIdColumn:persistentId}'.trim()}"
+            p:peerProvidedIdColumn="#{'%{idp.persistentId.peerProvidedIdColumn:peerProvidedId}'.trim()}"
+            p:createTimeColumn="#{'%{idp.persistentId.createTimeColumn:creationDate}'.trim()}"
+            p:deactivationTimeColumn="#{'%{idp.persistentId.deactivationTimeColumn:deactivationDate}'.trim()}">
+        <property name="retryableErrors">
+            <bean parent="shibboleth.CommaDelimStringArray" c:_0="#{'%{idp.persistentId.retryableErrors:}'.trim()}" />
+        </property>
+    </bean>    
     
     <!-- Parent bean for users to configure a custom ID store rather than a data source only. -->
     <bean id="shibboleth.JDBCPersistentIdStore" abstract="true"

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list