1 31 package org.blojsom.extension.xmlrpc.handler; 32 33 import org.apache.xmlrpc.XmlRpcException; 34 import org.blojsom.authorization.AuthorizationException; 35 import org.blojsom.authorization.AuthorizationProvider; 36 import org.blojsom.blog.Blog; 37 import org.blojsom.event.EventBroadcaster; 38 import org.blojsom.fetcher.Fetcher; 39 40 import javax.servlet.ServletConfig ; 41 import javax.servlet.http.HttpServletRequest ; 42 import javax.servlet.http.HttpServletResponse ; 43 import java.util.HashMap ; 44 import java.util.Properties ; 45 46 53 public abstract class APIHandler { 54 55 protected static final int AUTHORIZATION_EXCEPTION = 1; 56 protected static final String AUTHORIZATION_EXCEPTION_MSG = "Invalid username and/or password"; 57 58 protected static final int UNKNOWN_EXCEPTION = 1000; 59 protected static final String UNKNOWN_EXCEPTION_MSG = "An error occured processing your request"; 60 61 protected static final int UNSUPPORTED_EXCEPTION = 1001; 62 protected static final String UNSUPPORTED_EXCEPTION_MSG = "Unsupported method"; 63 64 protected static final int INVALID_POSTID = 2000; 65 protected static final String INVALID_POSTID_MSG = "The entry postid you submitted is invalid"; 66 67 protected static final int NOBLOGS_EXCEPTION = 3000; 68 protected static final String NOBLOGS_EXCEPTION_MSG = "There are no categories defined"; 69 70 protected static final int PERMISSION_EXCEPTION = 4000; 71 protected static final String PERMISSION_EXCEPTION_MSG = "User does not have permission to use this XML-RPC method"; 72 73 protected AuthorizationProvider _authorizationProvider; 74 protected Fetcher _fetcher; 75 protected Blog _blog; 76 protected HttpServletRequest _httpServletRequest; 77 protected HttpServletResponse _httpServletResponse; 78 protected EventBroadcaster _eventBroadcaster; 79 protected Properties _properties; 80 protected ServletConfig _servletConfig; 81 82 87 public void setAuthorizationProvider(AuthorizationProvider authorizationProvider) { 88 _authorizationProvider = authorizationProvider; 89 } 90 91 96 public void setFetcher(Fetcher fetcher) { 97 _fetcher = fetcher; 98 } 99 100 105 public void setBlog(Blog blog) { 106 _blog = blog; 107 } 108 109 114 public void setHttpServletRequest(HttpServletRequest httpServletRequest) { 115 _httpServletRequest = httpServletRequest; 116 } 117 118 123 public void setHttpServletResponse(HttpServletResponse httpServletResponse) { 124 _httpServletResponse = httpServletResponse; 125 } 126 127 132 public void setEventBroadcaster(EventBroadcaster eventBroadcaster) { 133 _eventBroadcaster = eventBroadcaster; 134 } 135 136 141 public void setServletConfig(ServletConfig servletConfig) { 142 _servletConfig = servletConfig; 143 } 144 145 150 public void setProperties(Properties properties) { 151 _properties = properties; 152 } 153 154 159 public abstract String getName(); 160 161 168 protected void checkXMLRPCPermission(String username, String permission) throws XmlRpcException { 169 try { 170 _authorizationProvider.checkPermission(_blog, new HashMap (), username, permission); 171 } catch (AuthorizationException e) { 172 throw new XmlRpcException(PERMISSION_EXCEPTION, PERMISSION_EXCEPTION_MSG); 173 } 174 } 175 } 176 | Popular Tags |