org.apache.derby.security

## Class SystemPermission

- java.lang.Object
- - java.security.Permission
  - - java.security.BasicPermission
    - - org.apache.derby.security.SystemPermission

- All Implemented Interfaces:
    Serializable, Guard

      public final class SystemPermission
      extends BasicPermission

  This class represents access to system-wide Derby privileges.

  Permission | Description | Risk
  --- | --- | ---
  "jmx" "control" | Controls the ability of JMX clients to control Derby and view security sensitive attributes through Derby's MBeans. | JMX clients may be able to change the state of the running system
  "jmx" "monitor" | Controls the ability of JMX clients to monitor Derby through Derby's MBeans, such as viewing number of current connections and configuration settings. Note: security related settings require `control` action on `jmx` | JMX clients can see information about a runing system including software versions.

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CONTROL` Action (`"control"`) to perform control actions through JMX on engine, server or jmx.
    `static String` | `ENGINE` Permission target name (`"engine"`) for actions applicable to the core database engine.
    `static SystemPermission` | `ENGINE_MONITOR` Constant representing `SystemPermission("engine, "monitor")`.
    `static String` | `JMX` Permission target name (`"jmx"`) for actions applicable to management of Derby's JMX MBeans.
    `static String` | `MONITOR` Action (`"monitor"`) to perform monitoring actions through JMX on engine and server.
    `static String` | `SERVER` Permission target name (`"server"`) for actions applicable to the network server.
    `static String` | `SHUTDOWN` The server and engine shutdown action (`"shutdown"`).
    `static String` | `USE_DERBY_INTERNALS` Action (`"useDerbyInternals"`) by the engine to lookup Derby contexts.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SystemPermission(String name, String actions)` Creates a new SystemPermission with the specified name.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object other)` Does this permission equal another object.
    `String` | `getActions()` Return the permission's actions in a canonical form.
    `boolean` | `implies(Permission permission)` Does this permission imply another.
    `PermissionCollection` | `newPermissionCollection()`
    `String` | `toString()`

    - ### Methods inherited from class java.security.BasicPermission

      `hashCode`

    - ### Methods inherited from class java.security.Permission

      `checkGuard, getName`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### SERVER

          public static final String SERVER

      Permission target name (`"server"`) for actions applicable to the network server.
      See Also:
        Constant Field Values

    - #### ENGINE

          public static final String ENGINE

      Permission target name (`"engine"`) for actions applicable to the core database engine.
      See Also:
        Constant Field Values

    - #### JMX

          public static final String JMX

      Permission target name (`"jmx"`) for actions applicable to management of Derby's JMX MBeans.
      See Also:
        Constant Field Values

    - #### SHUTDOWN

          public static final String SHUTDOWN

      The server and engine shutdown action (`"shutdown"`).
      See Also:
        Constant Field Values

    - #### CONTROL

          public static final String CONTROL

      Action (`"control"`) to perform control actions through JMX on engine, server or jmx.

      For JMX control permission is required to get attributes that are deemed sensiive from a security aspect, such as the network server's port number, security mechanisms and any information about the file system.

      See Also:
        Constant Field Values

    - #### MONITOR

          public static final String MONITOR

      Action (`"monitor"`) to perform monitoring actions through JMX on engine and server.
      See Also:
        Constant Field Values

    - #### USE_DERBY_INTERNALS

          public static final String USE_DERBY_INTERNALS

      Action (`"useDerbyInternals"`) by the engine to lookup Derby contexts.
      See Also:
        Constant Field Values

    - #### ENGINE_MONITOR

          public static final SystemPermission ENGINE_MONITOR

      Constant representing `SystemPermission("engine, "monitor")`.

  - ### Constructor Detail

    - #### SystemPermission

          public SystemPermission(String name,
                                  String actions)

      Creates a new SystemPermission with the specified name.
      Parameters:
        `name` - the name of the SystemPermission
      Throws:
        `NullPointerException` - if name or actions is null
        `IllegalArgumentException` - if name is empty or not a legal SystemPermission
      See Also:
        `BasicPermission.BasicPermission(String)`

  - ### Method Detail

    - #### getActions

          public String getActions()

      Return the permission's actions in a canonical form.
      Overrides:
        `getActions` in class `BasicPermission`

    - #### newPermissionCollection

          public PermissionCollection newPermissionCollection()

      Overrides:
        `newPermissionCollection` in class `BasicPermission`

    - #### equals

          public boolean equals(Object other)

      Does this permission equal another object. True if its and identical class with same name and (canonical) actions.
      Overrides:
        `equals` in class `BasicPermission`

    - #### implies

          public boolean implies(Permission permission)

      Does this permission imply another. Only true if the other permission is a SystemPermission with the same name and all the actions of the permission are present in this. Note that none of the actions imply any other with this SystemPermission.
      Overrides:
        `implies` in class `BasicPermission`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Permission`

Apache Derby 10.13 API Documentation - Copyright © 2004,2016 The Apache Software Foundation. All Rights Reserved.