Play には WS API というAPIがあり、これでHTTP関係の処理が行えます。
BASIC認証をやりたい場合は、リクエストに「withAuth」をつけるのがポイントです。APIドキュメントを見る限りでは、DIGEST認証など他の認証方式にも対応しているようです。
package controllers
import play.api.libs.ws.WSAuthScheme.BASIC
import play.api.libs.ws.WS
import play.api.mvc._
import play.api.libs.concurrent.Execution.Implicits.defaultContext
class Application extends Controller with AdminSecure {
def auth = Action.async {
import play.api.Play.current
WS.url("http://xxx:yyy/zzz").withAuth("admin", "password", BASIC).get().map(
response => Ok(response.body)
)
}
}