|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.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 the
default policy
description
.
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 encounteredprotected 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 encounteredprotected 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 encounteredprotected 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 encounteredprotected 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 |