Two Spartan Lasers on Halo
From Halopedia, the Halo wiki
From Halopedia, the Halo wiki
The second Spartan Laser, used by Sergeant Johnson, is programmed as a completely different weapon, which is why a player can carry it along with another normal Spartan Laser. Johnson's Spartan Laser is equipped with infinite charge. It seems likely that Bungie wanted to prevent the player from depleting the battery of the Spartan Laser acquired from Johnson, otherwise a player might find himself unable to defeat 343 Guilty Spark.
First, proceed normally up to the top of the tower with a Rocket Launcher. When you reach the top, don't kill all of the Flood forces or Johnson will come down and the glitch will not work. Instead, run to his position and blast him off the cliff with the Rocket Launcher or a Plasma Grenade. Once he falls off the cliff, take his dropped Spartan Laser. When he gets back up, he will grab the weapon that you exchanged for the laser.
At this point, kill Johnson again. When he gets up, he will inexplicably carry a new Spartan Laser. Kill him a third time, by meleeing him to death. Then trade your other weapon for his dropped Spartan Laser. It is this laser that possesses infinite charge.
To check if you've done it properly, repeatedly press the Y button to check your weapons.
Start the Campaign mission Cortana from the beginning on Normal or higher difficulty. Proceed to find Cortana and then leave that room. Then, while in the room where you destroy the generators, try to jump on a ledge jutting out that is about middle height. After a few tries by Explosive Jumping (Recommended with the Cowbell Skull) you should be on the slanted ledge. When you are done, look around the slanted ledge and eventually you should find a pile of bones near the edge. Among those bones is the Unknown Skull. Take that skull with you until the end of the level and in the next level you should have a Spartan Laser as a starting weapon. You can kill Johnson and take his Spartan Laser or you could take the Spartan Laser he gives you in the battle against 343 Guilty Spark.
Control Room Laser
Another method involves killing Johnson before he gets to the door of the Control Room; melee him three times to do so. Take his Laser. During the battle in the Control Room against 343 Guilty Spark, at the part when he gives you his Spartan Laser, simply swap your other weapon for it. However, be careful. The second Spartan Laser does not have infinite charge and usually has only a few ammo points remaining. It is also possible to do this by taking Arbiter's Energy Sword and meleeing Johnson with the sword. If done correctly, the Spartan Laser he holds will fly far away from him. Exchange your weapon for this and wait for Johnson to get up. He should have a new Spartan Laser instead of picking up your weapon. Now kill Johnson again (If necessary, kill Arbiter first in case he turns against you). Then take the second Spartan Laser. This has infinite charge.