Interface defines the methods of a principal provider. A principal provider is responsible to provide information
about the current user. Depending on the application this can simply be the current user of the operating systems or
something like the current user in an web application.
Method returns the current principal object. Its up to the implementation who to find the current principal object
since this highly depends on the runtime environment.
Returns:
Principal Current principal object. The method may return null.