def login(self, authc_token):
self.clear_run_as_identities_internal()<EOL>subject = self.security_manager.login(subject=self,<EOL>authc_token=authc_token)<EOL>identifiers = None<EOL>host = None<EOL>if isinstance(subject, DelegatingSubject):<EOL><INDENT>identifiers = subject._identifiers<EOL>host = subject.host<EOL><DEDENT>else:<EOL><INDENT>identifiers = subject.identifiers  <EOL><DEDENT>if not identifiers:<EOL><INDENT>msg = ("<STR_LIT>" +<EOL>"<STR_LIT>" +<EOL>"<STR_LIT>")<EOL>raise ValueError(msg)<EOL><DEDENT>self._identifiers = identifiers<EOL>self.authenticated = True<EOL>if not host:<EOL><INDENT>try:<EOL><INDENT>host = authc_token.host<EOL><DEDENT>except AttributeError:  <EOL><INDENT>host = None<EOL><DEDENT><DEDENT>self.host = host<EOL>session = subject.get_session(False)<EOL>if session:<EOL><INDENT>session.stop_session_callback = self.session_stopped<EOL>self.session = session<EOL><DEDENT>else:<EOL><INDENT>self.session = None<EOL><DEDENT>
:type authc_token: authc_abcs.AuthenticationToken

authc_token's password is cleartext that is stored as a bytearray.
The authc_token password is cleared in memory, within the authc_token,
when authentication is successful.