Skip to content

Commit

Permalink
Merge branch 'release/1.8.5'
Browse files Browse the repository at this point in the history
  • Loading branch information
ghenzler committed Jun 27, 2016
2 parents 2933abd + d87f199 commit d9c3f32
Show file tree
Hide file tree
Showing 33 changed files with 1,653 additions and 285 deletions.
2 changes: 1 addition & 1 deletion accesscontroltool-bundle/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>biz.netcentric.cq.tools.accesscontroltool</groupId>
<artifactId>accesscontroltool</artifactId>
<version>1.8.4</version>
<version>1.8.5</version>
</parent>

<!-- ====================================================================== -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,11 @@ public interface AceService {
*
* @param session
* @param history
* @param newestConfigurations
* @param configurationFileContentsByFilename
* @param authorizableInstallationHistorySet
* @throws Exception */
public void installNewConfigurations(Session session,
AcInstallationHistoryPojo history,
Map<String, String> newestConfigurations, Set<AuthorizableInstallationHistory> authorizableInstallationHistorySet)
throws Exception;
public void installConfigurationFiles(Session session, AcInstallationHistoryPojo history,
Map<String, String> configurationFileContentsByFilename,
Set<AuthorizableInstallationHistory> authorizableInstallationHistorySet) throws Exception;

}
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

