All the classes had their namespace changed from SAML2 to SimpleSAML\SAML2.
The NameIDPolicy can no longer be represented as an array, but has to be handled using the newly added NameIDPolicy-class.
The API of the StatusResponse-class has been slightly changed; getStatus/setStatus will now handle Status-objects instead of the previous array
The assertion processor in 4.0 assumed all assertions are encrypted and would try and decrypt twice, causing a fatal error. This problem was introduced in #120.
If you are using the assertion processor as a stand-alone component, then you will have to update your code to reflect this change, see: 97a7bd0.
The response processor in pre 4.0 releases assumed all assertions are decrypted, and caused a fatal error when the response was unsigned. This problem was fixed in #120.
If you are using the assertion processor as a stand-alone component, then you will have to update your code to reflect this change, see: e6c01fa.
In pre 4.0 releases we allowed both objects and arrays to be used for Issuers and nameIDs. We know only support objects. If in your code you use something like this:
$assertion = new \SAML2\Assertion();
$assertion->setIssuer('someissuer');
You would now replace that with:
$issuer = new \SAML2\XML\saml\Issuer();
$issuer->setValue('someissuer');
$assertion = new \SAML2\Assertion();
$assertion->setIssuer($issuer);
All public properies have been replaced by either protected or private properties. Public getter/setter methods are available to set/get values.
The PSR-0 autoloader has been removed. If your code isn't prepared to use PSR-4 namespaces yet, then you would have to change that before using this version.