Skip to content

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:

  1. '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 becomes HTTP_WISCEDUPVI.
  2. UserDetailsProvider is an abstract class now, not an interface.
  3. 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 using static::<CONSTANT_NAME>. The only exception: UWMSN and UW-System differ on their name for 'PVI'--UWMSN uses "PVI" and UW-System uses "SPVI", so PVI is only a constant in PreauthUserDetailsProvider while FederatedPreauthUserDetailsProvider has an SPVI constant.
  4. 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 the edu\wisc\doit\uwphps namespace, with local and preauth namespaces existing for the local and preauth implementations. This change necessitated the bump to 2.0.0.

Please review: @ahoffmann @weizhong-wang @KJOYNER

Merge request reports