org.blojsom.plugin.admin
Class BaseAdminPlugin

java.lang.Object
  extended byorg.blojsom.plugin.admin.BaseAdminPlugin
All Implemented Interfaces:
BlojsomConstants, BlojsomMetaDataConstants, BlojsomPlugin, PermissionedPlugin
Direct Known Subclasses:
BasicAuthenticationPlugin, EditBlogAuthorizationPlugin, EditBlogCategoriesPlugin, EditBlogEntriesPlugin, EditBlogFlavorsPlugin, EditBlogPermissionsPlugin, EditBlogPluginsPlugin, EditBlogPropertiesPlugin, EditBlogTemplatesPlugin, EditBlogUsersPlugin, FileUploadPlugin, ForgottenPasswordPlugin, ListWebAdminPluginsPlugin, WebAdminPlugin

public class BaseAdminPlugin
extends java.lang.Object
implements BlojsomPlugin, BlojsomConstants, BlojsomMetaDataConstants, PermissionedPlugin

BaseAdminPlugin

Since:
blojsom 2.04
Version:
$Id: BaseAdminPlugin.java,v 1.25 2006/02/21 18:43:25 czarneckid Exp $
Author:
David Czarnecki

Field Summary
protected  AuthorizationProvider _authorizationProvider
           
protected  BlojsomConfiguration _blojsomConfiguration
           
protected  java.util.Map _ignoreParams
           
protected static org.apache.commons.logging.Log _logger
           
protected  ResourceManager _resourceManager
           
protected  javax.servlet.ServletConfig _servletConfig
           
protected static java.lang.String ACTION_PARAM
           
protected static java.lang.String ADMIN_ADMINISTRATION_PAGE
           
protected static java.lang.String ADMIN_LOGIN_PAGE
           
protected static java.lang.String BLOJSOM_ADMIN_MESSAGES_RESOURCE
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_AUTHENTICATED_KEY
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_OPERATION_RESULT
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_PASSWORD_PARAM
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME_KEY
           
protected static java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME_PARAM
           
protected static java.lang.String BLOJSOM_PERMISSION_CHECKER
           
protected static java.lang.String BLOJSOM_USER_AUTHENTICATED
           
protected static java.lang.String LOGIN_ACTION
           
protected static java.lang.String LOGIN_ERROR_TEXT_KEY
           
protected static java.lang.String LOGOUT_ACTION
           
protected static java.lang.String PAGE_ACTION
           
