function authRequired() {
  try {
    if (db.serverCmdLineOpts().code == 13) {
      return true;
    }
    return false;
  }
  catch (err) {
    return false;
  }
}

if (authRequired()) {
  try {
<% if @replset -%>
    rs.slaveOk()
<% end -%>
    var prev_db = db
    db = db.getSiblingDB('admin')
    db.auth('<%= @admin_username %>', '<%= @admin_password %>')
    db = db.getSiblingDB(prev_db)
  }
  catch (err) {
    // This isn't catching authentication errors as I'd expect...
    return;
  }
}
