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.directwebremoting.impl
Class DefaultAccessControl

    java.lang.Object
      org.directwebremoting.impl.DefaultAccessControl

All Implemented Interfaces:
  AccessControl

    public class DefaultAccessControl

extends java.lang.Object
implements AccessControl

Control who should be accessing which methods on which classes.

Author:
  Joe Walker [joe at getahead dot ltd dot uk]

Constructor Summary
`DefaultAccessControl()`

Method Summary
`void` | `addExcludeRule(java.lang.String scriptName, java.lang.String methodName)` Add an exclude rule.
`void` | `addIncludeRule(java.lang.String scriptName, java.lang.String methodName)` Add an include rule.
`void` | `addRoleRestriction(java.lang.String scriptName, java.lang.String methodName, java.lang.String role)` J2EE role based security allows us to restrict methods to only being used by people in certain roles.
`void` | `assertExecutionIsPossible(Creator creator, java.lang.String className, java.lang.reflect.Method method)` Check the method for accessibility at runtime, and return an error message if anything is wrong.
`void` | `assertIsDisplayable(Creator creator, java.lang.String className, java.lang.reflect.Method method)` Check the method for accessibility at 'compile-time' (i.e.
`void` | `setExposeInternals(boolean exposeInternals)`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DefaultAccessControl

    public DefaultAccessControl()

Method Detail

### assertExecutionIsPossible

    public void assertExecutionIsPossible(Creator creator,
                                          java.lang.String className,
                                          java.lang.reflect.Method method)
                                   throws java.lang.SecurityException

  Description copied from interface: `AccessControl`
  Check the method for accessibility at runtime, and return an error message if anything is wrong. If nothing is wrong, return null.

  See notes on `getReasonToNotDisplay()`. This method should duplicate the tests made by that method.

  This is not a great becuase it mixes 2 bits of information in the same variable (is it wrong, and what is wrong) but without multi-value returns in Java this seems like the most simple implementation.

  Specified by:
    `assertExecutionIsPossible` in interface `AccessControl`
  Parameters:
    `creator` - Where does the method come from?
    `className` - The Javascript name of the class
    `method` - What is the method to execute?
  Throws:
    `java.lang.SecurityException` - If the given method is disallowed
  See Also:
    `AccessControl.assertIsDisplayable(Creator, String, Method)`

### assertIsDisplayable

    public void assertIsDisplayable(Creator creator,
                                    java.lang.String className,
                                    java.lang.reflect.Method method)
                             throws java.lang.SecurityException

  Description copied from interface: `AccessControl`
  Check the method for accessibility at 'compile-time' (i.e. when the app is downloaded), and return an error message if anything is wrong. If nothing is wrong, return null.

  This method is similar to `getReasonToNotExecute()` except that there may be checks (like security checks) that we wish to make only at runtime in case the situation changes between 'compile-time' and runtime.

  This is not a great becuase it mixes 2 bits of information in the same variable (is it wrong, and what is wrong) but without multi-value returns in Java this seems like the most simple implementation.

  Specified by:
    `assertIsDisplayable` in interface `AccessControl`
  Parameters:
    `creator` - Where does the method come from?
    `className` - The Javascript name of the class
    `method` - What is the method to execute?
  Throws:
    `java.lang.SecurityException` - If the given method is disallowed
  See Also:
    `AccessControl.assertExecutionIsPossible(Creator, String, Method)`

### addRoleRestriction

    public void addRoleRestriction(java.lang.String scriptName,
                                   java.lang.String methodName,
                                   java.lang.String role)

  Description copied from interface: `AccessControl`
  J2EE role based security allows us to restrict methods to only being used by people in certain roles.

  Specified by:
    `addRoleRestriction` in interface `AccessControl`
  Parameters:
    `scriptName` - The name of the creator to Javascript
    `methodName` - The name of the method (without brackets)
    `role` - The new role name to add to the list for the given scriptName and methodName

### addIncludeRule

    public void addIncludeRule(java.lang.String scriptName,
                               java.lang.String methodName)

  Description copied from interface: `AccessControl`
  Add an include rule. Each creator can have either a list of inclusions or a list of exclusions but not both. If a creator has a list of inclusions then the default policy is to deny any method that is not specifically included. If the creator has a list of exclusions then the default policy is to allow any method not listed. If there are no included or excluded rules then the default policy is to allow all methods

  Specified by:
    `addIncludeRule` in interface `AccessControl`
  Parameters:
    `scriptName` - The name of the creator to Javascript
    `methodName` - The name of the method (without brackets)

### addExcludeRule

    public void addExcludeRule(java.lang.String scriptName,
                               java.lang.String methodName)

  Description copied from interface: `AccessControl`
  Add an exclude rule.

  Specified by:
    `addExcludeRule` in interface `AccessControl`
  Parameters:
    `scriptName` - The name of the creator to Javascript
    `methodName` - The name of the method (without brackets)
  See Also:
    `AccessControl.addIncludeRule(String, String)`

### setExposeInternals

    public void setExposeInternals(boolean exposeInternals)

  Parameters:
    `exposeInternals` - the exposeInternals to set

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