protected static java.lang.String PLUGIN_ADMIN_INHERIT_APACHE_CREDENTIALS
           
 
Fields inherited from interface org.blojsom.util.BlojsomConstants
ADMINISTRATORS_IP, BLOG_ADMIN_URL_IP, BLOG_ADMINISTRATION_LOCALE_IP, BLOG_AUTHORIZATION_IP, BLOG_BASE_URL_IP, BLOG_BLACKLIST_FILE_IP, BLOG_COMMENTS_DIRECTORY_IP, BLOG_COMMENTS_ENABLED_IP, BLOG_COUNTRY_DEFAULT, BLOG_COUNTRY_IP, BLOG_DEFAULT_CATEGORY_EXCLUSION_MAPPING_IP, BLOG_DEFAULT_CATEGORY_MAPPING_IP, BLOG_DEFAULT_FETCHER, BLOG_DEFAULT_FILE_EXTENSION_IP, BLOG_DEFAULT_FLAVOR_IP, BLOG_DEFAULT_PROPERTIES, BLOG_DEPTH_IP, BLOG_DESCRIPTION_IP, BLOG_DIRECTORY_FILTER_IP, BLOG_EMAIL_ENABLED_IP, BLOG_ENTRIES_DISPLAY_DEFAULT, BLOG_ENTRIES_DISPLAY_IP, BLOG_ENTRY_META_DATA_EXTENSION_IP, BLOG_FILE_ENCODING_IP, BLOG_FILE_EXTENSIONS_IP, BLOG_HOME_IP, BLOG_LANGUAGE_DEFAULT, BLOG_LANGUAGE_IP, BLOG_NAME_IP, BLOG_OWNER, BLOG_OWNER_EMAIL, BLOG_PERMISSIONS_IP, BLOG_PINGBACKS_DIRECTORY_IP, BLOG_PINGBACKS_ENABLED_IP, BLOG_PROPERTIES_EXTENSIONS_IP, BLOG_TRACKBACK_DIRECTORY_IP, BLOG_TRACKBACKS_ENABLED_IP, BLOG_URL_IP, BLOJSOM_ALL_CATEGORIES, BLOJSOM_AUTHORIZATION_PROVIDER_IP, BLOJSOM_BLOG, BLOJSOM_BLOG_HOME_IP, BLOJSOM_BROADCASTER_IP, BLOJSOM_CATEGORIES, BLOJSOM_COMMENTS_ENABLED, BLOJSOM_CONFIGURATION_BASE_DIRECTORY_IP, BLOJSOM_CONFIGURATION_IP, BLOJSOM_DATE, BLOJSOM_DATE_ISO8601, BLOJSOM_DATE_OBJECT, BLOJSOM_DATE_UTC, BLOJSOM_DEFAULT_BROADCASTER, BLOJSOM_DEFAULT_CONFIGURATION_BASE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_MANAGER, BLOJSOM_DEFAULT_TEMPLATES_DIRECTORY, BLOJSOM_DEFAULT_USER_IP, BLOJSOM_EMAIL_ENABLED, BLOJSOM_ENTRIES, BLOJSOM_FETCHER_IP, BLOJSOM_FLAVOR_CONFIGURATION_IP, BLOJSOM_INSTALLATION_DIRECTORY_IP, BLOJSOM_INSTALLED_LOCALES_IP, BLOJSOM_LAST_MODIFIED, BLOJSOM_LISTENER_CONFIGURATION_IP, BLOJSOM_PERMALINK, BLOJSOM_PERMALINK_NEXT_ENTRY, BLOJSOM_PERMALINK_PREVIOUS_ENTRY, BLOJSOM_PLUGIN_CHAIN, BLOJSOM_PLUGIN_CONFIGURATION_IP, BLOJSOM_PLUGINS, BLOJSOM_REQUESTED_CATEGORY, BLOJSOM_REQUESTED_FLAVOR, BLOJSOM_RESOURCE_DIRECTORY_IP, BLOJSOM_RESOURCE_MANAGER_BUNDLES_IP, BLOJSOM_RESOURCE_MANAGER_CONTEXT_KEY, BLOJSOM_RESOURCE_MANAGER_IP, BLOJSOM_SITE_URL, BLOJSOM_TEMPLATES_DIRECTORY_IP, BLOJSOM_USER, BLOJSOM_USERS_IP, BLOJSOM_VERSION, BLOJSOM_VERSION_NUMBER, CACHE_CONTROL_HTTP_HEADER, CATEGORY_PARAM, COMMENT_EXTENSION, DEFAULT_AUTHORIZATION_PROVIDER, DEFAULT_COMMENTS_DIRECTORY, DEFAULT_DIGEST_ALGORITHM, DEFAULT_DISPATCHER_CONFIGURATION_FILE, DEFAULT_ENTRY_EXTENSION, DEFAULT_FLAVOR_CONFIGURATION_FILE, DEFAULT_FLAVOR_HTML, DEFAULT_METADATA_EXTENSION, DEFAULT_PERMISSIONS_CONFIGURATION_FILE, DEFAULT_PINGBACKS_DIRECTORY, DEFAULT_PLUGIN_CONFIGURATION_FILE, DEFAULT_PROPERTIES_EXTENSIONS, DEFAULT_TRACKBACK_DIRECTORY, DESCRIPTION_KEY, DIGEST_ALGORITHM, FLAVOR_PARAM, HTTP_ETAG, HTTP_LASTMODIFIED, INFINITE_BLOG_DEPTH, ISO_8601_DATE_FORMAT, LINE_SEPARATOR, LINEAR_NAVIGATION_ENABLED_IP, MAX_HASHABLE_LENGTH, NAME_KEY, NO_CACHE_HTTP_HEADER_VALUE, OVERRIDE_LASTMODIFIED_PARAM, PAGE_PARAM, PAGE_PARAM_ARCHIVE, PERMALINK_PARAM, PINGBACK_EXTENSION, PLUGINS_PARAM, PRAGMA_HTTP_HEADER, PREFERRED_SYNDICATION_FLAVOR, RECURSIVE_CATEGORIES, REDIRECT_TO_PARAM, RFC_822_DATE_FORMAT, SHORT_ISO_8601_DATE_FORMAT, TRACKBACK_EXTENSION, USE_ENCRYPTED_PASSWORDS, UTC_DATE_FORMAT, UTF8, WHITESPACE, XMLRPC_ENABLED_IP
 
Fields inherited from interface org.blojsom.util.BlojsomMetaDataConstants
BLOG_ENTRY_METADATA_AUTHOR, BLOG_ENTRY_METADATA_AUTHOR_EXT, BLOG_ENTRY_METADATA_TIMESTAMP, BLOG_METADATA_COMMENTS_DISABLED, BLOG_METADATA_HEADER, BLOG_METADATA_PINGBACKS_DISABLED, BLOG_METADATA_TRACKBACKS_DISABLED, SOURCE_ATTRIBUTE
 
