Add UDDS attribute and refactor
Apologies for the large and hard to read PR--it should hopefully make the code more easy to read and navigate.
This PR adds UDDS as an attribute for UserDetails
, along with a new class, PreauthUserDetailsProvider
, which is an implementation of UserDetailsProvider
for UW-Madison login.
Notable changes:
- 'HTTP' is now assumed by default. This is the flag that can be passed to
Preauth
constructors for the 'HTTP' versions of attributes. Example:wiscEduPVI
becomesHTTP_WISCEDUPVI
. -
UserDetailsProvider
is an abstract class now, not an interface. - Constants used for header keys are much more consistent. Keys for UW-System login no longer have the
FED_
prefix and you will get the correct key for your particular implementation (FederatedPreauth...
vs.Preauth
) by usingstatic::<CONSTANT_NAME>
. The only exception: UWMSN and UW-System differ on their name for 'PVI'--UWMSN uses "PVI" and UW-System uses "SPVI", soPVI
is only a constant inPreauthUserDetailsProvider
whileFederatedPreauthUserDetailsProvider
has anSPVI
constant. -
Namespace reorganization. Rather than lumping everything into the
edu\wisc\doit
namespace, the namespace structure is now much more like uw-spring-security. General classes now exist in theedu\wisc\doit\uwphps
namespace, withlocal
andpreauth
namespaces existing for the local and preauth implementations. This change necessitated the bump to 2.0.0.
Please review: @ahoffmann @weizhong-wang @KJOYNER