aboutsummaryrefslogtreecommitdiff
path: root/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
diff options
context:
space:
mode:
authorThomas Lenz <tlenz@iaik.tugraz.at>2015-08-14 13:53:00 +0200
committerThomas Lenz <tlenz@iaik.tugraz.at>2015-08-14 13:53:00 +0200
commit456513332389b2dbb7a6d1461f77dda9b7393050 (patch)
tree4d6799366db46f83bb9eb0f7a611d8a08006b697 /id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
parent5a15347217fbc8a0b2c1083579f70e527da6f3b5 (diff)
downloadmoa-id-spss-456513332389b2dbb7a6d1461f77dda9b7393050.tar.gz
moa-id-spss-456513332389b2dbb7a6d1461f77dda9b7393050.tar.bz2
moa-id-spss-456513332389b2dbb7a6d1461f77dda9b7393050.zip
use old ConfigTool
Diffstat (limited to 'id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java')
-rw-r--r--id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java180
1 files changed, 134 insertions, 46 deletions
diff --git a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
index 04715027a..45674a283 100644
--- a/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
+++ b/id/ConfigWebTool/src/main/java/at/gv/egovernment/moa/id/configuration/struts/action/BasicOAAction.java
@@ -36,13 +36,18 @@ import java.util.Map;
import org.apache.log4j.Logger;
+import edu.emory.mathcs.backport.java.util.Arrays;
+
+import at.gv.egiz.components.configuration.meta.api.ConfigurationStorageException;
import at.gv.egovernment.moa.id.auth.builder.LoginFormBuilder;
-import at.gv.egovernment.moa.id.commons.db.ConfigurationDBRead;
-import at.gv.egovernment.moa.id.commons.db.ConfigurationDBUtils;
-import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;
-import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication;
+import at.gv.egovernment.moa.id.commons.config.ConfigurationMigrationUtils;
+import at.gv.egovernment.moa.id.commons.config.MOAIDConfigurationConstants;
+import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.MOAIDConfiguration;
+import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.OnlineApplication;
+import at.gv.egovernment.moa.id.commons.db.dao.config.deprecated.STORK;
import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase;
import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
+import at.gv.egovernment.moa.id.commons.utils.KeyValueUtils;
import at.gv.egovernment.moa.id.commons.validation.ValidationHelper;
import at.gv.egovernment.moa.id.config.webgui.exception.ConfigurationException;
import at.gv.egovernment.moa.id.configuration.Constants;
@@ -100,10 +105,10 @@ public class BasicOAAction extends BasicAction {
OnlineApplication onlineapplication = null;
if (authUser.isAdmin())
- onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid);
+ onlineapplication = configuration.getDbRead().getOnlineApplication(oaid);
else {
- userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID());
+ userdb = configuration.getUserManagement().getUserWithID(authUser.getUserID());
if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null && !userdb.isIsMailAddressVerified()) {
log.info("Online-Applikation managemant disabled. Mail address is not verified.");
@@ -114,10 +119,10 @@ public class BasicOAAction extends BasicAction {
}
// TODO: change to direct Database operation
- List<OnlineApplication> oas = userdb.getOnlineApplication();
- for (OnlineApplication oa : oas) {
- if (oa.getHjid() == oaid) {
- onlineapplication = oa;
+ List<String> oas = userdb.getOnlineApplication();
+ for (String oa : oas) {
+ if (oa.equals(oaid)) {
+ onlineapplication = configuration.getDbRead().getOnlineApplication(oaid);
break;
}
}
@@ -173,7 +178,7 @@ public class BasicOAAction extends BasicAction {
UserDatabase userdb = null;
if (onlineapplication.getHjid() != null)
- userdb = ConfigurationDBRead.getUsersWithOADBID(onlineapplication.getHjid());
+ userdb = configuration.getUserManagement().getUsersWithOADBID(onlineapplication.getHjid());
if (userdb != null && !userdb.isIsAdmin()) {
try {
@@ -197,27 +202,27 @@ public class BasicOAAction extends BasicAction {
throw new BasicOAActionException(error, Constants.STRUTS_ERROR_VALIDATION);
}
- //set metadata reload flag if reload is required
-
- if (getPvp2OA() != null && getPvp2OA().getMetaDataURL() != null) {
-
- try {
- if (isMetaDataRefreshRequired
- || !getPvp2OA().getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())
- || getPvp2OA().getFileUpload() != null
- || getPvp2OA().isReLoad()) {
-
- log.debug("Set PVP2 Metadata refresh flag.");
- MOAIDConfiguration moaconfig = ConfigurationDBRead.getMOAIDConfiguration();
- moaconfig.setPvp2RefreshItem(new Date());
- ConfigurationDBUtils.saveOrUpdate(moaconfig);
-
- }
- } catch (Throwable e) {
- log.info("Found no MetadataURL in OA-Databaseconfig!", e);
- }
-
- }
+// //set metadata reload flag if reload is required
+//
+// if (getPvp2OA() != null && getPvp2OA().getMetaDataURL() != null) {
+//
+// try {
+// if (isMetaDataRefreshRequired
+// || !getPvp2OA().getMetaDataURL().equals(onlineapplication.getAuthComponentOA().getOAPVP2().getMetadataURL())
+// || getPvp2OA().getFileUpload() != null
+// || getPvp2OA().isReLoad()) {
+//
+// log.debug("Set PVP2 Metadata refresh flag.");
+// MOAIDConfiguration moaconfig = configuration.getDbRead().getMOAIDConfiguration();
+// moaconfig.setPvp2RefreshItem(new Date());
+// ConfigurationDBUtils.saveOrUpdate(moaconfig);
+//
+// }
+// } catch (Throwable e) {
+// log.info("Found no MetadataURL in OA-Databaseconfig!", e);
+// }
+//
+// }
return onlineapplication;
}
@@ -242,7 +247,7 @@ public class BasicOAAction extends BasicAction {
}
session.setAttribute(Constants.SESSION_FORMID, null);
- UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID());
+ UserDatabase userdb = configuration.getUserManagement().getUserWithID(authUser.getUserID());
if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null && !userdb.isIsMailAddressVerified()) {
log.info("Online-Applikation managemant disabled. Mail address is not verified.");
throw new BasicOAActionException(
@@ -292,7 +297,7 @@ public class BasicOAAction extends BasicAction {
} else {
if (oaid == -1) {
- List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications();
+ List<OnlineApplication> oaList = configuration.getDbRead().getAllOnlineApplications();
if (oaList != null) {
for (OnlineApplication el : oaList) {
@@ -303,7 +308,7 @@ public class BasicOAAction extends BasicAction {
}
if (onlineapplication == null) {
- onlineapplication = ConfigurationDBRead.getOnlineApplication(oaidentifier);
+ onlineapplication = configuration.getDbRead().getOnlineApplication(oaidentifier);
}
setNewOA(true);
@@ -316,18 +321,18 @@ public class BasicOAAction extends BasicAction {
}
} else {
- onlineapplication = ConfigurationDBRead.getOnlineApplication(oaid);
+ onlineapplication = configuration.getDbRead().getOnlineApplication(oaid);
if (!oaidentifier.equals(onlineapplication.getPublicURLPrefix())) {
OnlineApplication dbOA = null;
- List<OnlineApplication> oaList = ConfigurationDBRead.getAllOnlineApplications();
+ List<OnlineApplication> oaList = configuration.getDbRead().getAllOnlineApplications();
for (OnlineApplication el : oaList) {
if (el.getPublicURLPrefix().startsWith(oaidentifier) )
dbOA = el;
}
if (dbOA == null)
- dbOA = ConfigurationDBRead.getOnlineApplication(oaidentifier);
+ dbOA = configuration.getDbRead().getOnlineApplication(oaidentifier);
if ( (dbOA != null && !dbOA.getHjid().equals(oaid))) {
log.info("The OAIdentifier is not unique");
@@ -376,7 +381,7 @@ public class BasicOAAction extends BasicAction {
}
session.setAttribute(Constants.SESSION_FORMID, null);
- UserDatabase userdb = ConfigurationDBRead.getUserWithID(authUser.getUserID());
+ UserDatabase userdb = configuration.getUserManagement().getUserWithID(authUser.getUserID());
if (!authUser.isAdmin() && userdb.isIsMailAddressVerified() != null && !userdb.isIsMailAddressVerified()) {
log.info("Online-Applikation managemant disabled. Mail address is not verified.");
throw new BasicOAActionException(
@@ -426,23 +431,23 @@ public class BasicOAAction extends BasicAction {
try {
if (dboa.isIsNew()) {
if (!authUser.isAdmin()) {
- UserDatabase user = ConfigurationDBRead.getUserWithID(authUser.getUserID());
+ UserDatabase user = configuration.getUserManagement().getUserWithID(authUser.getUserID());
- List<OnlineApplication> useroas = user.getOnlineApplication();
- if (useroas == null) useroas = new ArrayList<OnlineApplication>();
+ List<String> useroas = user.getOnlineApplication();
+ if (useroas == null) useroas = new ArrayList<String>();
- useroas.add(dboa);
- ConfigurationDBUtils.saveOrUpdate(user);
+ useroas.add(String.valueOf(dboa.getHjid()));
+ configuration.getUserManagement().saveOrUpdate(user);
} else {
if (persistOA)
- ConfigurationDBUtils.save(dboa);
+ save(dboa);
}
} else
if (persistOA)
- ConfigurationDBUtils.saveOrUpdate(dboa);
+ save(dboa);
} catch (MOADatabaseException e) {
log.warn("Online-Application can not be stored.", e);
@@ -452,6 +457,89 @@ public class BasicOAAction extends BasicAction {
return null;
}
+ protected void save(OnlineApplication oa) throws MOADatabaseException {
+ try {
+ STORK storkConfig = null;
+ try {
+ MOAIDConfiguration moaidConfig =
+ ConfigurationProvider.getInstance().getDbRead().getMOAIDConfiguration();
+
+ storkConfig = moaidConfig.getAuthComponentGeneral().getForeignIdentities().getSTORK();
+
+ } catch (Exception e) {
+
+ }
+
+ log.debug("JaxB to Key/Value configuration transformation started ...");
+ Map<String, String> keyValueConfig =
+ ConfigurationMigrationUtils.convertHyberJaxBOnlineApplicationToKeyValue(oa, storkConfig);
+
+ log.debug("JaxB to Key/Value configuration transformation finished. Start Key/Value storage process ...");
+
+ String serviceIdentifier = keyValueConfig.get(MOAIDConfigurationConstants.PREFIX_SERVICES);
+ if (MiscUtil.isEmpty(serviceIdentifier)) {
+ log.info("Use default ServiceIdentifier.");
+ serviceIdentifier = MOAIDConfigurationConstants.PREFIX_OA;
+ }
+
+ if (oa.getHjid() == null) {
+ log.debug("No hjID -> find new Service ID ...");
+ String hjID = configuration.getConfigModule().buildArrayIdentifier(
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES + "." + serviceIdentifier, 0, keyValueConfig);
+ log.debug("Find new hjID: " + hjID + " for service: " + oa.getPublicURLPrefix());
+ oa.setHjid(Long.valueOf(hjID));
+
+ }
+
+ Map<String, String> absolutKeyValue = KeyValueUtils.makeKeysAbsolut(
+ keyValueConfig,
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES + "." + serviceIdentifier + "." + String.valueOf(oa.getHjid()),
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES);
+
+ configuration.getConfigModule().storeChanges(absolutKeyValue, null, null);
+
+ log.info("MOA-ID Service Key/Value configuration successfull stored.");
+
+
+ } catch (ConfigurationStorageException | at.gv.egiz.components.configuration.api.ConfigurationException e) {
+ log.warn("MOAID Configuration can not be stored in Database", e);
+ throw new MOADatabaseException(e);
+
+ }
+
+ }
+
+ protected boolean delete(OnlineApplication onlineapplication) {
+ try {
+ log.debug("JaxB to Key/Value configuration transformation started ...");
+ Map<String, String> keyValueConfig =
+ ConfigurationMigrationUtils.convertHyberJaxBOnlineApplicationToKeyValue(onlineapplication, null);
+
+ log.debug("JaxB to Key/Value configuration transformation finished. Start Key/Value storage process ...");
+
+ String serviceIdentifier = keyValueConfig.get(MOAIDConfigurationConstants.PREFIX_SERVICES);
+ if (MiscUtil.isEmpty(serviceIdentifier)) {
+ log.info("Use default ServiceIdentifier.");
+ serviceIdentifier = MOAIDConfigurationConstants.PREFIX_OA;
+ }
+
+ String deleteServiceKey =
+ MOAIDConfigurationConstants.PREFIX_MOAID_SERVICES + "." + serviceIdentifier + "." + String.valueOf(onlineapplication.getHjid()) + ".*";
+
+ configuration.getConfigModule().storeChanges(null, null, Arrays.asList(new String[]{deleteServiceKey}));
+
+ log.info("MOA-ID Service Key/Value configuration successfull stored.");
+ return true;
+
+ } catch (ConfigurationStorageException e) {
+ log.warn("MOAID Configuration can not be stored in Database", e);
+
+ }
+
+ return false;
+
+ }
+
public String bkuFramePreview() {
String preview = null;