Constructor Summary
BaseAdminPlugin()
          Default constructor.
 
Method Summary
protected  void addOperationResultMessage(java.util.Map context, java.lang.String message)
          Adds a message to the context under the BLOJSOM_ADMIN_PLUGIN_OPERATION_RESULT key
protected  boolean authenticateUser(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, java.util.Map context, BlogUser blogUser)
          Authenticate the user if their authentication session variable is not present
 boolean checkPermission(BlogUser blogUser, java.util.Map permissionContext, java.lang.String username, java.lang.String permission)
          Check the permission for a given username and permission
 void cleanup()
          Perform any cleanup for the plugin.
 void destroy()
          Called when BlojsomServlet is taken out of service
protected  java.lang.String formatAdminResource(java.lang.String resourceID, java.lang.String fallbackText, java.util.Locale locale, java.lang.Object[] arguments)
          Retrieve a resource from the administration resource bundle and pass it through the ResourceManager.format(String, Object[]) method
protected  java.lang.String getAdminResource(java.lang.String resourceID, java.lang.String fallbackText, java.util.Locale locale)
          Retrieve a resource from the administration resource bundle
protected  java.lang.String getUsernameFromSession(javax.servlet.http.HttpServletRequest httpServletRequest, Blog blog)
          Retrieve the current authorized username for this session
 void init(javax.servlet.ServletConfig servletConfig, BlojsomConfiguration blojsomConfiguration)
          Initialize this plugin.
 BlogEntry[] process(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, BlogUser user, java.util.Map context, BlogEntry[] entries)
          Process the blog entries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_logger

protected static final org.apache.commons.logging.Log _logger

BLOJSOM_ADMIN_PLUGIN_AUTHENTICATED_KEY

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_AUTHENTICATED_KEY
See Also:
Constant Field Values

BLOJSOM_ADMIN_PLUGIN_USERNAME_KEY

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME_KEY
See Also:
Constant Field Values

BLOJSOM_ADMIN_PLUGIN_USERNAME

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME
See Also:
Constant Field Values

BLOJSOM_ADMIN_PLUGIN_USERNAME_PARAM

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_USERNAME_PARAM
See Also:
Constant Field Values

BLOJSOM_ADMIN_PLUGIN_PASSWORD_PARAM

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_PASSWORD_PARAM
See Also:
Constant Field Values

ACTION_PARAM

protected static final java.lang.String ACTION_PARAM
See Also:
Constant Field Values

BLOJSOM_ADMIN_PLUGIN_OPERATION_RESULT

protected static final java.lang.String BLOJSOM_ADMIN_PLUGIN_OPERATION_RESULT
See Also:
Constant Field Values

BLOJSOM_USER_AUTHENTICATED

protected static final java.lang.String BLOJSOM_USER_AUTHENTICATED
See Also:
Constant Field Values

BLOJSOM_ADMIN_MESSAGES_RESOURCE

protected static final java.lang.String BLOJSOM_ADMIN_MESSAGES_RESOURCE
See Also:
Constant Field Values

BLOJSOM_PERMISSION_CHECKER

protected static final java.lang.String BLOJSOM_PERMISSION_CHECKER
See Also:
Constant Field Values

PLUGIN_ADMIN_INHERIT_APACHE_CREDENTIALS

protected static final java.lang.String PLUGIN_ADMIN_INHERIT_APACHE_CREDENTIALS
See Also:
Constant Field Values

LOGIN_ERROR_TEXT_KEY

protected static final java.lang.String LOGIN_ERROR_TEXT_KEY
See Also:
Constant Field Values

ADMIN_ADMINISTRATION_PAGE

protected static final java.lang.String ADMIN_ADMINISTRATION_PAGE
See Also:
Constant Field Values

ADMIN_LOGIN_PAGE

protected static final java.lang.String ADMIN_LOGIN_PAGE
See Also:
Constant Field Values

LOGIN_ACTION

protected static final java.lang.String LOGIN_ACTION
See Also:
Constant Field Values

LOGOUT_ACTION

protected static final java.lang.String LOGOUT_ACTION
See Also:
Constant Field Values

PAGE_ACTION

protected static final java.lang.String PAGE_ACTION
See Also:
Constant Field Values

_servletConfig

protected javax.servlet.ServletConfig _servletConfig

_blojsomConfiguration

protected BlojsomConfiguration _blojsomConfiguration

_authorizationProvider

