Play the Halo level, and continue progressing until you reach the part where Johnson starts helping you.
Destroy the flood first if you dont want them annoying you.
Get a battle rifle or Covenant carbine. Wait until Johnson stops moving, then you shoot him in the head. His body should fall down and his weapon.
Take his Spartan Laser before he revives. Now the Spartan Laser isnt infinite yet, when he revives head shot him again and take his spartan laser, if you shoot, it should be infinite.
Also, you can have 2 Spartan Lasers at the same time, because they are 2 different weapons.
Enjoy!
