Allow easier subclassing
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
index 9afbbb2..66b19a2 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DBPasswordPullActions.java
@@ -29,7 +29,6 @@
 import org.apache.syncope.common.lib.to.EntityTO;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
-import org.apache.syncope.common.lib.types.ConnConfProperty;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.ConnInstance;
 import org.apache.syncope.core.persistence.api.entity.user.User;
@@ -51,16 +50,16 @@
  */
 public class DBPasswordPullActions implements PullActions {
 
-    private static final Logger LOG = LoggerFactory.getLogger(DBPasswordPullActions.class);
+    protected static final Logger LOG = LoggerFactory.getLogger(DBPasswordPullActions.class);
 
-    private static final String CLEARTEXT = "CLEARTEXT";
+    protected static final String CLEARTEXT = "CLEARTEXT";
 
     @Autowired
-    private UserDAO userDAO;
+    protected UserDAO userDAO;
 
-    private String encodedPassword;
+    protected String encodedPassword;
 
-    private CipherAlgorithm cipher;
+    protected CipherAlgorithm cipher;
 
     @Transactional(readOnly = true)
     @Override
@@ -86,11 +85,11 @@
         if (anyUR instanceof UserUR) {
             PasswordPatch modPassword = ((UserUR) anyUR).getPassword();
             parseEncodedPassword(Optional.ofNullable(modPassword)
-                .map(AbstractPatchItem::getValue).orElse(null), profile.getConnector());
+                    .map(AbstractPatchItem::getValue).orElse(null), profile.getConnector());
         }
     }
 
-    private void parseEncodedPassword(final String password, final Connector connector) {
+    protected void parseEncodedPassword(final String password, final Connector connector) {
         if (password != null) {
             ConnInstance connInstance = connector.getConnInstance();
 
@@ -107,14 +106,12 @@
         }
     }
 
-    private static String getCipherAlgorithm(final ConnInstance connInstance) {
-        Optional<ConnConfProperty> cipherAlgorithm = connInstance.getConf().stream().
+    protected String getCipherAlgorithm(final ConnInstance connInstance) {
+        return connInstance.getConf().stream().
                 filter(property -> "cipherAlgorithm".equals(property.getSchema().getName())
-                && property.getValues() != null && !property.getValues().isEmpty()).findFirst();
-
-        return cipherAlgorithm.isPresent()
-                ? (String) cipherAlgorithm.get().getValues().get(0)
-                : CLEARTEXT;
+                && property.getValues() != null && !property.getValues().isEmpty()).findFirst().
+                map(cipherAlgorithm -> cipherAlgorithm.getValues().get(0).toString()).
+                orElse(CLEARTEXT);
     }
 
     @Transactional
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
index cb4703c..a408fb9 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/LDAPPasswordPullActions.java
@@ -20,9 +20,7 @@
 
 import java.util.Base64;
 import java.util.Optional;
-
 import javax.xml.bind.DatatypeConverter;
-
 import org.apache.syncope.common.lib.request.AbstractPatchItem;
 import org.apache.syncope.common.lib.request.AnyCR;
 import org.apache.syncope.common.lib.request.AnyUR;
@@ -30,12 +28,12 @@
 import org.apache.syncope.common.lib.request.UserCR;
 import org.apache.syncope.common.lib.request.UserUR;
 import org.apache.syncope.common.lib.to.EntityTO;
+import org.apache.syncope.common.lib.to.ProvisioningReport;
 import org.apache.syncope.common.lib.to.UserTO;
 import org.apache.syncope.common.lib.types.CipherAlgorithm;
 import org.apache.syncope.core.persistence.api.dao.UserDAO;
 import org.apache.syncope.core.persistence.api.entity.user.User;
 import org.apache.syncope.core.provisioning.api.pushpull.ProvisioningProfile;
-import org.apache.syncope.common.lib.to.ProvisioningReport;
 import org.apache.syncope.core.provisioning.api.pushpull.PullActions;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.quartz.JobExecutionException;
@@ -53,11 +51,11 @@
     protected static final Logger LOG = LoggerFactory.getLogger(LDAPPasswordPullActions.class);
 
     @Autowired
-    private UserDAO userDAO;
+    protected UserDAO userDAO;
 
-    private String encodedPassword;
+    protected String encodedPassword;
 
-    private CipherAlgorithm cipher;
+    protected CipherAlgorithm cipher;
 
     @Transactional(readOnly = true)
     @Override
@@ -86,7 +84,7 @@
         }
     }
 
-    private void parseEncodedPassword(final String password) {
+    protected void parseEncodedPassword(final String password) {
         if (password != null && password.startsWith("{")) {
             int closingBracketIndex = password.indexOf('}');
             String digest = password.substring(1, password.indexOf('}')).toUpperCase();