public class WrapperServicePermission
extends java.security.Permission
These permissions are inherently quite dangerous so great care should be taken when granting them. When doing so, try to only grant permission to those services which really need to be controlled.
The following are examples of how to specify the permission within a policy file.
grant codeBase "file:../lib/-" { // Grant various permissions to a specific service. permission org.tanukisoftware.wrapper.security.WrapperServicePermission "myservice", "interrogate"; permission org.tanukisoftware.wrapper.security.WrapperServicePermission "myservice", "interrogate,start,stop"; permission org.tanukisoftware.wrapper.security.WrapperServicePermission "myservice", "userCode"; permission org.tanukisoftware.wrapper.security.WrapperServicePermission "myservice", "*"; // Grant various permissions to any service starting with "my". permission org.tanukisoftware.wrapper.security.WrapperServicePermission "my*", "*"; // Let the calling code do anything to any service on the system permission org.tanukisoftware.wrapper.security.WrapperServicePermission "*", "*"; permission org.tanukisoftware.wrapper.security.WrapperServicePermission "*"; };
Possible actions include the following:
Permission Action Name | What the Permission Allows | Risks of Allowing this Permission |
---|---|---|
start | Start a service which is installed but has not been started. | Malicious code could potentially start any service that is not currently running. This includes services which were previously stopped or that are configured to be started manually. Many Windows systems have several services stopped by default because of the security hazards that they pose. Starting such services could open the system up to attacks related to that service. |
stop | Stop a service which is currently running. | Malicious code could potentially stop running service. This could result in a denial of service attack if the service is a web or database server. Or it result in more dangerous attacks if the service is a firewall or virus scanner. |
pause | Pause a service which is currently running. | Malicious code could potentially pause running service. This could result in a denial of service attack if the service is a web or database server. Or it result in more dangerous attacks if the service is a firewall or virus scanner. |
continue | Continue a service which was previously paused. | Malicious code could resume services which had been paused for a good reason. |
interrogate | Interrogate a service as to its current state. | Malicious code learn a lot about a system and its weakness by probing which services are currently running. |
userCode | Send any custom user code to a service. | The danger of this action depends on whether or not the service understands custom user codes, and what it does with them. This could potentially be a very dangerous permission to grant. |
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ACTION_CONTINUE |
static java.lang.String |
ACTION_INTERROGATE |
static java.lang.String |
ACTION_PAUSE |
static java.lang.String |
ACTION_START |
static java.lang.String |
ACTION_STOP |
static java.lang.String |
ACTION_USER_CODE |
Constructor and Description |
---|
WrapperServicePermission(java.lang.String serviceName)
Creates a new WrapperServicePermission for the specified service.
|
WrapperServicePermission(java.lang.String serviceName,
java.lang.String actions)
Creates a new WrapperServicePermission for the specified service.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object obj)
Checks two Permission objects for equality.
|
java.lang.String |
getActions()
Return the canonical string representation of the actions.
|
int |
hashCode()
Returns the hash code value for this object.
|
boolean |
implies(java.security.Permission p2)
Checks if this WrapperServicePermission object "implies" the
specified permission.
|
java.security.PermissionCollection |
newPermissionCollection()
Returns a custom WSCollection implementation of a PermissionCollection.
|
public static java.lang.String ACTION_START
public static java.lang.String ACTION_STOP
public static java.lang.String ACTION_PAUSE
public static java.lang.String ACTION_CONTINUE
public static java.lang.String ACTION_INTERROGATE
public static java.lang.String ACTION_USER_CODE
public WrapperServicePermission(java.lang.String serviceName, java.lang.String actions)
serviceName
- The name of the service whose access is being
controlled.actions
- The action or actions to be performed.public WrapperServicePermission(java.lang.String serviceName)
serviceName
- The name of the service whose access is being
controlled.public boolean equals(java.lang.Object obj)
Do not use the equals method for making access control decisions; use the implies method.
equals
in class java.security.Permission
obj
- The object we are testing for equality with this object.public java.lang.String getActions()
getActions
in class java.security.Permission
public boolean implies(java.security.Permission p2)
More specifically, this method returns true if:
implies
in class java.security.Permission
p2
- The permission to check against.public java.security.PermissionCollection newPermissionCollection()
newPermissionCollection
in class java.security.Permission
public int hashCode()
hashCode
in class java.security.Permission
Copyright 1999, 2024 Tanuki Software Inc., All Rights Reserved.