Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.acegisecurity
Interface RunAsManager

All Known Implementing Classes:
  NullRunAsManager, RunAsManagerImpl

    public interface RunAsManager

Creates a new temporary `Authentication` object for the current secure object invocation only.

This interface permits implementations to replace the `Authentication` object that applies to the current secure object invocation only. The `AbstractSecurityInterceptor` will replace the `Authentication` object held in the `SecurityContext` for the duration of the secure object callback only, returning it to the original `Authentication` object when the callback ends.

This is provided so that systems with two layers of objects can be established. One layer is public facing and has normal secure methods with the granted authorities expected to be held by external callers. The other layer is private, and is only expected to be called by objects within the public facing layer. The objects in this private layer still need security (otherwise they would be public methods) and they also need security in such a manner that prevents them being called directly by external callers. The objects in the private layer would be configured to require granted authorities never granted to external callers. The `RunAsManager` interface provides a mechanism to elevate security in this manner.

It is expected implementations will provide a corresponding concrete `Authentication` and `AuthenticationProvider` so that the replacement `Authentication` object can be authenticated. Some form of security will need to be implemented to ensure the `AuthenticationProvider` only accepts `Authentication` objects created by an authorized concrete implementation of `RunAsManager`.

Version:
  $Id: RunAsManager.java,v 1.7 2005/11/17 00:55:49 benalex Exp $
Author:
  Ben Alex

Method Summary
`Authentication` | `buildRunAs(Authentication authentication, Object object, ConfigAttributeDefinition config)` Returns a replacement `Authentication` object for the current secure object invocation, or `null` if replacement not required.
`boolean` | `supports(Class clazz)` Indicates whether the `RunAsManager` implementation is able to provide run-as replacement for the indicated secure object type.
`boolean` | `supports(ConfigAttribute attribute)` Indicates whether this `RunAsManager` is able to process the passed `ConfigAttribute`.

Method Detail

### buildRunAs

    Authentication buildRunAs(Authentication authentication,
                              Object object,
                              ConfigAttributeDefinition config)

  Returns a replacement `Authentication` object for the current secure object invocation, or `null` if replacement not required.

  Parameters:
    `authentication` - the caller invoking the secure object
    `object` - the secured object being called
    `config` - the configuration attributes associated with the secure object being invoked
  Returns:
    a replacement object to be used for duration of the secure object invocation, or `null` if the `Authentication` should be left as is

### supports

    boolean supports(ConfigAttribute attribute)

  Indicates whether this `RunAsManager` is able to process the passed `ConfigAttribute`.

  This allows the `AbstractSecurityInterceptor` to check every configuration attribute can be consumed by the configured `AccessDecisionManager` and/or `RunAsManager` and/or `AfterInvocationManager`.

  Parameters:
    `attribute` - a configuration attribute that has been configured against the `AbstractSecurityInterceptor`
  Returns:
    `true` if this `RunAsManager` can support the passed configuration attribute

### supports

    boolean supports(Class clazz)

  Indicates whether the `RunAsManager` implementation is able to provide run-as replacement for the indicated secure object type.

  Parameters:
    `clazz` - the class that is being queried
  Returns:
    true if the implementation can process the indicated class

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2005 Acegi Technology Pty Limited. All Rights Reserved.