Expand Down Expand Up @@ -48,6 +47,7 @@
import biz.netcentric.cq.tools.actool.authorizableutils.AuthorizableCreatorException;
import biz.netcentric.cq.tools.actool.authorizableutils.AuthorizableCreatorService;
import biz.netcentric.cq.tools.actool.authorizableutils.AuthorizableInstallationHistory;
import biz.netcentric.cq.tools.actool.configmodel.AcConfiguration;
import biz.netcentric.cq.tools.actool.configreader.ConfigFilesRetriever;
import biz.netcentric.cq.tools.actool.configreader.ConfigReader;
import biz.netcentric.cq.tools.actool.configreader.ConfigurationMerger;
Expand Down Expand Up @@ -97,30 +97,26 @@ public class AceServiceImpl implements AceService {
private String configurationPath;

@Activate
public void activate(@SuppressWarnings("rawtypes") final Map properties)
public void activate(final Map<?,?> properties)
throws Exception {
LOG.debug("Activated AceService!");
modified(properties);
}

@Modified
public void modified(@SuppressWarnings("rawtypes") final Map properties) {
public void modified(final Map<?,?> properties) {
LOG.debug("Modified AceService!");
configurationPath = PropertiesUtil.toString(properties.get(PROPERTY_CONFIGURATION_PATH), "");
}

// FIXME: Why is this called installConfigurationFromYamlList if it doesn't use YAML?
private void installConfigurationFromYamlList(
final List mergedConfigurations, AcInstallationHistoryPojo history,
private void installAcConfiguration(
AcConfiguration acConfiguration, AcInstallationHistoryPojo history,
final Session session,
Set<AuthorizableInstallationHistory> authorizableHistorySet,
Map<String, Set<AceBean>> repositoryDumpAceMap) throws Exception {

// FIXME: putting different types of configuration objects in a heterogeneous list is pretty bad
Map<String, LinkedHashSet<AuthorizableConfigBean>> authorizablesMapfromConfig = (Map<String, LinkedHashSet<AuthorizableConfigBean>>) mergedConfigurations
.get(0);
Map<String, Set<AceBean>> aceMapFromConfig = (Map<String, Set<AceBean>>) mergedConfigurations
.get(1);
Map<String, Set<AuthorizableConfigBean>> authorizablesMapfromConfig = acConfiguration.getAuthorizablesConfig();
Map<String, Set<AceBean>> aceMapFromConfig = acConfiguration.getAceConfig();

if (aceMapFromConfig == null) {
String message = "ace config not found in YAML file! installation aborted!";
Expand All @@ -135,7 +131,7 @@ private void installConfigurationFromYamlList(
installAces(history, session, aceMapFromConfig);
}

private Set<String> getAuthorizablesToRemoveAcesFor(Map<String, LinkedHashSet<AuthorizableConfigBean>> authorizablesMapfromConfig) {
private Set<String> getAuthorizablesToRemoveAcesFor(Map<String, Set<AuthorizableConfigBean>> authorizablesMapfromConfig) {
Set<String> authorizablesToRemoveAcesFor = new HashSet<String>(authorizablesMapfromConfig.keySet());
Set<String> authorizablesToBeMigrated = collectAuthorizablesToBeMigrated(authorizablesMapfromConfig);
Collection<?> invalidAuthorizablesInConfig = CollectionUtils.intersection(authorizablesToRemoveAcesFor, authorizablesToBeMigrated);
Expand All @@ -149,10 +145,10 @@ private Set<String> getAuthorizablesToRemoveAcesFor(Map<String, LinkedHashSet<Au
return authorizablesToRemoveAcesFor;
}

private Set<String> collectAuthorizablesToBeMigrated(Map<String, LinkedHashSet<AuthorizableConfigBean>> authorizablesMapfromConfig) {
private Set<String> collectAuthorizablesToBeMigrated(Map<String, Set<AuthorizableConfigBean>> authorizablesMapfromConfig) {
Set<String> authorizablesToBeMigrated = new HashSet<String>();
for (String principalStr : authorizablesMapfromConfig.keySet()) {
LinkedHashSet<AuthorizableConfigBean> authorizableConfigBeans = authorizablesMapfromConfig.get(principalStr);
Set<AuthorizableConfigBean> authorizableConfigBeans = authorizablesMapfromConfig.get(principalStr);
for (AuthorizableConfigBean authorizableConfigBean : authorizableConfigBeans) {
String migrateFrom = authorizableConfigBean.getMigrateFrom();
if (StringUtils.isNotBlank(migrateFrom)) {
Expand Down Expand Up @@ -203,7 +199,7 @@ private void installAces(
private void installAuthorizables(
AcInstallationHistoryPojo history,
Set<AuthorizableInstallationHistory> authorizableHistorySet,
Map<String, LinkedHashSet<AuthorizableConfigBean>> authorizablesMapfromConfig)
Map<String, Set<AuthorizableConfigBean>> authorizablesMapfromConfig)
throws RepositoryException, Exception {
// --- installation of Authorizables from configuration ---

Expand Down Expand Up @@ -265,7 +261,7 @@ public AcInstallationHistoryPojo execute() {
String rootPath = getConfigurationRootPath();
Node rootNode = session.getNode(rootPath);
Map<String, String> newestConfigurations = configFilesRetriever.getConfigFileContentFromNode(rootNode);
installNewConfigurations(session, history, newestConfigurations, authorizableInstallationHistorySet);
installConfigurationFiles(session, history, newestConfigurations, authorizableInstallationHistorySet);
} catch (AuthorizableCreatorException e) {
history.addError(e.toString());
// here no rollback of authorizables necessary since session wasn't
Expand Down Expand Up @@ -299,7 +295,7 @@ public AcInstallationHistoryPojo execute() {

/** Common entry point for JMX and install hook. */
@Override
public void installNewConfigurations(Session session, AcInstallationHistoryPojo history, Map<String, String> currentConfiguration,
public void installConfigurationFiles(Session session, AcInstallationHistoryPojo history, Map<String, String> configurationFileContentsByFilename,
Set<AuthorizableInstallationHistory> authorizableInstallationHistorySet)
throws Exception {

Expand All @@ -313,13 +309,14 @@ public void installNewConfigurations(Session session, AcInstallationHistoryPojo
LOG.info(message);
history.addMessage(message);

if (currentConfiguration != null) {
if (configurationFileContentsByFilename != null) {

history.setConfigFileContentsByName(currentConfiguration);
AcConfiguration acConfiguration = configurationMerger.getMergedConfigurations(configurationFileContentsByFilename, history,
configReader);
history.setAcConfiguration(acConfiguration);
history.setConfigFileContentsByName(configurationFileContentsByFilename);

List mergedConfigurations = configurationMerger.getMergedConfigurations(currentConfiguration, history, configReader);

installMergedConfigurations(history, session, authorizableInstallationHistorySet, mergedConfigurations);
installMergedConfigurations(history, session, authorizableInstallationHistorySet, acConfiguration);

// if everything went fine (no exceptions), save the session
// thus persisting the changed ACLs
Expand Down Expand Up @@ -352,7 +349,7 @@ private void installMergedConfigurations(
AcInstallationHistoryPojo history,
Session session,
Set<AuthorizableInstallationHistory> authorizableInstallationHistorySet,
List mergedConfigurations) throws ValueFormatException,
AcConfiguration acConfiguration) throws ValueFormatException,
RepositoryException, Exception {

String message = "Starting installation of merged configurations...";
Expand All @@ -366,9 +363,7 @@ private void installMergedConfigurations(
AcHelper.ACE_ORDER_NONE,
dumpservice.getQueryExcludePaths()).getAceDump();

installConfigurationFromYamlList(mergedConfigurations, history,
session, authorizableInstallationHistorySet,
repositoryDumpAceMap);
installAcConfiguration(acConfiguration, history, session, authorizableInstallationHistorySet, repositoryDumpAceMap);

}

Expand Down Expand Up @@ -603,9 +598,9 @@ public Set<String> getAllAuthorizablesFromConfig(Session session)
AcInstallationHistoryPojo history = new AcInstallationHistoryPojo();
Node rootNode = session.getNode(configurationPath);
Map<String, String> newestConfigurations = configFilesRetriever.getConfigFileContentFromNode(rootNode);
List mergedConfigurations = configurationMerger.getMergedConfigurations(
newestConfigurations, history, configReader);
return ((Map<String, Set<AceBean>>) mergedConfigurations.get(0)).keySet();
AcConfiguration acConfiguration = configurationMerger.getMergedConfigurations(newestConfigurations, history, configReader);
Set<String> allAuthorizablesFromConfig = acConfiguration.getAceConfig().keySet();
return allAuthorizablesFromConfig;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
*/
package biz.netcentric.cq.tools.actool.authorizableutils;

import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;

import javax.jcr.AccessDeniedException;
import javax.jcr.RepositoryException;
Expand All @@ -23,7 +23,7 @@
public interface AuthorizableCreatorService {

public void createNewAuthorizables(
Map<String, LinkedHashSet<AuthorizableConfigBean>> principalMapFromConfig,
Map<String, Set<AuthorizableConfigBean>> principalMapFromConfig,
final Session session, AcInstallationHistoryPojo status,
AuthorizableInstallationHistory authorizableInstallationHistory)
throws AccessDeniedException,
Expand Down
Loading

0 comments on commit d9c3f32

Please sign in to comment.