diff --git a/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceCacheProvider.java b/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceCacheProvider.java index 90c8a4438a5..efffcdb14c4 100644 --- a/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceCacheProvider.java +++ b/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceCacheProvider.java @@ -82,6 +82,9 @@ public void create() { // CouchbaseEntryManagerFactory.PERSISTENCE_TYPE skipRemoveBeforePut = "couchbase".equals(persistenceType); attemptUpdateBeforeInsert = "sql".equals(persistenceType); + if (cacheConfiguration.getNativePersistenceConfiguration().isDisableAttemptUpdateBeforeInsert()) { + attemptUpdateBeforeInsert = false; + } log.info("Created NATIVE_PERSISTENCE cache provider. `baseDn`: " + baseDn); } catch (Exception e) { diff --git a/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceConfiguration.java b/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceConfiguration.java index dd810a6b705..dd3efc3d096 100644 --- a/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceConfiguration.java +++ b/jans-core/cache/src/main/java/io/jans/service/cache/NativePersistenceConfiguration.java @@ -26,6 +26,9 @@ public class NativePersistenceConfiguration implements Serializable { @XmlElement(name = "deleteExpiredOnGetRequest") private boolean deleteExpiredOnGetRequest = false; + @XmlElement(name = "disableAttemptUpdateBeforeInsert") + private boolean disableAttemptUpdateBeforeInsert = false; + @JsonIgnore private String baseDn; @@ -53,7 +56,15 @@ public void setDeleteExpiredOnGetRequest(boolean deleteExpiredOnGetRequest) { this.deleteExpiredOnGetRequest = deleteExpiredOnGetRequest; } - public String getBaseDn() { + public boolean isDisableAttemptUpdateBeforeInsert() { + return disableAttemptUpdateBeforeInsert; + } + + public void setDisableAttemptUpdateBeforeInsert(boolean disableAttemptUpdateBeforeInsert) { + this.disableAttemptUpdateBeforeInsert = disableAttemptUpdateBeforeInsert; + } + + public String getBaseDn() { return baseDn; } @@ -64,6 +75,8 @@ public void setBaseDn(String baseDn) { @Override public String toString() { return "NativePersistenceConfiguration [defaultPutExpiration=" + defaultPutExpiration + ", defaultCleanupBatchSize=" - + defaultCleanupBatchSize + ", deleteExpiredOnGetRequest=" + deleteExpiredOnGetRequest + ", baseDn=" + baseDn + "]"; + + defaultCleanupBatchSize + ", deleteExpiredOnGetRequest=" + deleteExpiredOnGetRequest + + ", disableAttemptUpdateBeforeInsert=" + disableAttemptUpdateBeforeInsert + + ", baseDn=" + baseDn + "]"; } }