|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.eclipse.jetty.policy.loader.PolicyFileScanner
public class PolicyFileScanner
This is a basic high-level tokenizer of policy files. It takes in a stream, analyzes data read from it and returns a
set of structured tokens.
This implementation recognizes text files, consisting of clauses with the following syntax:
keystore "some_keystore_url", "keystore_type";
grant [SignedBy "signer_names"] [, CodeBase "URL"]
[, Principal [principal_class_name] "principal_name"]
[, Principal [principal_class_name] "principal_name"] ... {
permission permission_class_name [ "target_name" ] [, "action"]
[, SignedBy "signer_names"];
permission ...
};
For semantical details of this format, see org.apache.harmony.security.DefaultPolicy javadoc.
| Nested Class Summary | |
|---|---|
static class |
PolicyFileScanner.InvalidFormatException
Specific exception class to signal policy file syntax error. |
| Constructor Summary | |
|---|---|
PolicyFileScanner()
|
|
| Method Summary | |
|---|---|
protected String |
composeStatus(StreamTokenizer st)
Formats a detailed description of tokenizer status: current token, current line number, etc. |
protected StreamTokenizer |
configure(StreamTokenizer st)
Configures passed tokenizer accordingly to supported syntax. |
protected void |
handleUnexpectedToken(StreamTokenizer st)
Throws InvalidFormatException with error status: which token is unexpected on which line. |
protected void |
handleUnexpectedToken(StreamTokenizer st,
String message)
Throws InvalidFormatException with detailed diagnostics. |
protected GrantEntry |
readGrantNode(StreamTokenizer st)
Tries to read grant clause. |
protected KeystoreEntry |
readKeystoreNode(StreamTokenizer st)
Tries to read keystore clause fields. |
protected Collection<PermissionEntry> |
readPermissionEntries(StreamTokenizer st)
Tries to read a list of permission entries. |
protected PrincipalEntry |
readPrincipalNode(StreamTokenizer st)
Tries to read Principal Node fields. |
void |
scanStream(Reader r,
Collection<GrantEntry> grantEntries,
List<KeystoreEntry> keystoreEntries)
Performs the main parsing loop. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public PolicyFileScanner()
| Method Detail |
|---|
protected StreamTokenizer configure(StreamTokenizer st)
public void scanStream(Reader r,
Collection<GrantEntry> grantEntries,
List<KeystoreEntry> keystoreEntries)
throws IOException,
PolicyFileScanner.InvalidFormatException
r - policy stream readergrantEntries - a collection to accumulate parsed GrantEntrieskeystoreEntries - a collection to accumulate parsed KeystoreEntries
IOException - if stream reading failed
PolicyFileScanner.InvalidFormatException - if unexpected or unknown token encountered
protected KeystoreEntry readKeystoreNode(StreamTokenizer st)
throws IOException,
PolicyFileScanner.InvalidFormatException
"some_keystore_url"[, "keystore_type"];
IOException - if stream reading failed
PolicyFileScanner.InvalidFormatException - if unexpected or unknown token encountered
protected GrantEntry readGrantNode(StreamTokenizer st)
throws IOException,
PolicyFileScanner.InvalidFormatException
[ [codebase "url"] | [signedby "name1,...,nameN"] |
principal ...] ]* { ... }
IOException - if stream reading failed
PolicyFileScanner.InvalidFormatException - if unexpected or unknown token encountered
protected PrincipalEntry readPrincipalNode(StreamTokenizer st)
throws IOException,
PolicyFileScanner.InvalidFormatException
[ principal_class_name ] "principal_name"
Both class and name may be wildcards, wildcard names should not surrounded by quotes.
IOException - if stream reading failed
PolicyFileScanner.InvalidFormatException - if unexpected or unknown token encountered
protected Collection<PermissionEntry> readPermissionEntries(StreamTokenizer st)
throws IOException,
PolicyFileScanner.InvalidFormatException
permission permission_class_name
[ "target_name" ] [, "action_list"]
[, signedby "name1,name2,..."];
List is terminated by '}' (closing curly brace) symbol.
IOException - if stream reading failed
PolicyFileScanner.InvalidFormatException - if unexpected or unknown token encounteredprotected String composeStatus(StreamTokenizer st)
protected final void handleUnexpectedToken(StreamTokenizer st,
String message)
throws PolicyFileScanner.InvalidFormatException
st - a tokenizer holding the erroneous tokenmessage - a user-friendly comment, probably explaining expected syntax. Should not be null- use
the overloaded single-parameter method instead.
PolicyFileScanner.InvalidFormatException
protected final void handleUnexpectedToken(StreamTokenizer st)
throws PolicyFileScanner.InvalidFormatException
st - a tokenizer holding the erroneous token
PolicyFileScanner.InvalidFormatException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||