protected AuthorizationProvider _authorizationProvider

_resourceManager

protected ResourceManager _resourceManager

_ignoreParams

protected java.util.Map _ignoreParams
Constructor Detail

BaseAdminPlugin

public BaseAdminPlugin()
Default constructor.

Method Detail

init

public void init(javax.servlet.ServletConfig servletConfig,
                 BlojsomConfiguration blojsomConfiguration)
          throws BlojsomPluginException
Initialize this plugin. This method only called when the plugin is instantiated.

Specified by:
init in interface BlojsomPlugin
Parameters:
servletConfig - Servlet config object for the plugin to retrieve any initialization parameters
blojsomConfiguration - BlojsomConfiguration information
Throws:
BlojsomPluginException - If there is an error initializing the plugin

authenticateUser

protected boolean authenticateUser(javax.servlet.http.HttpServletRequest httpServletRequest,
                                   javax.servlet.http.HttpServletResponse httpServletResponse,
                                   java.util.Map context,
                                   BlogUser blogUser)
Authenticate the user if their authentication session variable is not present

Parameters:
httpServletRequest - Request
httpServletResponse - Response
context - Context
blogUser - User information
Returns:
true if the user is authenticated, false otherwise

getUsernameFromSession

protected java.lang.String getUsernameFromSession(javax.servlet.http.HttpServletRequest httpServletRequest,
                                                  Blog blog)
Retrieve the current authorized username for this session

Parameters:
httpServletRequest - Request
blog - Blog
Returns:
Authorized username for this session or null if no user is currently authorized

checkPermission

public boolean checkPermission(BlogUser blogUser,
                               java.util.Map permissionContext,
                               java.lang.String username,
                               java.lang.String permission)
Check the permission for a given username and permission

Specified by:
checkPermission in interface PermissionedPlugin
Parameters:
blogUser - BlogUser information
permissionContext - Map containing context information for checking permission
username - Username
permission - Permission
Returns:
true if the username has the required permission, false otherwise

addOperationResultMessage

protected void addOperationResultMessage(java.util.Map context,
                                         java.lang.String message)
Adds a message to the context under the BLOJSOM_ADMIN_PLUGIN_OPERATION_RESULT key

Parameters:
context - Context
message - Message to add

getAdminResource

protected java.lang.String getAdminResource(java.lang.String resourceID,
                                            java.lang.String fallbackText,
                                            java.util.Locale locale)
Retrieve a resource from the administration resource bundle

Parameters:
resourceID - ID of resource to retrieve
fallbackText - Text to use as fallback if resource ID is not found
locale - Locale to use when retrieving resource
Returns:
Text from administration resource bundle given by resourceID or fallbackText if the resource ID is not found
Since:
blojsom 2.27

formatAdminResource

protected java.lang.String formatAdminResource(java.lang.String resourceID,
                                               java.lang.String fallbackText,
                                               java.util.Locale locale,
                                               java.lang.Object[] arguments)
Retrieve a resource from the administration resource bundle and pass it through the ResourceManager.format(String, Object[]) method

Parameters:
resourceID - ID of resource to retrieve
fallbackText - Text to use as fallback if resource ID is not found
locale - Locale to use when retrieving resource
arguments - Arguments for ResourceManager.format(String, Object[])
Returns:
Text from administration resource bundle given by resourceID formatted appropriately or fallbackText if the resource ID could not be formatted
Since:
blojsom 2.27

process

public BlogEntry[] process(javax.servlet.http.HttpServletRequest httpServletRequest,
                           javax.servlet.http.HttpServletResponse httpServletResponse,
                           BlogUser user,
                           java.util.Map context,
                           BlogEntry[] entries)
                    throws BlojsomPluginException
Process the blog entries

Specified by:
process in interface BlojsomPlugin
Parameters:
httpServletRequest - Request
httpServletResponse - Response
user - BlogUser instance
context - Context
entries - Blog entries retrieved for the particular request
Returns:
Modified set of blog entries
Throws:
BlojsomPluginException - If there is an error processing the blog entries

cleanup

public void cleanup()
             throws BlojsomPluginException
Perform any cleanup for the plugin. Called after process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.blojsom.blog.BlogUser, java.util.Map, org.blojsom.blog.BlogEntry[]).

Specified by:
cleanup in interface BlojsomPlugin
Throws:
BlojsomPluginException - If there is an error performing cleanup for this plugin

destroy

public void destroy()
             throws BlojsomPluginException
Called when BlojsomServlet is taken out of service

Specified by:
destroy in interface BlojsomPlugin
Throws:
BlojsomPluginException - If there is an error in finalizing this plugin