Class AbstractSerializationSecurityManager
java.lang.Object
com.atlassian.bamboo.serialization.AbstractSerializationSecurityManager
- All Implemented Interfaces:
SerializationSecurityManager
- Direct Known Subclasses:
RemoteSerializationSecurityManager
,SerializationSecurityManagerImpl
public abstract class AbstractSerializationSecurityManager
extends Object
implements SerializationSecurityManager
Assumptions made:
- plugin state modifications are rare and we can afford recalculating the plugin-generated whitelist from scratch
-
Field Summary
Modifier and TypeFieldDescription -
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractSerializationSecurityManager
(com.atlassian.plugin.PluginAccessor pluginAccessor, com.atlassian.plugin.event.PluginEventManager pluginEventManager, SystemSerializableClassWhitelistProvider systemSerializableClassWhitelistProvider) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
addWhitelistedClassNames
(com.google.common.collect.ImmutableSet.Builder<String> whitelistBuilder) This method should be overridden by implementations to modify class whitelist.Get set of class names that are whitelisted for purpose of serialization.boolean
isBlacklisted
(@NotNull Class<?> type, @NotNull SerializationSecurityMethod method) returns true for classes that should not be serialised or deserialised.void
pluginDisabled
(com.atlassian.plugin.event.events.PluginDisabledEvent pluginDisabledEvent) void
pluginEnabled
(com.atlassian.plugin.event.events.PluginEnabledEvent pluginEnabledEvent) void
pluginModuleDisabled
(com.atlassian.plugin.event.events.PluginModuleDisabledEvent pluginModuleDisabledEvent) void
pluginModuleEnabled
(com.atlassian.plugin.event.events.PluginModuleEnabledEvent pluginModuleEnabledEvent) void
pluginUninstalled
(com.atlassian.plugin.event.events.PluginUninstalledEvent pluginUninstalledEvent) void
pluginUpgraded
(com.atlassian.plugin.event.events.PluginUpgradedEvent pluginUpgradedEvent) protected final void
This method should be called by implementations after any of the class whitelist sources has changed.void
void
Unregistering event listener on PreDestroy can save from processing multiple events when all plugins will be unregistered
-
Field Details
-
completeClassNameWhitelist
-
pluginProvidedClassNameWhitelist
-
-
Constructor Details
-
AbstractSerializationSecurityManager
protected AbstractSerializationSecurityManager(com.atlassian.plugin.PluginAccessor pluginAccessor, com.atlassian.plugin.event.PluginEventManager pluginEventManager, SystemSerializableClassWhitelistProvider systemSerializableClassWhitelistProvider)
-
-
Method Details
-
getClassNameWhitelist
Description copied from interface:SerializationSecurityManager
Get set of class names that are whitelisted for purpose of serialization. Returned set might be immutable.- Specified by:
getClassNameWhitelist
in interfaceSerializationSecurityManager
-
isBlacklisted
public boolean isBlacklisted(@NotNull @NotNull Class<?> type, @NotNull @NotNull SerializationSecurityMethod method) Description copied from interface:SerializationSecurityManager
returns true for classes that should not be serialised or deserialised.- Specified by:
isBlacklisted
in interfaceSerializationSecurityManager
- Returns:
-
registerPluginEventListeners
- Throws:
Exception
-
unregisterPluginEventListeners
Unregistering event listener on PreDestroy can save from processing multiple events when all plugins will be unregistered- Throws:
Exception
-
pluginUninstalled
public void pluginUninstalled(com.atlassian.plugin.event.events.PluginUninstalledEvent pluginUninstalledEvent) -
pluginUpgraded
public void pluginUpgraded(com.atlassian.plugin.event.events.PluginUpgradedEvent pluginUpgradedEvent) -
pluginEnabled
public void pluginEnabled(com.atlassian.plugin.event.events.PluginEnabledEvent pluginEnabledEvent) -
pluginDisabled
public void pluginDisabled(com.atlassian.plugin.event.events.PluginDisabledEvent pluginDisabledEvent) -
pluginModuleEnabled
public void pluginModuleEnabled(com.atlassian.plugin.event.events.PluginModuleEnabledEvent pluginModuleEnabledEvent) -
pluginModuleDisabled
public void pluginModuleDisabled(com.atlassian.plugin.event.events.PluginModuleDisabledEvent pluginModuleDisabledEvent) -
recalculateMasterClassWhitelist
protected final void recalculateMasterClassWhitelist()This method should be called by implementations after any of the class whitelist sources has changed. -
addWhitelistedClassNames
protected abstract void addWhitelistedClassNames(@NotNull com.google.common.collect.ImmutableSet.Builder<String> whitelistBuilder) This method should be overridden by implementations to modify class whitelist.
-