adjust Nextcloud app to php-saml 3.0

Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
This commit is contained in:
Björn Schiessle 2018-10-04 16:00:37 +02:00
parent a9fbc8703e
commit 425173365e
No known key found for this signature in database
GPG Key ID: 2378A753E2BF04F6
2 changed files with 16 additions and 9 deletions

View File

@ -61,8 +61,8 @@ $type = '';
switch($config->getAppValue('user_saml', 'type')) {
case 'saml':
try {
$oneLoginSettings = new \OneLogin_Saml2_Settings($samlSettings->getOneLoginSettingsArray(1));
} catch (OneLogin_Saml2_Error $e) {
$oneLoginSettings = new \OneLogin\Saml2\Settings($samlSettings->getOneLoginSettingsArray(1));
} catch (\OneLogin\SAML2\Error $e) {
$returnScript = true;
}
$type = 'saml';

View File

@ -37,6 +37,10 @@ use OCP\IURLGenerator;
use OCP\IUser;
use OCP\IUserManager;
use OCP\IUserSession;
use OneLogin\Saml2\Auth;
use OneLogin\Saml2\Error;
use OneLogin\Saml2\Settings;
use OneLogin\Saml2\ValidationError;
class SAMLController extends Controller {
/** @var ISession */
@ -161,7 +165,7 @@ class SAMLController extends Controller {
$type = $this->config->getAppValue($this->appName, 'type');
switch($type) {
case 'saml':
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$auth = new Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$ssoUrl = $auth->login(null, [], false, false, true);
$this->session->set('user_saml.AuthNRequestID', $auth->getLastRequestID());
$this->session->set('user_saml.OriginalUrl', $this->request->getParam('originalUrl', ''));
@ -201,18 +205,18 @@ class SAMLController extends Controller {
* @NoCSRFRequired
* @param int $idp
* @return Http\DataDownloadResponse
* @throws \OneLogin_Saml2_Error
* @throws Error
*/
public function getMetadata($idp) {
$settings = new \OneLogin_Saml2_Settings($this->SAMLSettings->getOneLoginSettingsArray($idp));
$settings = new Settings($this->SAMLSettings->getOneLoginSettingsArray($idp));
$metadata = $settings->getSPMetadata();
$errors = $settings->validateMetadata($metadata);
if (empty($errors)) {
return new Http\DataDownloadResponse($metadata, 'metadata.xml', 'text/xml');
} else {
throw new \OneLogin_Saml2_Error(
throw new Error(
'Invalid SP metadata: '.implode(', ', $errors),
\OneLogin_Saml2_Error::METADATA_SP_INVALID
Error::METADATA_SP_INVALID
);
}
}
@ -225,6 +229,8 @@ class SAMLController extends Controller {
* @NoSameSiteCookieRequired
*
* @return Http\RedirectResponse|void
* @throws Error
* @throws ValidationError
*/
public function assertionConsumerService() {
$AuthNRequestID = $this->session->get('user_saml.AuthNRequestID');
@ -233,7 +239,7 @@ class SAMLController extends Controller {
return;
}
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$auth = new Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$auth->processResponse($AuthNRequestID);
$errors = $auth->getErrors();
@ -294,6 +300,7 @@ class SAMLController extends Controller {
* @NoCSRFRequired
*
* @return Http\RedirectResponse
* @throws Error
*/
public function singleLogoutService() {
@ -307,7 +314,7 @@ class SAMLController extends Controller {
if($pass) {
$idp = $this->session->get('user_saml.Idp');
$auth = new \OneLogin_Saml2_Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$auth = new Auth($this->SAMLSettings->getOneLoginSettingsArray($idp));
$returnTo = null;
$parameters = array();
$nameId = $this->session->get('user_saml.samlNameId');