Download the JDK
Search the Tutorials
Hide the TOC
Trail: Security Features in Java SE
Lesson: Implementing Your Own Permission
Implementing Your Own Permission
TerrysGame
The HighScore Class
The HighScorePermission Class
A Sample Policy File
Putting It All Together
Steps for the HighScore Developer (Chris)
Steps for the TerrysGame Developer (Terry)
Steps for a User Running TerrysGame (Kim)
Home Page > Security Features in Java SE > Implementing Your Own Permission
The HighScorePermission Class

> The `HighScorePermission` class defines the permission that `TerrysGame` needs to update the user's high score.

> All permission classes should subclass from either `java.security.Permission` or `java.security.BasicPermission`. The basic difference between the two is that `java.security.Permission` defines more complex permissions that require names and actions. For example, a `java.io.FilePermission` extends from `java.security.Permission`, and requires a name (a filename), and actions allowed for that file (read/write/delete).

> In contrast, `java.security.BasicPermission` defines simpler permissions that only require a name. For example, `java.lang.RuntimePermission` extends from `java.security.BasicPermission` and simply needs a name (like "exitVM"), which allows programs to exit the Java Virtual Machine.

> Our `HighScorePermission` is a simple permission, and hence can be extended from `java.security.BasicPermission`.

> Often, the method implementations in the `BasicPermission` class itself do not need to be overridden by its subclasses. That is the case with our `HighScorePermission`, so all we need to implement are the constructors, which just invoke the superclass constructors, as shown in the `following`:

> >     package com.scoredev.scores;

> >     import java.security.*;

> >     public final class HighScorePermission extends BasicPermission {

> >         public HighScorePermission(String name)
> >         {
> >     	super(name);
> >         }

> >         // note that actions is ignored and not used,
> >         // but this constructor is still needed
> >         public HighScorePermission(String name, String actions)
> >         {
> >     	super(name, actions);
> >         }
> >     }

Previous page: The HighScore Class
Next page: A Sample Policy File