Fair point I am looking at the `ImmutableAuthentication` class and looks like the `equals` method does what I want. I'll switch over.

I was originally thinking that it would be unfair to assume the implementing class is `ImmutableAuthentication` but then it's also incorrect to force equality of the two objects by manually checking.