Normally when I need auth with LWP, you just subclass and override get_basic_credentials. XMLRPC::Lite does it differently though, and it took me a while to find this, which is actually explained in SOAP::Transport:
BEGIN {
sub SOAP::Transport::HTTP::Client::get_basic_credentials {
return ‘user’ => ‘pass’;
}
}