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
Preauthconstructors for the 'HTTP' versions of attributes. Example:wiscEduPVIbecomesHTTP_WISCEDUPVI. -
UserDetailsProvideris 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", soPVIis only a constant inPreauthUserDetailsProviderwhileFederatedPreauthUserDetailsProviderhas anSPVIconstant. -
Namespace reorganization. Rather than lumping everything into the
edu\wisc\doitnamespace, the namespace structure is now much more like uw-spring-security. General classes now exist in theedu\wisc\doit\uwphpsnamespace, withlocalandpreauthnamespaces existing for the local and preauth implementations. This change necessitated the bump to 2.0.0.
Please review: @ahoffmann @weizhong-wang @KJOYNER