Class GlobusNamespacesParser
- java.lang.Object
-
- eu.emi.security.authn.x509.helpers.ns.GlobusNamespacesParser
-
- All Implemented Interfaces:
NamespacesParser
public class GlobusNamespacesParser extends java.lang.Object implements NamespacesParser
Parses a single .signing_policy file and returnsNamespacePolicyobject. Only the simplified parsing of the EACL format is implemented, in a similar way is in case of a native Globus implementation. However there are differences. First of all the format of this file is defined in a very imprecise way.The parsing is done in the following way:
- as a whitespace the space and tab characters are used; a separator may contain an arbitrary number of those, below only one space was used for clarity.
- all empty lines, whitespace only lines and lines beginning with '#' are ignored
- the first line like this is searched: access_id_CA X509 'ANY_STRING' other are ignored. Line with the access_id_CA prefix and other ending causes an error.
- after this line it is expected that the next significant line is : pos_rights globus CA:sign
- next the line in the format: cond_subjects globus '"ANY_STRING" ["ANY_STRING"]' is expected. The trailing string need not to be enclosed in '' and in "", but if it is then the order of quotation must be preserved.
- go to step 3.
- Author:
- K. Benedyczak
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classGlobusNamespacesParser.InvalidPolicyFilenameExceptionstatic classGlobusNamespacesParser.PolicySyntaxException
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringACCESS_ID_CAstatic java.lang.StringCONDITION_SUBJECTstatic java.lang.StringDEF_AUTH_GLOBUSstatic java.lang.StringDEF_AUTH_X509static java.lang.StringNS_REGEXPstatic java.lang.StringPOS_RIGHTSstatic java.lang.StringVALUE_CA_SIGN
-
Constructor Summary
Constructors Constructor Description GlobusNamespacesParser(java.lang.String filePath)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.StringmakeRegexpClassicWildcard(java.lang.String pattern)Converts wildcard string to Java regexp, ensuring that literal sequences are correctly escaped.static java.lang.Stringnormalize(java.lang.String dn)java.util.List<NamespacePolicy>parse()
-
-
-
Field Detail
-
ACCESS_ID_CA
public static java.lang.String ACCESS_ID_CA
-
DEF_AUTH_X509
public static java.lang.String DEF_AUTH_X509
-
DEF_AUTH_GLOBUS
public static java.lang.String DEF_AUTH_GLOBUS
-
POS_RIGHTS
public static java.lang.String POS_RIGHTS
-
CONDITION_SUBJECT
public static java.lang.String CONDITION_SUBJECT
-
VALUE_CA_SIGN
public static java.lang.String VALUE_CA_SIGN
-
NS_REGEXP
public static final java.lang.String NS_REGEXP
- See Also:
- Constant Field Values
-
-
Method Detail
-
parse
public java.util.List<NamespacePolicy> parse() throws java.io.IOException
- Specified by:
parsein interfaceNamespacesParser- Throws:
java.io.IOException
-
normalize
public static java.lang.String normalize(java.lang.String dn)
-
makeRegexpClassicWildcard
public static java.lang.String makeRegexpClassicWildcard(java.lang.String pattern)
Converts wildcard string to Java regexp, ensuring that literal sequences are correctly escaped.- Parameters:
pattern- input wildcard- Returns:
- Java regular expression
-
-