Author: snoopdave Date: Sun Mar 13 18:21:06 2011 New Revision: 1081183 URL: http://svn.apache.org/viewvc?rev=1081183&view=rev Log: Fix for ROL-1913, cannot disable client APIs at site-wide level
Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java?rev=1081183&r1=1081182&r2=1081183&view=diff ============================================================================== --- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java (original) +++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomService.java Sun Mar 13 18:21:06 2011 @@ -18,23 +18,17 @@ package org.apache.roller.weblogger.webservices.atomprotocol; -import com.sun.syndication.feed.atom.Category; -import com.sun.syndication.propono.atom.common.AtomService; -import com.sun.syndication.propono.atom.common.Categories; -import com.sun.syndication.propono.atom.common.Collection; -import com.sun.syndication.propono.atom.common.Workspace; -import com.sun.syndication.propono.atom.server.AtomException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Properties; -import java.util.TreeMap; + import org.apache.commons.lang.StringUtils; import org.apache.roller.weblogger.WebloggerException; import org.apache.roller.weblogger.business.MediaFileManager; import org.apache.roller.weblogger.business.Weblogger; import org.apache.roller.weblogger.business.WebloggerFactory; +import org.apache.roller.weblogger.config.WebloggerRuntimeConfig; import org.apache.roller.weblogger.pojos.MediaFileDirectory; import org.apache.roller.weblogger.pojos.RuntimeConfigProperty; import org.apache.roller.weblogger.pojos.User; @@ -43,16 +37,23 @@ import org.apache.roller.weblogger.pojos import org.apache.roller.weblogger.pojos.WeblogPermission; import org.apache.roller.weblogger.util.Utilities; +import com.sun.syndication.feed.atom.Category; +import com.sun.syndication.propono.atom.common.AtomService; +import com.sun.syndication.propono.atom.common.Categories; +import com.sun.syndication.propono.atom.common.Collection; +import com.sun.syndication.propono.atom.common.Workspace; +import com.sun.syndication.propono.atom.server.AtomException; + /** * Roller's Atom service. */ public class RollerAtomService extends AtomService { - private Map workspaceMap = new TreeMap(); - private Map collectionMap = new TreeMap(); - private static Properties cacheProps = new Properties(); - private boolean firstTime = true; + //private Map workspaceMap = new TreeMap(); + //private Map collectionMap = new TreeMap(); + //private static Properties cacheProps = new Properties(); + //private boolean firstTime = true; /** * Creates a new instance of FileBasedAtomService. @@ -60,6 +61,11 @@ public class RollerAtomService extends A public RollerAtomService(User user, String atomURL) throws WebloggerException, AtomException { Weblogger roller = WebloggerFactory.getWeblogger(); List perms = null; + + if (!WebloggerRuntimeConfig.getBooleanProperty("webservices.enableAtomPub")) { + throw new AtomException("AtomPub not enabled for this Roller installation"); + } + try { perms = roller.getUserManager().getWeblogPermissions(user); } catch (WebloggerException re) { Modified: roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java URL: http://svn.apache.org/viewvc/roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java?rev=1081183&r1=1081182&r2=1081183&view=diff ============================================================================== --- roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java (original) +++ roller/trunk/weblogger-web/src/main/java/org/apache/roller/weblogger/webservices/xmlrpc/BaseAPIHandler.java Sun Mar 13 18:21:06 2011 @@ -26,6 +26,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.xmlrpc.XmlRpcException; import org.apache.roller.weblogger.config.WebloggerConfig; +import org.apache.roller.weblogger.config.WebloggerRuntimeConfig; import org.apache.roller.weblogger.business.WebloggerFactory; import org.apache.roller.weblogger.business.UserManager; import org.apache.roller.weblogger.business.WeblogManager; @@ -126,7 +127,8 @@ public class BaseAPIHandler implements S if (website != null) { weblogFound = true; weblogEnabled = website.getEnabled().booleanValue(); - apiEnabled = website.getEnableBloggerApi().booleanValue(); + apiEnabled = website.getEnableBloggerApi().booleanValue() + && WebloggerRuntimeConfig.getBooleanProperty("webservices.enableXmlRpc"); } if (user != null) { @@ -172,6 +174,7 @@ public class BaseAPIHandler implements S throws Exception { boolean authenticated = false; boolean enabled = false; + boolean apiEnabled = false; User user = null; try { @@ -190,9 +193,8 @@ public class BaseAPIHandler implements S } //System.out.println("is now [" + password + "]"); authenticated = user.getPassword().equals(password); - if (authenticated) { - //WebloggerFactory.getWeblogger().setUser(user); - } + + apiEnabled = WebloggerRuntimeConfig.getBooleanProperty("webservices.enableXmlRpc"); } } catch (Exception e) { mLogger.error("ERROR internal error validating user", e); @@ -205,6 +207,11 @@ public class BaseAPIHandler implements S if ( !authenticated ) { throw new XmlRpcNotAuthorizedException(AUTHORIZATION_EXCEPTION_MSG); } + + if ( !apiEnabled ) { + throw new XmlRpcNotAuthorizedException(BLOGGERAPI_DISABLED_MSG); + } + return authenticated; }