diff --git a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractAsieWebScript.java b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractAsieWebScript.java index bf48032..e7c0c78 100644 --- a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractAsieWebScript.java +++ b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractAsieWebScript.java @@ -1,8 +1,6 @@ package com.inteligr8.alfresco.asie.rest; import java.io.IOException; -import java.util.HashSet; -import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -42,9 +40,6 @@ public abstract class AbstractAsieWebScript extends AbstractWebScript implements @Value("${solr.sharedSecret}") private String solrSharedSecret; - @Value("${inteligr8.asie.allowedAuthorities}") - private String authorizedAuthoritiesStr; - @Value("${inteligr8.asie.basePath}") private String solrBaseUrl; @@ -52,28 +47,10 @@ public abstract class AbstractAsieWebScript extends AbstractWebScript implements @Qualifier(Constants.QUALIFIER_ASIE) private ObjectMapper objectMapper; - private Set authorizedAuthorities; - @Override public void afterPropertiesSet() throws Exception { - this.authorizedAuthorities = new HashSet<>(); - String[] authorities = this.authorizedAuthoritiesStr.split(","); - for (String authority : authorities) { - authority = StringUtils.trimToNull(authority); - if (authority != null) - this.authorizedAuthorities.add(authority); - } - - if (this.authorizedAuthorities.isEmpty()) - this.logger.warn("All authenticated users will be authorized to access ASIE web scripts"); - this.solrSharedSecret = StringUtils.trimToNull(this.solrSharedSecret); } - - @Override - protected Set getAuthorities() { - return this.authorizedAuthorities; - } protected ObjectMapper getObjectMapper() { return this.objectMapper; diff --git a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractWebScript.java b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractWebScript.java index e361f15..14cb6bc 100644 --- a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractWebScript.java +++ b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/AbstractWebScript.java @@ -4,11 +4,16 @@ import java.io.IOException; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.HashSet; import java.util.Set; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.extensions.webscripts.Description.RequiredAuthentication; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Value; import org.springframework.extensions.webscripts.WebScriptException; import org.springframework.extensions.webscripts.WebScriptRequest; import org.springframework.extensions.webscripts.WebScriptResponse; @@ -16,9 +21,32 @@ import org.springframework.http.HttpStatus; import net.sf.acegisecurity.GrantedAuthority; -public abstract class AbstractWebScript extends org.springframework.extensions.webscripts.AbstractWebScript { +public abstract class AbstractWebScript extends org.springframework.extensions.webscripts.AbstractWebScript implements InitializingBean { - protected abstract Set getAuthorities(); + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Value("${inteligr8.asie.allowedAuthorities}") + private String authorizedAuthoritiesStr; + + private Set authorizedAuthorities; + + @Override + public void afterPropertiesSet() throws Exception { + this.authorizedAuthorities = new HashSet<>(); + String[] authorities = this.authorizedAuthoritiesStr.split(","); + for (String authority : authorities) { + authority = StringUtils.trimToNull(authority); + if (authority != null) + this.authorizedAuthorities.add(authority); + } + + if (this.authorizedAuthorities.isEmpty()) + this.logger.warn("All authenticated users will be authorized to access web scripts"); + } + + protected Set getAuthorities() { + return this.authorizedAuthorities; + } @Override public final void execute(WebScriptRequest request, WebScriptResponse response) throws IOException { diff --git a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/ClearRegistryWebScript.java b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/ClearRegistryWebScript.java index 38b4889..ad4c26f 100644 --- a/shared/src/main/java/com/inteligr8/alfresco/asie/rest/ClearRegistryWebScript.java +++ b/shared/src/main/java/com/inteligr8/alfresco/asie/rest/ClearRegistryWebScript.java @@ -3,7 +3,6 @@ package com.inteligr8.alfresco.asie.rest; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.extensions.webscripts.AbstractWebScript; import org.springframework.extensions.webscripts.WebScriptRequest; import org.springframework.extensions.webscripts.WebScriptResponse; import org.springframework.http.HttpStatus; @@ -20,13 +19,13 @@ public class ClearRegistryWebScript extends AbstractWebScript { @Autowired private ShardStateService sss; - - @Override - public void execute(WebScriptRequest req, WebScriptResponse res) throws IOException { + + @Override + public void executeAuthorized(WebScriptRequest request, WebScriptResponse response) throws IOException { this.sss.clear(); this.sbs.forget(); - res.setStatus(HttpStatus.OK.value()); + response.setStatus(HttpStatus.OK.value()); } }