Class PrincipalParser

  • All Implemented Interfaces:
    Principal

    public class PrincipalParser
    extends org.simpleframework.common.parse.Parser
    implements Principal
    PrincipalParser is a parser class for the HTTP basic authorization header. It decodes the base64 encoding of the user and password pair.

    This follows the parsing tree of RFC 2617. The goal of this parser is to decode the base64 encoding of the user name and password. After the string has been decoded then the user name and password are extracted. This will only parse headers that are from the Basic authorization scheme. The format of the basic scheme can be found in RFC 2617 and is of the form

      Basic SP base64-encoding.
     
    Author:
    Niall Gallagher
    • Field Summary

      • Fields inherited from class org.simpleframework.common.parse.Parser

        buf, count, off
    • Constructor Summary

      Constructors 
      Constructor Description
      PrincipalParser()
      Creates a Parser for the basic authorization scheme.
      PrincipalParser​(java.lang.String header)
      Creates a Parser for the basic authorization scheme.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getName()
      Gets the users name from the Authorization header value.
      java.lang.String getPassword()
      Gets the users password parsed from the Authorization header value.
      protected void init()
      This will initialize the Parser when it is ready to parse a new String.
      protected void parse()
      Used to parse the actual header data.
      • Methods inherited from class org.simpleframework.common.parse.Parser

        digit, ensureCapacity, parse, skip, space, toLower
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PrincipalParser

        public PrincipalParser()
        Creates a Parser for the basic authorization scheme. This allows headers that are of this scheme to be broken into its component parts i.e. user name and password.
      • PrincipalParser

        public PrincipalParser​(java.lang.String header)
        Creates a Parser for the basic authorization scheme. This allows headers that are of this scheme to be broken into its component parts i.e. user name and password. This constructor will parse the String given as the header.
        Parameters:
        header - this is a header value from the basic scheme
    • Method Detail

      • getPassword

        public java.lang.String getPassword()
        Gets the users password parsed from the Authorization header value. If there was not password parsed from the base64 value of the header this returns null
        Specified by:
        getPassword in interface Principal
        Returns:
        the password for the user or null
      • getName

        public java.lang.String getName()
        Gets the users name from the Authorization header value. This will return null if there is no user name extracted from the base64 header value.
        Specified by:
        getName in interface Principal
        Returns:
        this returns the name of the user
      • parse

        protected void parse()
        Used to parse the actual header data. This will attempt to read the "Basic" token from the set of characters given, if this is successful then the username and password is extracted.
        Specified by:
        parse in class org.simpleframework.common.parse.Parser
      • init

        protected void init()
        This will initialize the Parser when it is ready to parse a new String. This will reset the Parser to a ready state. The init method is invoked by the Parser when the parse method is invoked.
        Specified by:
        init in class org.simpleframework.common.parse.Parser