This is historical obviously, it was used during V4 planning.

Collection point for discussion around V4 scoping, before we turn this into formal JIRA issues.


  • Require Java 11
    • By transitive closure this means moving Guava up to 23 (where it will use Java 8 Functions)
  • Spring Framework 5, SWF 2.5
  • Deprecated or embrace Rhino? Or Nashorn?
  • Code Coverage - we used it early in V3,  Adopt or drop.
  • Remove use of parameterized constructors  IDP-1047 - Getting issue details... STATUS IDP-1054 - Getting issue details... STATUS  (and others)
  • Generics in API classes  IDP-316 - Getting issue details... STATUS  (and others)
  • Deprecate SVN Resource and replace with "something" (see also here)
  • Other code cleanup


  • Move Attribute Encoding elsewhere  IDP-1434 - Getting issue details... STATUS

    This has a significant impact on attribute mapping (reversing SAML into IdPAttributes, since the mapping assumes that attribute have encoders and IDs and that makes it easy to map. Dictionary lookup will require either reverse lookup of eschewing this for dictionary defined attributes.

  • Fix use of impl classes in deployer wiring of connectors IDP-1179 - Getting issue details... STATUS
  • Mixed Mode language (allow raw spring inside attribute-resolver &c, and get it parsed inside the same spring context tree) JSE-18 - Getting issue details... STATUS
  • Multi- Attribute sources, attribute decoding (and gateways)  IDP-926 - Getting issue details... STATUS  and many many more
  • Container work (jetty-base, windows installer,  containers, java (see also  IDP-1092 - Getting issue details... STATUS  and many many many more 
  • Type conversion in data connectors  IDP-514 - Getting issue details... STATUS
  • Signable Config  IDP-448 - Getting issue details... STATUS
  • pre-canned AD config file for all platforms.  IDP-1175 - Getting issue details... STATUS
  • SOAP logout IDP-964 - Getting issue details... STATUS


  • ValidUntil Metadata filter  IDP-693 - Getting issue details... STATUS
  • Old style transients in the attribute encode
    • UK Federation issue?
  • Data Connectors shared between users (some write back some dont) IDP-1052 - Getting issue details... STATUS
  • Template AttributeDefinition ignores input attributes with no values instead of failing IDP-1362 - Getting issue details... STATUS
  • Change default for local storage use and logout properties to true in the actual property file, though not internally


Feature Related

Remove the text-based status view and point the status command line at the metrics interface.

  • Perhaps turn text view into a prettier view of more information

Language based attributes  IDP-102 - Getting issue details... STATUS

Configuration Related

Unless explicitly noted, everything proposed currently warns in the log. 

  • 'Legacy' (V2) relying-party.xml. and security name space
    • This is currently not warned on
    • The security name space is, in addition used in support of complex metadata configuration (e.g. X509 signature validation).  We should remove this and document how to do it with attendant spring wiring.
    • Removing this will allow cleanup in metadata-providers parsing (for example the <MetadataResolver> parser needs to be aware that it might be top level or it might be below a <RelyingParty>)
  • Legacy Principal Connectors
    • Plus a lot of upstream code.
    • Currently warned on (since 3.0)
    • Will this allow refactoring of the C14N code to remove hooks for legacy support?
  • Legacy namespaces for Attribute Fitering and Resolution (urn:mace:shibboleth:2.0:afp:mf:basic, urn:mace:shibboleth:2.0:afp:mf:saml, urn:mace:shibboleth:2.0:attribute:encoder,  urn:mace:shibboleth:2.0:resolver:ad, urn:mace:shibboleth:2.0:resolver:dc, urn:mace:shibboleth:2.0:resolver:pc)
    • Currently warned on (since 3.3, 3.2)
  • Legacy NameID-based AttributeEncoders
  • Making the work context available to to Attribute Scripts
    • Warned on
    • Can then remove
  • LDAPDataConnector:
    • mergeResults attributes (deprecated since V2.?)
    • queryUsesStoredProcedure & cacheResults attributes (deprecated in V2?)
  • Attribute Filter details 
    • Issuer filters (Not implemented and warned on in V3.)
    • Rule & Policy References
  • Attribute <Dependency>  IDP-680 - Getting issue details... STATUS  (Plus a lot of upstream code.)
    • Do we want to be more radical?
  •  /META-INF/net.shibboleth.idp/config.xml
  • Old style scripted attributes edu.internet2.middleware.shibboleth.common.attribute.provider.BasicAttribute
  • Old style (pre 3.3) MFA
    • Will be tricky but need to warn on property and flow use if we can
  • Resources and end-of-life-ing of other custom schema
  • Change default audit log format
Code Related

There are many deprecated methods and classes (also Interfaces) which currently do not log warnings.  Probably need to review and, if appropriate add warning for 3.4.

Release Notes

Since we have no doc space for 4.0 yet, tracking anything that would be an obvious "note for upgraders" here...

The Velocity 2.0 upgrade causes some template breakage, so far in two known spots:

  • there's a "$" expression in attribute-release.vm that has to be converted to '$'
  • the dummy URL defaults in various views has to be converted frm "#" to '#' (or anything else of course, don't imagine this really should impact sites using the software already)