Changeset 3147410
- Timestamp:
- 09/06/2024 07:51:30 AM (17 months ago)
- Location:
- miniorange-saml-20-single-sign-on
- Files:
-
- 212 added
- 22 edited
-
tags/5.1.8 (added)
-
tags/5.1.8/changelog.txt (added)
-
tags/5.1.8/class-mo-saml-assertion.php (added)
-
tags/5.1.8/class-mo-saml-customer.php (added)
-
tags/5.1.8/class-mo-saml-idp-metadata-reader.php (added)
-
tags/5.1.8/class-mo-saml-logger.php (added)
-
tags/5.1.8/class-mo-saml-login-validate.php (added)
-
tags/5.1.8/class-mo-saml-login-widget.php (added)
-
tags/5.1.8/class-mo-saml-response.php (added)
-
tags/5.1.8/class-mo-saml-utilities.php (added)
-
tags/5.1.8/class-mo-saml-wp-config-editor.php (added)
-
tags/5.1.8/handlers (added)
-
tags/5.1.8/handlers/class-mo-saml-attribute-mapping-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-base-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-contact-us-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-customer-login-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-database-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-debug-log-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-feedback-form-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-post-save-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-role-mapping-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-service-provider-metadata-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-service-provider-settings-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-sso-settings-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-upload-metadata-handler.php (added)
-
tags/5.1.8/handlers/class-mo-saml-welcome-modal-handler.php (added)
-
tags/5.1.8/handlers/index.php (added)
-
tags/5.1.8/images (added)
-
tags/5.1.8/images/addons_logos (added)
-
tags/5.1.8/images/addons_logos/attribute_based_redirection.webp (added)
-
tags/5.1.8/images/addons_logos/azure_multi_tenant_addon.webp (added)
-
tags/5.1.8/images/addons_logos/azure_sync.webp (added)
-
tags/5.1.8/images/addons_logos/buddypress.webp (added)
-
tags/5.1.8/images/addons_logos/close.webp (added)
-
tags/5.1.8/images/addons_logos/employee_directory.webp (added)
-
tags/5.1.8/images/addons_logos/file_prevention.webp (added)
-
tags/5.1.8/images/addons_logos/fsso.webp (added)
-
tags/5.1.8/images/addons_logos/guest_login.webp (added)
-
tags/5.1.8/images/addons_logos/index.php (added)
-
tags/5.1.8/images/addons_logos/ip_whitelisting_addon.webp (added)
-
tags/5.1.8/images/addons_logos/learndash.webp (added)
-
tags/5.1.8/images/addons_logos/memberpress.webp (added)
-
tags/5.1.8/images/addons_logos/page_restriction.webp (added)
-
tags/5.1.8/images/addons_logos/paid_mem_pro.webp (added)
-
tags/5.1.8/images/addons_logos/power_bi.webp (added)
-
tags/5.1.8/images/addons_logos/profile_picture_add_on.webp (added)
-
tags/5.1.8/images/addons_logos/salesforce_community_addon.webp (added)
-
tags/5.1.8/images/addons_logos/salesforce_sync.webp (added)
-
tags/5.1.8/images/addons_logos/scim.webp (added)
-
tags/5.1.8/images/addons_logos/sharepoint.webp (added)
-
tags/5.1.8/images/addons_logos/ssologin.webp (added)
-
tags/5.1.8/images/addons_logos/ssosession.webp (added)
-
tags/5.1.8/images/addons_logos/user-sync.webp (added)
-
tags/5.1.8/images/addons_logos/woocommerce.webp (added)
-
tags/5.1.8/images/addons_logos/wp_members.webp (added)
-
tags/5.1.8/images/angry.webp (added)
-
tags/5.1.8/images/contact-form-bg.webp (added)
-
tags/5.1.8/images/crown.webp (added)
-
tags/5.1.8/images/dotted-bg-mo-saml.webp (added)
-
tags/5.1.8/images/edit-icon.webp (added)
-
tags/5.1.8/images/error.webp (added)
-
tags/5.1.8/images/flags16.webp (added)
-
tags/5.1.8/images/green_check.webp (added)
-
tags/5.1.8/images/happy.webp (added)
-
tags/5.1.8/images/idp-guides-logos (added)
-
tags/5.1.8/images/idp-guides-logos/absorb-lms.webp (added)
-
tags/5.1.8/images/idp-guides-logos/adfs.webp (added)
-
tags/5.1.8/images/idp-guides-logos/auth0.webp (added)
-
tags/5.1.8/images/idp-guides-logos/authanvil.webp (added)
-
tags/5.1.8/images/idp-guides-logos/azure-ad.webp (added)
-
tags/5.1.8/images/idp-guides-logos/azure-b2c.webp (added)
-
tags/5.1.8/images/idp-guides-logos/bitium.webp (added)
-
tags/5.1.8/images/idp-guides-logos/ca-identity.webp (added)
-
tags/5.1.8/images/idp-guides-logos/centrify.webp (added)
-
tags/5.1.8/images/idp-guides-logos/classlink.webp (added)
-
tags/5.1.8/images/idp-guides-logos/custom-idp.webp (added)
-
tags/5.1.8/images/idp-guides-logos/cyberark.webp (added)
-
tags/5.1.8/images/idp-guides-logos/degreed.webp (added)
-
tags/5.1.8/images/idp-guides-logos/drupal.webp (added)
-
tags/5.1.8/images/idp-guides-logos/duo.webp (added)
-
tags/5.1.8/images/idp-guides-logos/dynamic-crm.webp (added)
-
tags/5.1.8/images/idp-guides-logos/fonteva.webp (added)
-
tags/5.1.8/images/idp-guides-logos/fusionauth.webp (added)
-
tags/5.1.8/images/idp-guides-logos/gluu-server.webp (added)
-
tags/5.1.8/images/idp-guides-logos/google-apps.webp (added)
-
tags/5.1.8/images/idp-guides-logos/identityserver4.webp (added)
-
tags/5.1.8/images/idp-guides-logos/index.php (added)
-
tags/5.1.8/images/idp-guides-logos/jboss-keycloak.webp (added)
-
tags/5.1.8/images/idp-guides-logos/jumpcloud.webp (added)
-
tags/5.1.8/images/idp-guides-logos/lastpass.webp (added)
-
tags/5.1.8/images/idp-guides-logos/miniorange.webp (added)
-
tags/5.1.8/images/idp-guides-logos/netiq.webp (added)
-
tags/5.1.8/images/idp-guides-logos/office365.webp (added)
-
tags/5.1.8/images/idp-guides-logos/okta.webp (added)
-
tags/5.1.8/images/idp-guides-logos/onelogin.webp (added)
-
tags/5.1.8/images/idp-guides-logos/openam.webp (added)
-
tags/5.1.8/images/idp-guides-logos/openathens.webp (added)
-
tags/5.1.8/images/idp-guides-logos/oracle-enterprise-manager.webp (added)
-
tags/5.1.8/images/idp-guides-logos/phenixid.webp (added)
-
tags/5.1.8/images/idp-guides-logos/pingfederate.webp (added)
-
tags/5.1.8/images/idp-guides-logos/pingone.webp (added)
-
tags/5.1.8/images/idp-guides-logos/rsa-secureid.webp (added)
-
tags/5.1.8/images/idp-guides-logos/salesforce.webp (added)
-
tags/5.1.8/images/idp-guides-logos/secureauth.webp (added)
-
tags/5.1.8/images/idp-guides-logos/sharepoint.webp (added)
-
tags/5.1.8/images/idp-guides-logos/shibboleth2.webp (added)
-
tags/5.1.8/images/idp-guides-logos/shibboleth3.webp (added)
-
tags/5.1.8/images/idp-guides-logos/simplesaml.webp (added)
-
tags/5.1.8/images/idp-guides-logos/siteminder.webp (added)
-
tags/5.1.8/images/idp-guides-logos/surfconext.webp (added)
-
tags/5.1.8/images/idp-guides-logos/vmware.webp (added)
-
tags/5.1.8/images/idp-guides-logos/windows.webp (added)
-
tags/5.1.8/images/idp-guides-logos/wordpress.webp (added)
-
tags/5.1.8/images/idp-guides-logos/wso2.webp (added)
-
tags/5.1.8/images/index.php (added)
-
tags/5.1.8/images/loadingbar.webp (added)
-
tags/5.1.8/images/lock-icon.webp (added)
-
tags/5.1.8/images/mail.webp (added)
-
tags/5.1.8/images/miniorange.webp (added)
-
tags/5.1.8/images/miniorange_logo.webp (added)
-
tags/5.1.8/images/mo-saml-registration-form-bg.webp (added)
-
tags/5.1.8/images/normal.webp (added)
-
tags/5.1.8/images/note.webp (added)
-
tags/5.1.8/images/paypal-logo.webp (added)
-
tags/5.1.8/images/phone.webp (added)
-
tags/5.1.8/images/premium_plans_icon.webp (added)
-
tags/5.1.8/images/sad.webp (added)
-
tags/5.1.8/images/smile.webp (added)
-
tags/5.1.8/images/snow.webp (added)
-
tags/5.1.8/images/success.webp (added)
-
tags/5.1.8/images/wrong.webp (added)
-
tags/5.1.8/includes (added)
-
tags/5.1.8/includes/css (added)
-
tags/5.1.8/includes/css/all.min.css (added)
-
tags/5.1.8/includes/css/bootstrap (added)
-
tags/5.1.8/includes/css/bootstrap/index.php (added)
-
tags/5.1.8/includes/css/bootstrap/mo-saml-bootstrap.min.css (added)
-
tags/5.1.8/includes/css/datetime-style-settings.min.css (added)
-
tags/5.1.8/includes/css/images (added)
-
tags/5.1.8/includes/css/images/flags16.webp (added)
-
tags/5.1.8/includes/css/images/index.php (added)
-
tags/5.1.8/includes/css/images/ui-bg_flat_75_ffffff_40x100.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_222222_256x240.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_2e83ff_256x240.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_444444_256x240.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_454545_256x240.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_555555_256x240.webp (added)
-
tags/5.1.8/includes/css/images/ui-icons_888888_256x240.webp (added)
-
tags/5.1.8/includes/css/index.php (added)
-
tags/5.1.8/includes/css/jquery-ui.min.css (added)
-
tags/5.1.8/includes/css/notice.min.css (added)
-
tags/5.1.8/includes/css/phone.min.css (added)
-
tags/5.1.8/includes/css/style-icon.min.css (added)
-
tags/5.1.8/includes/css/style_settings.min.css (added)
-
tags/5.1.8/includes/fonts (added)
-
tags/5.1.8/includes/fonts/index.php (added)
-
tags/5.1.8/includes/fonts/miniorange.eot (added)
-
tags/5.1.8/includes/fonts/miniorange.svg (added)
-
tags/5.1.8/includes/fonts/miniorange.ttf (added)
-
tags/5.1.8/includes/fonts/miniorange.woff (added)
-
tags/5.1.8/includes/index.php (added)
-
tags/5.1.8/includes/js (added)
-
tags/5.1.8/includes/js/bootstrap (added)
-
tags/5.1.8/includes/js/bootstrap/index.php (added)
-
tags/5.1.8/includes/js/index.php (added)
-
tags/5.1.8/includes/js/jquery.timepicker.min.js (added)
-
tags/5.1.8/includes/js/notice.min.js (added)
-
tags/5.1.8/includes/js/phone.min.js (added)
-
tags/5.1.8/includes/js/select2.min.js (added)
-
tags/5.1.8/includes/js/settings.min.js (added)
-
tags/5.1.8/includes/lib (added)
-
tags/5.1.8/includes/lib/SAML2Core (added)
-
tags/5.1.8/includes/lib/SAML2Core/Utils (added)
-
tags/5.1.8/includes/lib/SAML2Core/Utils/class-mo-saml-xpath.php (added)
-
tags/5.1.8/includes/lib/SAML2Core/Utils/index.php (added)
-
tags/5.1.8/includes/lib/SAML2Core/class-mo-saml-xml-sec-enc.php (added)
-
tags/5.1.8/includes/lib/SAML2Core/class-mo-saml-xml-security-dsig.php (added)
-
tags/5.1.8/includes/lib/SAML2Core/class-mo-saml-xml-security-key.php (added)
-
tags/5.1.8/includes/lib/SAML2Core/index.php (added)
-
tags/5.1.8/includes/lib/class-mo-saml-basic-enum.php (added)
-
tags/5.1.8/includes/lib/class-mo-saml-options-enum-error-codes.php (added)
-
tags/5.1.8/includes/lib/class-mo-saml-options-enum.php (added)
-
tags/5.1.8/includes/lib/index.php (added)
-
tags/5.1.8/index.php (added)
-
tags/5.1.8/login.php (added)
-
tags/5.1.8/mo-saml-import-export.php (added)
-
tags/5.1.8/mo-saml-settings-page.php (added)
-
tags/5.1.8/mo-saml-xmlseclibs.php (added)
-
tags/5.1.8/readme.txt (added)
-
tags/5.1.8/resources (added)
-
tags/5.1.8/resources/index.php (added)
-
tags/5.1.8/resources/lang (added)
-
tags/5.1.8/resources/lang/index.php (added)
-
tags/5.1.8/resources/lang/miniorange-saml-20-single-sign-on.pot (added)
-
tags/5.1.8/uninstall.php (added)
-
tags/5.1.8/views (added)
-
tags/5.1.8/views/index.php (added)
-
tags/5.1.8/views/mo-saml-account-setup.php (added)
-
tags/5.1.8/views/mo-saml-addons.php (added)
-
tags/5.1.8/views/mo-saml-attribute-role-mapping.php (added)
-
tags/5.1.8/views/mo-saml-debug-logs.php (added)
-
tags/5.1.8/views/mo-saml-error-code.php (added)
-
tags/5.1.8/views/mo-saml-feedback-form.php (added)
-
tags/5.1.8/views/mo-saml-notice.php (added)
-
tags/5.1.8/views/mo-saml-plugin-core.php (added)
-
tags/5.1.8/views/mo-saml-redirection-sso-links.php (added)
-
tags/5.1.8/views/mo-saml-service-provider-metadata.php (added)
-
tags/5.1.8/views/mo-saml-service-provider-setup.php (added)
-
tags/5.1.8/views/mo-saml-support-form.php (added)
-
trunk/changelog.txt (modified) (1 diff)
-
trunk/class-mo-saml-assertion.php (modified) (2 diffs)
-
trunk/class-mo-saml-customer.php (modified) (1 diff)
-
trunk/class-mo-saml-logger.php (modified) (3 diffs)
-
trunk/class-mo-saml-login-validate.php (modified) (6 diffs)
-
trunk/class-mo-saml-utilities.php (modified) (4 diffs)
-
trunk/class-mo-saml-wp-config-editor.php (modified) (2 diffs)
-
trunk/handlers/class-mo-saml-base-handler.php (modified) (1 diff)
-
trunk/handlers/class-mo-saml-debug-log-handler.php (modified) (1 diff)
-
trunk/images/addons_logos/azure_multi_tenant_addon.webp (added)
-
trunk/images/addons_logos/ip_whitelisting_addon.webp (added)
-
trunk/images/addons_logos/salesforce_community_addon.webp (added)
-
trunk/images/miniorange_logo.webp (modified) (previous)
-
trunk/includes/css/notice.min.css (modified) (1 diff)
-
trunk/includes/css/style_settings.min.css (modified) (1 diff)
-
trunk/includes/lib/class-mo-saml-options-enum-error-codes.php (modified) (16 diffs)
-
trunk/includes/lib/class-mo-saml-options-enum.php (modified) (4 diffs)
-
trunk/login.php (modified) (6 diffs)
-
trunk/mo-saml-import-export.php (modified) (1 diff)
-
trunk/mo-saml-settings-page.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/views/mo-saml-account-setup.php (modified) (4 diffs)
-
trunk/views/mo-saml-addons.php (modified) (1 diff)
-
trunk/views/mo-saml-notice.php (modified) (1 diff)
-
trunk/views/mo-saml-plugin-core.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
miniorange-saml-20-single-sign-on/trunk/changelog.txt
r2540474 r3147410 5 5 This file contains older changelog entries, so we can keep the size of the standard WordPress readme.txt file reasonable. 6 6 For the latest changes, please refer to the "Changelog" section in the [readme.txt file](https://plugins.svn.wordpress.org/miniorange-saml-20-single-sign-on/trunk/readme.txt). 7 8 = 5.0.9 = 9 * Fix for iconv() warning in linux environment 10 * Fix for upgrade to premium versions 11 * Minor UI improvements 12 13 = 5.0.8 = 14 * WP 6.4 Compatibility 15 * Compatibility fix with Themify Plugin 16 * UI fixes 17 18 = 5.0.7 = 19 * WP 6.3 Compatibility 20 * Added proper error message when wp-config.php is not writable for enabling debug logs 21 * Fix for warning in the list of IDP logos 22 23 = 5.0.6 = 24 * Fix for NetIQ SAML IDP Logo 25 * Fix for x509 certificate in SAML SSO Configurations 26 27 = 5.0.5 = 28 * Vulnerability fix for Broken Access Control in SSO Settings 29 30 = 5.0.4 = 31 * Added additional exception handling checks to enhance the validation of SAML Response 32 * Added Steps to download the paid plugin 33 * Minor Bug Fixes 34 35 = 5.0.3 = 36 * Added new IDPs like Siteminder, VMWare, OpenAthens 37 * Minor Bug Fixes 38 39 = 5.0.2 = 40 * Added new IDPs like Sharepoint, Dynamic CRM, LastPass, Drupal 41 42 = 5.0.1 = 43 * Compatibility with WordPress 6.2 44 * Added iconv encoding issue flow 45 * Fixed plugin update using FTP replace 46 * Fixed SSO widget title issue 47 * Fixed plugin deactivation issue 48 * Fixes in debug log functionality 49 50 = 5.0.0 = 51 * Added PHPCS fixes 52 53 = 4.9.32 = 54 * Security fix for Open Redirect Vulnerability 55 56 = 4.9.31 = 57 * Fixes in logger functionality 58 59 = 4.9.30 = 60 * Added an option to disable assertion validity 61 * Added custom Bootstrap CSS and JS 62 * Updated images to webp format 63 * Added Azure AD Integrations 64 * Cross browser UI fixes 65 66 = 4.9.29 = 67 * Compatibility with WordPress 6.1 68 * Fixes for PHP 8.1 69 70 = 4.9.28 = 71 * Fixed console warning 72 73 = 4.9.27 = 74 * Plugin delete fix 75 76 = 4.9.26 = 77 * Modified code flow for form save 78 * Made Utilities class static 79 * Improvements in logger flow 80 81 = 4.9.25 = 82 * Updated intel-tel library 83 * Updated modenizr, Font Awesome, Time Picker libraries 84 * Improved design of success and error messages 85 * Added support for dynamic folder name for plugin 86 87 = 4.9.24 = 88 * Updated Bootstrap version 89 * Sanitization fixes for global variables 90 91 = 4.9.23 = 92 * Removed role mapping for existing users 93 94 = 4.9.22 = 95 * Fixed a bug with post login redirection 96 * Fixed RelayState URL 97 98 = 4.9.21 = 99 * Sanitization and Escaping fixes 100 * Role Mapping fix 101 102 = 4.9.20 = 103 * Introduced Error Codes 104 * Removed some obsolete functions 105 106 = 4.9.19 = 107 * Fixed UI compatibility with all themes 108 109 = 4.9.18 = 110 * Minor UI fixes 111 112 = 4.9.17 = 113 * Fixed Login button positioning 114 115 = 4.9.16 = 116 * Revamped plugin's UI 117 * NameID Format fix for ADFS 118 119 = 4.9.15 = 120 * Compatibility with WordPress 5.9 121 * Added Support for NameID Policy in SAML Request 122 123 = 4.9.14 = 124 * Removed end of year sale 125 * Readme updates 126 127 = 4.9.13 = 128 * License Banner fixes 129 130 = 4.9.12 = 131 * Added discounted pricing for WordPress SSO plans 132 133 = 4.9.11 = 134 * Updated licensing plans for SAML SSO 135 * Fixed bugs for Debug Framework 136 * Other UI fixes 137 138 = 4.9.10 = 139 * Fixed an issue with broken plugin links 140 141 = 4.9.09 = 142 * Added Debug Logs Framework 143 * Added new IDP's support for SSO 144 * WordPress 5.8 Compatibility 145 146 = 4.9.08 = 147 * Demo request improvements 148 149 = 4.9.07 = 150 * Licensing Update for WordPress SSO plans 151 152 = 4.9.06 = 153 * UI changes and fixes 154 * Readme changes 155 156 = 4.9.05 = 157 * UI improvements and fixes 158 * WordPress 5.7 Compatibility 159 160 = 4.9.04 = 161 * Licensing Update for WordPress SSO plans 162 163 = 4.9.03 = 164 * Added video plugin guides for WordPress SSO 165 166 = 4.9.02 = 167 * Welcome page fixes 168 169 = 4.9.01 = 170 * Added support of Localization 171 * WordPress 5.6 Loop back issue fix 172 * PHP 8 Compatibility 173 * Fixed SAML Login URL query parameters bug 174 * Removed end of year sale 175 176 = 4.9.00 = 177 * Rolled out end of year sale 7 178 8 179 = 4.8.99 = -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-assertion.php
r3110324 r3147410 234 234 if ( isset( $_POST['RelayState'] ) && 'testValidate' === $_POST['RelayState'] ) { 235 235 Mo_SAML_Logger::mo_saml_add_log( 'Assertion encrypted', Mo_SAML_Logger::ERROR ); 236 $error_cause = $error_code['cause']; 237 $error_message = $error_code['testConfig_msg']; 238 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 239 mo_saml_download_logs( $error_cause, $error_message ); 236 mo_saml_display_test_config_error_page( $error_code ); 240 237 exit; 241 238 } else { … … 299 296 // phpcs:ignore WordPress.Security.NonceVerification.Missing -- This POST is recieved from the IDP side and hence will not contain nonce. 300 297 if ( isset( $_POST['RelayState'] ) && 'testValidate' === $_POST['RelayState'] ) { 301 $error_cause = $error_code['cause']; 302 $error_message = $error_code['testConfig_msg']; 303 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 304 mo_saml_download_logs( $error_cause, $error_message ); 298 mo_saml_display_test_config_error_page( $error_code ); 305 299 } else { 306 300 Mo_SAML_Utilities::mo_saml_die( $error_code ); -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-customer.php
r3110324 r3147410 178 178 179 179 if ( $call_setup ) { 180 $query = '[Call Request - WP SAML SP SSO Plugin ] ' . $query;180 $query = '[Call Request - WP SAML SP SSO Plugin v' . Mo_Saml_Options_Plugin_Constants::VERSION . '] ' . $query; 181 181 } else { 182 $query = '[WP SAML 2.0 SP SSO Plugin ] ' . $query;182 $query = '[WP SAML 2.0 SP SSO Plugin v' . Mo_Saml_Options_Plugin_Constants::VERSION . '] ' . $query; 183 183 } 184 184 -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-logger.php
r3110324 r3147410 43 43 */ 44 44 public static function mo_saml_is_log_file_writable() { 45 return wp_is_writable( self::mo_saml_get_saml_log_directory() ); 46 } 47 48 /*** 45 if ( is_dir( self::mo_saml_get_saml_log_directory() ) ) { 46 return wp_is_writable( self::mo_saml_get_saml_log_directory() ); 47 } 48 } 49 50 /** 49 51 * Initializes directory to write debug logs. 52 * 53 * @throws Exception Directory Not created. 50 54 */ 51 55 public static function mo_saml_init() { 52 53 56 // For setting up debug directory for log files. 54 $upload_dir = wp_upload_dir( null, false ); 55 if ( wp_is_writable( $upload_dir['basedir'] ) ) { 57 $upload_dir = wp_upload_dir( null, false ); 58 $log_dir = self::mo_saml_get_saml_log_directory(); 59 $upload_basedir = str_replace( '\\', '/', $upload_dir['basedir'] ); 60 if ( wp_is_writable( $upload_basedir ) ) { 56 61 self::$log_file_writable = true; 57 if ( ! is_dir( self::mo_saml_get_saml_log_directory() ) ) { 62 if ( ! is_dir( $log_dir ) ) { 63 global $wp_filesystem; 64 if ( ! WP_Filesystem() ) { 65 return; 66 } 67 if ( ! $wp_filesystem->mkdir( $log_dir, 0755, true ) && ! is_dir( $log_dir ) ) { 68 throw new Exception( sprintf( 'Directory "%s" was not created', esc_html( $log_dir ) ) ); 69 } 58 70 self::mo_saml_create_files(); 59 71 } 60 72 } else { 61 add_action( 'admin_notices', 'mo_saml_directory_notice', 11 ); 62 } 63 } 64 65 /** 66 * This function is to get saml log directory. 73 add_action( 'admin_notices', array( __CLASS__, 'mo_saml_directory_notice' ) ); 74 } 75 } 76 77 /** 78 * This function is to get SAML log directory. 79 * 80 * @return string SAML log directory path. 67 81 */ 68 82 public static function mo_saml_get_saml_log_directory() { 69 83 $upload_dir = wp_upload_dir( null, false ); 70 71 return $upload_dir['basedir'] . '/mo-saml-logs/';84 $log_dir = $upload_dir['basedir'] . '/mo-saml-logs/'; 85 return str_replace( '\\', '/', $log_dir ); 72 86 } 73 87 … … 135 149 */ 136 150 public static function mo_saml_get_log_files() { 137 $files = scandir( self::mo_saml_get_saml_log_directory() );151 $files = is_dir( self::mo_saml_get_saml_log_directory() ) ? scandir( self::mo_saml_get_saml_log_directory() ) : ''; 138 152 $result = array(); 139 153 if ( ! empty( $files ) ) { … … 169 183 170 184 /** 171 * Get the file path of current log file used by plugins.185 * Get the file path of the current log file used by plugins. 172 186 * 173 187 * @param string $handle //file path. 188 * @return string|false The log file path or false on failure. 174 189 */ 175 190 public static function mo_saml_get_log_file_path( $handle ) { 176 191 if ( function_exists( 'wp_hash' ) ) { 177 return trailingslashit( self::mo_saml_get_saml_log_directory() ) . self::mo_saml_get_log_file_name( $handle ); 192 $log_file_path = trailingslashit( self::mo_saml_get_saml_log_directory() ) . self::mo_saml_get_log_file_name( $handle ); 193 return str_replace( '\\', '/', $log_file_path ); 178 194 } else { 179 195 return false; -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-login-validate.php
r3123187 r3147410 73 73 } 74 74 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Ignore the nonce verification for SSO initiation. 75 if ( ( isset( $_REQUEST['option'] ) && 'saml_user_login' === $_REQUEST['option'] ) || ( isset( $_REQUEST['option'] ) && 'testConfig' === $_REQUEST['option'] ) ) { 75 if ( isset( $_REQUEST['option'] ) && ( 'saml_user_login' === $_REQUEST['option'] || 'testConfig' === $_REQUEST['option'] ) ) { 76 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Ignore the nonce verification for extensions installation checks. 77 Mo_SAML_Utilities::mo_saml_check_required_extensions_installed( sanitize_text_field( wp_unslash( $_REQUEST['option'] ) ) ); 76 78 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Ignore the nonce verification for test config operation. 77 79 if ( 'testConfig' === $_REQUEST['option'] ) { … … 199 201 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR003']; 200 202 if ( 'testValidate' === $relay_state ) { 201 202 $error_cause = $error_code['cause']; 203 $error_message = $error_code['testConfig_msg']; 204 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 205 mo_saml_download_logs( $error_cause, $error_message ); 203 mo_saml_display_test_config_error_page( $error_code ); 206 204 exit; 207 205 } else { … … 253 251 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR004']; 254 252 if ( 'testValidate' === $relay_state ) { 255 $error_cause = $error_code['cause']; 256 $error_message = $error_code['testConfig_msg']; 257 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 258 mo_saml_download_logs( $error_cause, $error_message ); 253 $pem = '-----BEGIN CERTIFICATE-----<br>' . chunk_split( $saml_required_certificate, 64 ) . '<br>-----END CERTIFICATE-----'; 254 $display_metadata_mismatch = '<p><strong>Certificate found in SAML Response: </strong><font face="Courier New";font-size:10pt><br><br>' . $pem . '</p></font>'; 255 mo_saml_display_test_config_error_page( $error_code, $display_metadata_mismatch ); 259 256 exit; 260 257 } else { … … 265 262 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR012']; 266 263 if ( 'testValidate' === $relay_state ) { 267 $error_cause = $error_code['cause']; 268 $error_message = $error_code['testConfig_msg']; 269 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 270 mo_saml_download_logs( $error_cause, $error_message ); 264 mo_saml_display_test_config_error_page( $error_code ); 271 265 exit; 272 266 } else { … … 435 429 <div style="display:block;text-align:center;margin-bottom:4%;"><img style="width:15%;"src="' . esc_url( plugin_dir_url( __FILE__ ) ) . 'images/wrong.webp"></div>'; 436 430 } 437 431 $match_account_by = get_option( Mo_Saml_Options_Enum_Attribute_Mapping::ATTRIBUTE_ACCOUNT_MATCHER ) ? get_option( Mo_Saml_Options_Enum_Attribute_Mapping::ATTRIBUTE_ACCOUNT_MATCHER ) : 'email'; 438 432 if ( strlen( $name_id ) > 60 ) { 439 433 echo '<p><font color="#FF0000" style="font-size:14pt;font-weight:bold">Warning: The NameID value is longer than 60 characters. User will not be created during SSO.</font></p>'; 440 434 } 441 $match_account_by = get_option( Mo_Saml_Options_Enum_Attribute_Mapping::ATTRIBUTE_ACCOUNT_MATCHER ) ? get_option( Mo_Saml_Options_Enum_Attribute_Mapping::ATTRIBUTE_ACCOUNT_MATCHER ) : 'email'; 442 if ( 'email' === $match_account_by && ! filter_var( $name_id, FILTER_VALIDATE_EMAIL ) ) { 435 elseif ( 'email' === $match_account_by && ! filter_var( $name_id, FILTER_VALIDATE_EMAIL ) ) { 443 436 echo '<p><font color="#FF0000" style="font-size:14pt;font-weight:bold">Warning: The NameID value is not a valid Email ID</font></p>'; 444 437 } … … 662 655 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR006']; 663 656 if ( 'testValidate' === $relay_state ) { 664 $error_cause = $error_code['cause']; 665 $error_message = sprintf( $error_code['testConfig_msg'], $status_code ); 666 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message, $statusmessage ); 667 mo_saml_download_logs( $error_cause, $error_message ); 657 $statusmessage = sprintf( $error_code['testconfig_msg'], $status_code ); 658 mo_saml_display_test_config_error_page( $error_code, '', $statusmessage ); 668 659 exit; 669 660 } else { -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-utilities.php
r3110324 r3147410 64 64 */ 65 65 public static function mo_saml_generate_random_bytes( $length ) { 66 66 self::mo_saml_check_required_extensions_installed(); 67 67 return openssl_random_pseudo_bytes( $length ); 68 68 } … … 163 163 return $ret; 164 164 } 165 166 /** 167 * Get the list of required PHP extensions that are currently disabled. 168 * 169 * This function checks a predefined list of required PHP extensions and returns 170 * an array of extensions that are not currently installed or enabled on the server. 171 * 172 * @return array List of disabled PHP extensions. 173 */ 174 public static function mo_saml_get_disabled_extensions() { 175 $required_php_extensions = Mo_Saml_Required_PHP_Extensions::PHP_EXTENSIONS; 176 $disable_extensions = array(); 177 178 foreach ( $required_php_extensions as $key => $value ) { 179 if ( ! self::mo_saml_required_extensions_installed( $key ) ) { 180 array_push( $disable_extensions, $value ); 181 } 182 } 183 184 return $disable_extensions; 185 } 186 187 /** 188 * Function to check extenstion installed or not. 189 * 190 * @param string $extension_name The name of the PHP extension to check for. 191 * 192 * @return boolean 193 */ 194 public static function mo_saml_required_extensions_installed( $extension_name ) { 195 return in_array( $extension_name, get_loaded_extensions(), true ) ? true : false; 196 } 197 198 /** 199 * Check if the required extensions are installed and handle errors appropriately. 200 * 201 * @param string $option To check whether the request is from test configuration or sso flow. 202 */ 203 public static function mo_saml_check_required_extensions_installed( $option = '' ) { 204 self::mo_saml_display_extension_error( 'dom', 'WPSAMLERR015', $option ); 205 self::mo_saml_display_extension_error( 'openssl', 'WPSAMLERR020', $option ); 206 self::mo_saml_display_extension_error( 'curl', 'WPSAMLERR032', $option ); 207 } 208 209 /** 210 * Check if a specific extension is installed and displays errors as per their invocation context(test configuration or sso flow). 211 * 212 * @param string $extension The extension to check. 213 * @param string $error_code_key The error code key to retrieve the error code. 214 * @param string $option To check whether the request is from test configuration or sso flow. 215 */ 216 private static function mo_saml_display_extension_error( $extension, $error_code_key, $option ) { 217 if ( ! self::mo_saml_required_extensions_installed( $extension ) ) { 218 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes[ $error_code_key ]; 219 if ( 'testConfig' === $option ) { 220 mo_saml_display_test_config_error_page( $error_code ); 221 exit; 222 } 223 self::mo_saml_die( $error_code ); 224 } 225 } 226 227 /** 228 * Function to display the UI of the not installed extensions in plugin. 229 * 230 * @return void 231 */ 232 public static function mo_saml_extension_disabled_modal() { 233 234 $valid_pages = Mo_Saml_Plugin_Pages::PLUGIN_PAGES; 235 236 //phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Ignore the nonce verification. 237 if ( ! empty( $_GET['page'] ) && ( in_array( $_GET['page'], $valid_pages, true ) ) ) { 238 239 $disable_extensions = self::mo_saml_get_disabled_extensions(); 240 241 if ( ! empty( $disable_extensions ) ) { 242 echo ' 243 <div class="mo_saml_activate_modal"> 244 <div class="mo_saml_model_container"> 245 <div class="mo_saml_modal_content"> 246 <div class="mo_saml_modal_content_header"> 247 <img src="' . esc_attr( plugin_dir_url( __FILE__ ) ) . 'images/miniorange_logo.webp" width="57px" height="56px"> 248 <span class="mo_saml_modal_content_header-title">miniOrange SSO using SAML 2.0</span></br> 249 </div> 250 <div class="mo_saml_modal_content_extenstions"></br><span class="mo_saml_modal_content_extenstions-warning"><span class="mo_saml_modal_content_extenstions-warning2">Warning: Plugin disabled because required PHP extensions are missing.<br><br></span><span> Please enable the following PHP extensions:</span><br>'; 251 echo '<ol>'; 252 foreach ( $disable_extensions as $item ) { 253 echo '<li>' . esc_attr( $item ) . '</li>'; 254 } 255 echo '</ol></span><br> 256 <span>Please refresh the page after enabling the above extensions.</span> 257 </div>'; 258 echo '<hr><p class="mo_saml_support_info">For any further issues, please send an email to <a href="mailto: [email protected]"><i>[email protected]</i></a></p> 259 </div> 260 </div> 261 </div>'; 262 exit(); 263 } 264 } 265 } 266 165 267 /** 166 268 * Converts Date to Timestamp. … … 513 615 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR009']; 514 616 if ( 'testValidate' === $relay_state ) { 515 $error_cause = $error_code['cause']; 516 $error_message = $error_code['testConfig_msg']; 517 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 518 mo_saml_download_logs( $error_cause, $error_message ); 617 $display_metadata_mismatch = '<p><strong>Audience URI configured in Identity Provider: </strong>' . $audiences[0] . '<p> 618 <p><strong>Audience URI configured in the plugin: </strong>' . esc_html( $sp_entity_id ) . '</p>'; 619 mo_saml_display_test_config_error_page( $error_code, $display_metadata_mismatch ); 519 620 exit; 520 621 } else { … … 537 638 $error_code = Mo_Saml_Options_Enum_Error_Codes::$error_codes['WPSAMLERR010']; 538 639 if ( 'testValidate' === $relay_state ) { 539 $ error_cause = $error_code['cause'];540 $error_message = $error_code['testConfig_msg'];640 $display_metadata_mismatch = '<p><strong>Entity ID in SAML Response: </strong>' . esc_html( $issuer ) . '<p> 641 <p><strong>Entity ID configured in the plugin: </strong>' . esc_html( $issuer_to_validate_against ) . '</p>'; 541 642 update_option( Mo_Saml_Sso_Constants::MO_SAML_REQUIRED_ISSUER, $issuer ); 542 mo_saml_display_test_config_error_page( $error_code['code'], $error_cause, $error_message ); 543 mo_saml_download_logs( $error_cause, $error_message ); 643 mo_saml_display_test_config_error_page( $error_code, $display_metadata_mismatch ); 544 644 exit; 545 645 } else { -
miniorange-saml-20-single-sign-on/trunk/class-mo-saml-wp-config-editor.php
r3123187 r3147410 106 106 $contents = $this->wp_config_src . $this->mo_saml_wp_config_normalize( $name, $value ); 107 107 } else { 108 if ( ! is_string($this->wp_config_src) || false === strpos( $this->wp_config_src, $anchor ) ) {108 if ( ! is_string( $this->wp_config_src ) || false === strpos( $this->wp_config_src, $anchor ) ) { 109 109 update_option( 'mo_saml_message', __( 'Unable to locate placement anchor.', 'miniorange-saml-20-single-sign-on' ) ); 110 110 Mo_SAML_Utilities::mo_saml_show_error_message(); … … 220 220 } else { 221 221 // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents -- Reading the wp-config.php. 222 223 222 $wp_config_src = file_get_contents( $this->wp_config_path ); 224 223 -
miniorange-saml-20-single-sign-on/trunk/handlers/class-mo-saml-base-handler.php
r3110324 r3147410 48 48 if ( isset( $_POST['option'] ) ) { 49 49 $option = sanitize_text_field( wp_unslash( $_POST['option'] ) ); 50 check_admin_referer( $option ); 50 if ( 'mo_saml_register_customer' === $option || 'mo_saml_welcome_form' === $option ) { 51 check_admin_referer( $option, $option . '_nonce' ); 52 } else { 53 check_admin_referer( $option ); 54 } 51 55 } 52 56 -
miniorange-saml-20-single-sign-on/trunk/handlers/class-mo-saml-debug-log-handler.php
r3123187 r3147410 72 72 */ 73 73 public static function mo_saml_cleanup_logs() { 74 $file = Mo_SAML_Logger::mo_saml_get_log_file_path( 'mo_saml' ); 74 75 $retention_period = absint( apply_filters( 'mo_saml_logs_retention_period', 0 ) ); 75 76 $timestamp = strtotime( "-{$retention_period} days" ); 77 if ( ! file_exists( $file ) ) { 78 $post_save = new Mo_SAML_Post_Save_Handler( Mo_Saml_Save_Status_Constants::ERROR, Mo_Saml_Messages::mo_saml_translate( 'LOG_FILE_NOT_FOUND' ) ); 79 $post_save->mo_saml_post_save_action(); 80 return; 81 } 76 82 if ( is_callable( array( 'Mo_SAML_Logger', 'mo_saml_delete_logs_before_timestamp' ) ) ) { 77 83 Mo_SAML_Logger::mo_saml_delete_logs_before_timestamp( $timestamp ); -
miniorange-saml-20-single-sign-on/trunk/includes/css/notice.min.css
r3115588 r3147410 1 .mo_ notice_btn_style,.mo_notice_btn_text{vertical-align:middle}.mo_bg-cstm{background:#d5e2ff}.mo_shadow-cstm{box-shadow:0 2px 5px rgb(0 0 0 / 12%)}.mo_ps-5{padding-left:1rem!important}.mo_pb-5{padding-bottom:1rem!important}.mo_pe-5{padding-right:1rem!important}.mo_pt-3{padding-top:1rem!important}.mo_rounded{border-radius:.25rem!important}.mo_btn-cstm{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%)!important;border:none;font-size:1.1rem;padding:1px 1px 3px;color:#fff!important;cursor:pointer}.mo_mo-saml-bs-bs-btn[disabled],.mo_notice_btn_style{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%)}.mo_text-secondary{--bs-text-opacity:1;color:#464646}.mo_mo-saml-bs-bs-btn[disabled]{color:#fff!important;opacity:.65;cursor:not-allowed}.mo_mt-3{margin-top:1rem!important}.mo_me-3{margin-right:1rem!important}.mo_w-176{width:187px}.line_break_recommended{margin-bottom:46rem!important}.line_break_checkout{margin-bottom:23rem!important}.mo_notice_style{margin-top:2rem!important;margin-right:1rem;padding-bottom:1rem!important;font-size:.9rem}.mo_notice_btn_style{color:#fff;width:20%;font-size:.85rem;height:2rem}.mo_notice_cross_btn{background-color:transparent;border:none;float:right;cursor:pointer;}1 .mo_bg-cstm{background:#d5e2ff}.mo_shadow-cstm{box-shadow:0 2px 5px rgb(0 0 0 / 12%)}.mo_ps-5{padding-left:1rem!important}.mo_pb-5{padding-bottom:1rem!important}.mo_pe-5{padding-right:1rem!important}.mo_pt-3{padding-top:1rem!important}.mo_rounded{border-radius:.25rem!important}.mo_btn-cstm{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%)!important;border:none;font-size:1.1rem;padding:1px 1px 3px;color:#fff!important;cursor:pointer}.mo_text-secondary{--bs-text-opacity:1;color:#464646}.mo_mo-saml-bs-bs-btn[disabled]{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%);color:#fff!important;opacity:.65;cursor:not-allowed}.mo_mt-3{margin-top:1rem!important}.mo_me-3{margin-right:1rem!important}.mo_w-176{width:187px}.line_break_recommended{margin-bottom:46rem!important}.line_break_checkout{margin-bottom:23rem!important}.mo_notice_style{margin-top:2rem!important;margin-right:1rem;padding-bottom:1rem!important;font-size:.9rem}.mo_notice_btn_style{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%);color:#fff;width:20%;font-size:.85rem;height:2rem;vertical-align:middle}.mo_notice_btn_text{vertical-align:middle}.mo_notice_cross_btn{background-color:transparent;border:none;float:right;cursor:pointer}.mo-saml-trial-notice-banner{margin:4px}.mo-saml-notice-content{display:flex;justify-content:left;align-items:center}.mo-saml-logo{width:40px;height:40px}.mo-saml-warning-text{padding:6px}.mo-saml-warning-title{color:red;font-weight:700}.mo-saml-extension-list{font-weight:700} -
miniorange-saml-20-single-sign-on/trunk/includes/css/style_settings.min.css
r2990786 r3147410 1 .mo-saml-fb-radio[type=radio]{display:none}.mo_saml_table_textbox{width:80%}.mo_saml_heading_margin{margin-left:0}.openid_social_login{padding:5px 0 0 0;clear:both;width:100%!important}.login_wid li input{width:85%;float:left;margin:2px}.mo_saml_local_pricing_free_tab{background-color:rgba(34,153,221,.82)!important}.mo_saml_local_pricing_paid_tab{background-color:#1a71a4!important}.mo_saml_local_pricing_text{font-size:14px!important;color:#fff!important;font-weight:600!important}.mo_saml_local_pricing_sub_header{margin:2px!important;color:#fff!important}.mo_saml_local_pricing_header{color:#fff!important;margin:4px!important}.mo_saml_local_pricing_table{text-align:center;font-size:15px!important;background-color:#fff}.mo_saml_premium_thumbnail{width:350px;padding:4px;margin-bottom:10px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.mo-fa-icon>tr>td>i.fa{color:#5b8a0f}.mo_align-center>tr>td{text-align:center!important}.mo_table-bordered,.mo_table-bordered>tbody>tr>td{border:1px solid #ddd}.mo_table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.mo_table-bordered>thead>tr>th{vertical-align:top!important}.mo_plan-desc{font-size:14px!important}.mo-display-logs{color:#3c763d;background-color:#dff0d8;padding:2%;margin-bottom:20px;text-align:center;border:1px solid #aedb9a;font-size:18pt}.mo-display-block{color:#050505;width:-moz-available;min-height:300px!important;overflow:auto;display:inline-block;background-color:#f6f6f6;padding:2%;margin-bottom:20px;text-align:left;border:1px solid #aedb9a;font-size:12pt}.mo_divider{width:5px;height:auto;display:inline-block}.tooltip{position:relative;display:inline-block;size:letter}.tooltip .tooltiptext{visibility:hidden;width:120px;background-color:grey;color:#fff;text-align:center;padding:5px 0;border-radius:6px;font-size:12px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;font-size:small;opacity:50;transition:opacity .3s}.tooltip .tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.mo_modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.mo_modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0;margin-left:20%;margin-right:24%;margin-top:6%}.mo_saml_close{color:#aaa;float:right;font-size:28px;font-weight:700}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.modal-header{padding:15px}.modal-header .close{margin-top:-2px}.modal-body{position:relative;padding:15px;overflow-y:auto;overflow-x:hidden}.modal-dialog{position:relative;width:auto;margin:10px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-footer{text-align:center;background-color:#fff}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.mo-span-circle{display:inline-block;padding:15px;line-height:100%;-moz-border-radius:50%;border-radius:50%;background-color:#000;color:#fff;text-align:center;font-size:2em}.mo-saml-nav-tab-cstm{color:#1d2238;font-size:1rem;font-weight:500;padding:.9rem 1rem;cursor:pointer;transition:.3s cubic-bezier(.4,0,.2,1)}.mo-saml-nav-tab-cstm:hover{background-color:#e5e7e9;color:#000}.mo-saml-nav-tab-active{border-bottom:3px solid #384e7e}.mo-saml-nav-tab-active:hover{background:#d6e2f2;border-bottom:3px solid #04072a}.mo_copy{border:1px solid #ccc;padding:8px;background-color:#fbfbfb;cursor:pointer}.mo_copy:active{background-color:#ccc}.copytooltip{position:relative;display:inline-block;size:letter}.copytooltip .copytooltiptext{visibility:hidden;width:120px;background-color:grey;color:#fff;text-align:center;padding:5px 0;border-radius:6px;font-size:12px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;font-size:small;opacity:50;transition:opacity .3s}.copytooltip .copytooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.copytooltip:hover .copytooltiptext{visibility:visible;opacity:1}.mo_saml_padding_left_2{padding-left:2rem}.mo_demo_layout{margin-bottom:10px;padding-left:100px;padding-right:100px;border:none}.idp-guides-btns{display:flex;justify-content:center;text-align:center;padding:.5em 0 .5em 0}.guide-btn{background-color:#fff;border:1px solid #007cba;padding:.5em 0 .5em 1em;margin-right:2em;color:#007cba;font-weight:600;font-size:13px;border-radius:4px;box-shadow:2px 2px 5px rgba(0,0,0,.25);width:11em;letter-spacing:.4px;cursor:pointer}.idp-guides-logo.SimpleSAMLphp{width:18px;height:25px;margin-left:-9px;margin-right:2px;float:left}.idp-guides-logo{height:25px;width:24px;margin-right:2px;margin-left:-4px;float:left}.guide-btn:hover{background-color:#007cba;color:#fff}.modal{display:none;position:fixed;z-index:3;padding-top:100px;left:0;top:0;width:100%;height:100%;background-color:#000;background-color:rgba(0,0,0,.4);transition:all 1s}.modal-content{padding:20px;width:70%;border-radius:20px;box-shadow:5px 5px 5px rgba(0,0,0,.25);position:fixed;top:50%;left:55%;margin-right:-50%;transform:translate(-50%,-50%);height:650px;display:flex;background-color:#fff;flex-direction:column}.modal-button{width:15%;height:50px;font-size:20px!important}.editable{text-align:center;width:1em;height:1em}.sm{text-align:center;width:2vw;height:2vw;padding:1vw}.sm:hover{opacity:.6;cursor:pointer}.sm:active{opacity:.4;cursor:pointer}input[type=radio]:checked+label>.sm{border:2px solid #21ecdc}.call-setup-div{background:#d5e2ff;border-radius:5px;margin-top:10px;margin-right:10px;padding:10px}#call_setup_dets{display:none}.mo-saml-select-timezone{width:95%}.call-setup-heading{margin-top:0;margin-left:5px}.call-setup-label{padding-left:5px;font-size:15px}.call-setup-details{margin-left:5px;margin-top:5px}.call-setup-datetime{width:50%;float:left;position:relative;height:auto;min-height:100%!important}.call-setup-textbox{width:90%!important}.call-setup-notice{font-size:1rem}.saml-debug-button{min-width:200px;width:auto;margin:5px!important}a{outline:0!important}a,a:active,a:hover,a:visited{text-decoration:none!important}.lic-body{width:98%}#demo,#demo1{margin-right:1.4em;margin-left:0}td.text-start{padding:10px 15px}.nav-menu{display:flex;position:sticky;width:102%;top:32px;align-items:center;background:#2f4f4f;justify-content:space-evenly;z-index:1;box-shadow:2px 11px 10px #f7f7f7;height:3.1em}.goto-opt{padding:5px 0;font-size:1.6em!important}.goto-opt a{color:#fff;font-size:25px;font-weight:300}.goto-opt a:active,.goto-opt a:focus{color:#fff;box-shadow:none!important}.goto-opt a:hover{color:#fff}.goto-active{border-bottom:2px solid #fff;transition:2s;color:#fff}.plan-head-saml{color:#000;text-align:center;font-weight:350;margin-bottom:.1em;margin-top:.7em;width:100%}.faq-container{max-width:600px;margin:0 auto}.faq{background-color:transparent;border:1px solid #9fa4a8;border-radius:10px;padding:23px 22px 10px;position:relative;overflow:hidden;transition:.3s ease;cursor:pointer}.faq.active{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.1)}.faq-title{margin:1px 35px 0 0;color:#000;margin-bottom:1.2em;font-weight:400;font-size:1.2em;text-align:left}.faq-text{display:none;border-top:1px solid #f4f4f4;text-align:left;font-size:1rem}.faq.active .faq-text{display:block}.faq-toggle{background-color:transparent;color:#000;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;padding:0;position:absolute;top:16px;right:20px;height:40px;width:30px;border:none;z-index:1000}.faq-toggle .fa-times{display:none}.faq.active .faq-toggle .fa-times{display:block}.faq.active .faq-toggle .fa-chevron-down{display:none}.works-step div{color:#e67e22;border:2px solid #e67e22;border-radius:50%;width:40px;height:40px;text-align:center;float:left;font-size:20px;margin-right:25px;margin-bottom:27px}.plugin-banner-text-saml{color:#1f3668;line-height:2}.text-color{color:#fe7e00!important}.reg-plans-saml{background:linear-gradient(45deg,#ffeabc,#ffe194);border-radius:9px;height:35.4em}.common-rot{transition:.3s}.single-site{display:flex;justify-content:center;margin-left:3px}.multi-site{display:flex;justify-content:center;margin-left:3px}.single-site-rot{transform:rotateY(0)}.multi-site-rot{transform:rotateY(180deg)}.reg-plans-saml:hover{background:linear-gradient(125deg,#ffeabc,#ffe194)}.incl-plan-saml{background:linear-gradient(145deg,#c1f4ff,#dcdcdc);border-radius:9px;padding:.1em 1em 1.5em;height:35.4em}.incl-plan-saml:hover{background:linear-gradient(254deg,#7ee8ff,#dcdcdc)}.display-1{font-size:2.5em;font-weight:200}.header-h3{font-size:1.5em;margin-top:20px;margin-bottom:-20px;color:#585858}.header-h4{color:#000;font-weight:500;font-size:1.2em}.price-list{border-top:1px solid #fff;border-bottom:1px solid #fff;font-size:1.3em;background:#ffecbb;border-radius:10px;height:324px}.price-list-incl{background:linear-gradient(145deg,#e2faff,#e1e1e1)}.upg-btn{display:inline-block}.license-btn-saml{color:#fff!important;font-size:1em;padding:.5em 2rem;border-radius:6px;background:#2f4f4f;cursor:pointer;margin-top:10px;width:160px;height:43px}.border-rad-saml{border-radius:50px;padding:.7em .1rem;margin-right:15px}.license-btn-saml:hover{background:linear-gradient(15deg,#2f4f4f,#669a9a)}.box-shadow-saml{border-bottom:1px solid #ddd!important;margin-bottom:0!important;padding:10px 15px}.feat-head-saml{text-align:center;padding:12px;font-size:25px;font-weight:400}.choose-plan-saml{display:block;font-weight:350;color:#000;padding:10px 0 0 15px}.clk-icn{border:.2px solid rgb(0 0 0);font-weight:700;margin-top:2em;padding:.5em 2em;color:#000!important}.saml-pills{background:#e1e1e1;list-style:none;display:inline-flex;padding-top:1em;padding-left:.5em;padding-right:.5em;padding-bottom:.6em;border-radius:40px}.price-tag{width:100px;display:flex;justify-content:center;align-items:center;height:47px;border-radius:8px 8px 0 8px;background:#f4c346;z-index:99;position:absolute;top:-24px;left:70%}.price-tag-mult{left:75.7%}.product::after{content:"";position:absolute;border-right:25px solid transparent;border-top:10px solid #e7b32e;left:93%;z-index:-1;top:22px}.price{margin-top:10px;color:#fff;font-size:16px}.sticky-menu-saml{position:sticky;top:5.2em;padding-top:3em;background-color:#fff;z-index:0}.hover-saml{border-right:5px solid #fcf0d3;border-radius:10px;height:35.4em}.hover-saml:hover{background:linear-gradient(45deg,#ffebbf,#fdefcc);height:35.4em;border-radius:9px}.tabs{margin-bottom:1em;margin-top:1.5em}.tabs a.active{background:#2f4f4f;cursor:default;padding:12px 3em;color:#fff;transition:.5s;pointer-events:none}.tabs a{cursor:pointer;padding:12px 3em;font-size:17px;text-align:center;font-weight:600;border-radius:30px;color:#000}.saml-text{text-align:left;font-size:1rem}.faq-toggle:focus{outline:0}.tooltip-saml{position:relative}.tooltip-saml .tooltiptext{display:none;width:250px;background-color:#000000d4;color:#fff;text-align:center;border-radius:6px;padding:1em 2em;left:7.7em;bottom:-12.8em;position:absolute;z-index:1}.tooltip-saml .tooltiptext::after{content:" ";position:absolute;top:50%;right:100%;margin-top:-28px;border-width:5px;border-style:solid;border-color:transparent #000 transparent transparent}.tooltip-saml:hover{cursor:pointer}.tooltip-saml:hover .tooltiptext{display:block}.plan-box{height:18em;background-color:#cab9c81a;border-radius:10px;margin:0 10px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2);transition:.3s}.plan-box-up{padding:20px;border-bottom:4px solid #fff}.plan-box p{padding:20px;font-size:1rem;line-height:1.5}.tab-des{display:flex;padding:0;max-width:1200px;margin:0 auto 0;list-style:none;justify-content:center}.tab-link{display:block;padding:10px 15px;color:#2f4f4f;cursor:pointer;overflow:hidden}.active-tab{border-bottom:4px solid #2f4f4f!important;background-color:#08705c14}.integration-section{background:#f4f4f4;padding:0 2em 1em;border-radius:5px}@media screen and (min-width:1688px){.product::after{display:none}}@media screen and (max-width:1519px){.price-list{height:420px}.price-list-multi{height:269px}.price-tag{left:61%}.price-tag-mult{left:74%}.product::after{display:none}.hover-saml,.hover-saml:hover,.incl-plan-saml,.reg-plans-saml{height:40.6em}.multi-site-height,.multi-site-height:hover{height:33.3em}}@media screen and (max-width:1380px){.price-list{height:476px}.price-tag{left:56%}.price-list-multi{height:296px}.price-tag-mult{left:69%}.product::after{left:38px}.hover-saml,.hover-saml:hover,.incl-plan-saml,.reg-plans-saml{height:43.9em}.multi-site-height,.multi-site-height:hover{height:34.3em}}.cstm-iframe{padding:1rem;border:1px solid #dcdcde;background-color:#fff}.cstm-addon-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:1.2;margin-right:-15px;margin-left:-15px;padding:1rem 1rem 0}.mt-2{margin-top:2px!important}.cstm-h4{font-size:1.5rem}.cstm-h5{font-size:1.25rem;margin:.5rem 0 1rem}.cstm-input{box-shadow:1px 1px 6px #e3e1e1!important;border:1px solid #d5d5d5!important;padding:0 1rem!important}label{font-size:13px}.form-head{position:relative}.form-head:after{content:"";display:block;height:5px;background:#1f3668;margin-top:9px;border-radius:30px}.form-head-bar:after{width:50px}.form-sep:after{width:100%;background:#6c757d;height:2.3px;margin-top:-13px}.prem-info{padding:1rem;background:#f4f4f4;border:4px solid #d5e2ff;border-radius:5px}.anonymous-text,.attr-info-text,.entity-info-text,.nameid-prem-text,.prem-info-text,.provide-metadata-text,.role-admin-prem-text,.role-prem-text{display:none;width:400px;background-color:#000000d4;color:#fff;font-size:1.1rem;text-align:center;border-radius:6px;padding:.6em .5em;left:19em;bottom:-.2em;position:absolute;z-index:1}.prem-info-text{left:-25.5em;bottom:-2em}.mo-saml-provide-metadata-txt{left:13.4em;bottom:0}.mo-saml-redir-opts-txt{left:26em;bottom:0}.provide-metadata-text{left:18.8em;bottom:55.8em}.attr-info-text{left:14.1em;bottom:.2em}.role-map-info-text{left:11.1em;bottom:.2em}.anonymous-text{left:-25.3em;bottom:-2.7em}.nameid-prem-text{bottom:-4.4em;left:-25.2em}.auto-redir-text{bottom:-4.3em}.auto-redir-wp-text{bottom:-4.3em}.shortcode-text{bottom:-2.7em}.role-prem-text{bottom:-4.7em;left:-25.3em}.role-admin-prem-text{bottom:-4.6em;left:-25.3em}.sso-btn-prem-text{bottom:-4.3em;left:-25.3em}.mo-saml-sso-log-txt{bottom:.1em;left:25.9em}.mo-saml-sso-widget-txt{bottom:.1em;left:16.9em}.mo-saml-redir-site-txt{bottom:.1em;left:25.1em}.mo-saml-redir-wp-log-txt{bottom:.1em;left:33.4em}.mo-saml-sso-shortcode-txt{bottom:.1em;left:18.9em}.prem-icn{position:absolute;z-index:10;display:inline-flex;right:32.5%;filter:drop-shadow(#f6f6f6 9px 4px 1px)}.auto-redir-prem-img{left:63.3%}.sso-btn-prem-img{left:63.3%}.anonymous-text::after,.attr-info-text::after,.entity-info-text::after,.mo-saml-error-tip::after,.nameid-prem-text::after,.prem-info-text::after,.provide-metadata-text::after,.role-admin-prem-text::after,.role-prem-text::after{content:" ";position:absolute;top:84%;right:100%;margin-top:-28px;border-width:5px;border-style:solid;border-color:transparent #000 transparent transparent}.anonymous-text::after,.nameid-prem-text::after,.prem-info-text::after,.role-admin-prem-text::after,.role-prem-text::after,.sso-btn-prem-text::after{border-color:transparent transparent transparent #000000fa;left:100%}.mo-saml-error-tip{display:none;align-items:center;background:#fff;border:1px solid #767676;border-radius:4px;padding:.2rem .5rem;left:56.3%;top:6.9em;color:#414141}.mo-saml-error-tip::after{top:1.1em;right:51.1%;border-color:#ff7a7a00 #0000 #000000c7 transparent}@media screen and (width:1228.8px){.mo-saml-error-tip{top:6.9em;width:46%}.mo-saml-error-tip::after{top:1.1em}}.auto-redir-text::after,.auto-redir-wp-text::after,.nameid-prem-text::after,.role-admin-prem-text::after,.role-prem-text::after,.sso-btn-prem-text::after{top:49%}.entity-info:hover,.prem-info:hover{cursor:text}.attr-info:hover .attr-info-text,.entity-info:hover .entity-info-text,.prem-info:hover .anonymous-text,.prem-info:hover .nameid-prem-text,.prem-info:hover .prem-info-text,.prem-info:hover .role-admin-prem-text,.prem-info:hover .role-prem-text,.prem-info:hover .sso-btn-prem-text,.provide-metadata-info:hover .provide-metadata-text{display:block!important}.mo-saml-switch[type=checkbox]{height:0;width:0;visibility:hidden}.mo-saml-switch-label{cursor:pointer;margin-top:-1.5rem;text-indent:-9999px;width:56px;height:30px;background:#bfbdbd;display:block;border-radius:100px;position:relative}.mo-saml-switch-label:after{content:"";position:absolute;top:5px;left:5px;width:20px;height:20px;background:#fff;border-radius:90px;transition:.1s}.mo-saml-switch:checked+.mo-saml-switch-label{background:#163d77}.mo-saml-switch:checked+.mo-saml-switch-label:after{left:calc(100% - 5px);transform:translateX(-100%)}.mo-saml-switch-label:active:after{width:40px}.btn-cstm{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%)!important;border:none;font-size:1.1rem;padding:.3rem 1.5rem;color:#fff!important;cursor:pointer}.mo-saml-bs-btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.mo-saml-bs-bs-btn[disabled]{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%);color:#fff!important;opacity:.65;cursor:not-allowed}.w-176{width:179px}.mo-saml-w-186{width:186px}.w-372{width:395px}.mo-saml-alredy-have-btn:hover{color:#76bdd0!important;cursor:pointer}.btn-cstm:hover{background-color:#1f3668c4!important}.shadow-cstm{box-shadow:0 2px 5px rgb(0 0 0 / 12%)}.bg-main-cstm{background:#f4f4f4}.mo-saml-margin-left{margin-left:-20px}.bg-cstm{background:#d5e2ff}.contact-us-cstm{bottom:4%;position:fixed;right:1%;box-sizing:border-box;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:10;height:58px;width:209px;background-color:#1f3668;cursor:pointer;border-radius:50px;box-shadow:4px 3px 6px 0 #272727d9}.mo-saml-scroll-cstm{overflow-y:auto;height:236px;overflow-x:hidden}.logo-saml-cstm{padding:1em 0;border-radius:15px;background:#fff;max-width:88px;margin-right:7px;margin-top:1rem;height:83px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);cursor:pointer}.logo-saml-cstm h6{font-size:.8rem!important;word-break:break-all;margin-bottom:-.5rem}.logo-saml-cstm a{font-size:.8rem!important;font-weight:500;word-break:break-all;color:#212529!important}.logo-saml-cstm:hover{opacity:.7;transition:.2s}.mo-saml-scroll-cstm::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#f5f5f5}.mo-saml-scroll-cstm::-webkit-scrollbar{width:12px;background-color:#f5f5f5}.mo-saml-scroll-cstm::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#555}.idp-search-box{background:0 0!important;border:none!important;border-bottom:2px solid #fff!important;color:#fff;padding:10px 54px!important;font-size:18px;height:2.64285714em;width:100%}.idp-search-box:focus{box-shadow:none!important}.idp-search-glass{top:51px;left:150px;position:absolute}.btn-prem{color:#fff;padding:10px 25px;cursor:pointer;border-radius:50px;transition:all .3s ease;position:relative;display:inline-block;box-shadow:inset 2px 2px 2px 0 rgba(255,255,255,.5),7px 7px 20px 0 rgba(0,0,0,.1),4px 4px 5px 0 rgba(0,0,0,.1)}.prem-btn-cstm{border:none;background:orange;color:#fff;overflow:hidden}.prem-btn-cstm:before{position:absolute;content:"";display:inline-block;top:-180px;left:0;width:15px;height:100%;background-color:#fff;animation:shiny-btn1 3s ease-in-out infinite}.prem-btn-cstm:hover{ opacity:.7}.faq-btn-cstm{background-color:#89d8d3;background-image:linear-gradient(315deg,#89d8d3 0,#03c8a8 74%);border:none;z-index:1}.faq-btn-cstm:after{position:absolute;content:"";width:100%;height:0;bottom:0;left:0;z-index:-1;border-radius:5px;background-color:#4dccc6;background-image:linear-gradient(315deg,#4dccc6 0,#96e4df 74%);box-shadow:-7px -7px 20px 0 #fff9,-4px -4px 5px 0 #fff9,7px 7px 20px 0 #0002,4px 4px 5px 0 #0001;transition:all .3s ease}.faq-btn-cstm:hover{color:#fff}.faq-btn-cstm:hover:after{top:0;height:100%}.faq-btn-cstm:active{top:2px}@keyframes shiny-btn1{0%{-webkit-transform:scale(0) rotate(60deg);opacity:0}80%{-webkit-transform:scale(0) rotate(60deg);opacity:.5}81%{-webkit-transform:scale(4) rotate(60deg);opacity:1}100%{-webkit-transform:scale(30) rotate(60deg);opacity:0}}.pop-up-btns{line-height:10px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);border-radius:80px;color:#fff;background-color:orange}.pop-up-btns:hover{opacity:.7;color:#000}.contact-form-cstm{width:136%}.contact-form-head{padding:1rem;border-radius:8px;color:#4a4a4a;background:url(../../images/contact-form-bg.webp);background-size:cover}.contact-form-head p{line-height:1.8}.mo-saml-card-glass{background:url(../../images/dotted-bg-mo-saml.webp) right center/contain no-repeat,linear-gradient(153.07deg,rgb(213 226 255) -2.47%,rgb(243 247 255) 102.78%);border-radius:10px;padding:2em;width:136%}.mo-saml-ads-text{background:linear-gradient(135deg,rgb(255 255 255),rgba(255,255,255,.67));padding:.01rem 1.5rem 1em 1.5em;border-radius:30px;backdrop-filter:blur(2.5em)}.mo-saml-why-reg{font-size:.9rem}.reg-form{background:linear-gradient(153.07deg,rgb(213 226 255) -2.47%,rgb(249 249 249) 102.78%)}.reg-form input{border:1px solid #2b4d7f;background:0 0;border-radius:5px}.reg-form input:focus{box-shadow:none}#mo_saml_reg_back_btn,#mo_saml_reg_login_btn,.mo-saml-already-reg-field,.mo-saml-why-login-txt{display:none}.contact-form-body input,.contact-form-body textarea{background-color:#f3f7ff;border:1px solid #7090d5;padding:.2rem 1rem;width:100%}.contact-form-body input:focus,.contact-form-body textarea:focus{box-shadow:none}.mo-saml-call-setup{background:#f7f7f7;border-radius:20px}.bg-light{background-color:#d7d7d7!important}.cursor-disabled:hover{cursor:not-allowed}html{scroll-behavior:smooth}.mo-saml-tab-content,.mo-saml-tab-content1{display:none}#mo-saml-idp-manual-tab,#mo-saml-provide-metadata{display:block}.switch-tab-sp{background:#f7f7f7;padding:.5rem 1rem 0;display:flex;border-radius:10px;align-items:baseline;justify-content:center}.mo-saml-current{border-bottom:3px solid #042160;background:#f0f0f1;border-radius:2px}.switch-tab-sp a:hover{background-color:#e5e7e9}.switch-tab-sp a{color:#5d5d5d;font-weight:500}.switch-tab-sp a:focus{box-shadow:none}a:focus{box-shadow:none}.meta-data-table{border:1px solid #ddd;margin:1rem auto}.meta-data-table td{padding:.5rem .7rem}.meta-data-table tr:nth-child(even){background-color:#ebf1ff}#account-info-form,#addon-tab-form,#attr-role-tab-form,#cstm-idp-section,#demo-tab-form,#redir-sso-tab-form,#sp-meta-tab-form{transform:translate(-35px)}.mo-saml-opt-add-ons{margin-top:.6rem}.mo-saml-padding-block{padding:1.4rem 0}.mo-saml-btn-size{width:50px;background:#f8f9fa!important;margin-left:.5rem}.mo-saml-addons-logo{max-width:17%;height:auto;position:absolute;right:15px;top:80%}.mo-saml-addons-head{margin:1.1em 1.1em .5em;font-size:1.5rem;color:#5b5b5b;height:50px}.mo-saml-add-ons-cards{width:31.13%;float:left;height:336px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);display:block;background-size:cover;border-radius:15px;background:#fff;position:relative;overflow:hidden;margin-right:.6rem}@media screen and (max-width:1399px) and (min-width:1227px){.mo-saml-add-ons-cards{width:40.13%}}.mo-saml-addons-readmore{position:absolute;top:86%;left:3.8%;color:#0a0a0a;font-size:1.1rem;z-index:8;transition:all .6s ease;opacity:.8}.mo-saml-addons-readmore:hover{opacity:1;color:#000}.mo-saml-add-ons-tri{border-top:44px solid transparent;border-bottom:150px solid transparent;border-right:288px solid #f4f4f400;opacity:.4;position:absolute;display:block;top:0;right:-40%}.mo-saml-add-ons-tri:before{border-top:254px solid transparent;border-bottom:136px solid transparent;border-right:206px solid #e6eefd;position:absolute;content:"";display:block;top:-198px;right:-312px;z-index:-18}.mo-saml-add-ons-rect{width:487px;height:200px;position:absolute;top:75%;left:-78%;transform:rotate(30deg);z-index:5;filter:blur(1px);opacity:.9;transition:all .3s ease-in-out}.mo-saml-add-ons-rect:before{content:"";display:block;height:100%;background:#d5e2ff;z-index:2;transition:all .3s ease-in-out}code{line-height:1.9}.mo-saml-error-box{border:3px solid red}.mo-saml-form-head:after{content:"";display:block;height:5px;background:#1f3668;margin-top:9px;border-radius:30px}.mo-saml-form-head-bar:after{width:50px}.mo-saml-troubleshoot-table tr:nth-child(odd){background:#e9f0ff}.mo-saml-troubleshoot-table{border:1px solid #ddd;width:100%;margin-bottom:20px;border-collapse:collapse}.mo-saml-troubleshoot-table td{border:1px solid #ddd;padding:10px}.crown_img{width:35px!important}.note_img{width:25px!important;height:25px!important}.crown_img_small{width:20px!important}.error_msg{background-color:#ffdfdf!important;font-size:15px!important}.success_msg{background-color:#c8ffc8!important;font-size:15px!important}.radio-email input[type=radio]{opacity:0;position:fixed;width:0}.mo_saml_reg_page_header{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.mo_saml_feedback_email input[id=query_mail]{text-align:center;border:0 solid #000;border-style:solid;background:#f0f3f7;width:20vw;border-radius:6px}.mo_saml_download_paid_plugin_notice{background:#fef8e6;margin:2% 0 0;border-radius:4px;border:1.3px solid #f0d480;padding:0 7px;font:600 13px Inter;display:flex;align-items:center;gap:2%}1 .mo-saml-fb-radio[type=radio]{display:none}.mo_saml_table_textbox{width:80%}.mo_saml_heading_margin{margin-left:0}.openid_social_login{padding:5px 0 0 0;clear:both;width:100%!important}.login_wid li input{width:85%;float:left;margin:2px}.mo_saml_local_pricing_free_tab{background-color:rgba(34,153,221,.82)!important}.mo_saml_local_pricing_paid_tab{background-color:#1a71a4!important}.mo_saml_local_pricing_text{font-size:14px!important;color:#fff!important;font-weight:600!important}.mo_saml_local_pricing_sub_header{margin:2px!important;color:#fff!important}.mo_saml_local_pricing_header{color:#fff!important;margin:4px!important}.mo_saml_local_pricing_table{text-align:center;font-size:15px!important;background-color:#fff}.mo_saml_premium_thumbnail{width:350px;padding:4px;margin-bottom:10px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.mo-fa-icon>tr>td>i.fa{color:#5b8a0f}.mo_align-center>tr>td{text-align:center!important}.mo_table-bordered,.mo_table-bordered>tbody>tr>td{border:1px solid #ddd}.mo_table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.mo_table-bordered>thead>tr>th{vertical-align:top!important}.mo_plan-desc{font-size:14px!important}.mo-display-logs{color:#3c763d;background-color:#dff0d8;padding:2%;margin-bottom:20px;text-align:center;border:1px solid #aedb9a;font-size:18pt}.mo-display-block{color:#050505;width:-moz-available;min-height:300px!important;overflow:auto;display:inline-block;background-color:#f6f6f6;padding:2%;margin-bottom:20px;text-align:left;border:1px solid #aedb9a;font-size:12pt}.mo_divider{width:5px;height:auto;display:inline-block}.tooltip{position:relative;display:inline-block;size:letter}.tooltip .tooltiptext{visibility:hidden;width:120px;background-color:grey;color:#fff;text-align:center;padding:5px 0;border-radius:6px;font-size:12px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;font-size:small;opacity:50;transition:opacity .3s}.tooltip .tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.mo_modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.mo_modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0;margin-left:20%;margin-right:24%;margin-top:6%}.mo_saml_close{color:#aaa;float:right;font-size:28px;font-weight:700}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.modal-header{padding:15px}.modal-header .close{margin-top:-2px}.modal-body{position:relative;padding:15px;overflow-y:auto;overflow-x:hidden}.modal-dialog{position:relative;width:auto;margin:10px}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-footer{text-align:center;background-color:#fff}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.mo-span-circle{display:inline-block;padding:15px;line-height:100%;-moz-border-radius:50%;border-radius:50%;background-color:#000;color:#fff;text-align:center;font-size:2em}.mo-saml-nav-tab-cstm{color:#1d2238;font-size:1rem;font-weight:500;padding:.9rem 1rem;cursor:pointer;transition:.3s cubic-bezier(.4,0,.2,1)}.mo-saml-nav-tab-cstm:hover{background-color:#e5e7e9;color:#000}.mo-saml-nav-tab-active{border-bottom:3px solid #384e7e}.mo-saml-nav-tab-active:hover{background:#d6e2f2;border-bottom:3px solid #04072a}.mo_copy{border:1px solid #ccc;padding:8px;background-color:#fbfbfb;cursor:pointer}.mo_copy:active{background-color:#ccc}.copytooltip{position:relative;display:inline-block;size:letter}.copytooltip .copytooltiptext{visibility:hidden;width:120px;background-color:grey;color:#fff;text-align:center;padding:5px 0;border-radius:6px;font-size:12px;position:absolute;z-index:1;bottom:125%;left:50%;margin-left:-60px;font-size:small;opacity:50;transition:opacity .3s}.copytooltip .copytooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.copytooltip:hover .copytooltiptext{visibility:visible;opacity:1}.mo_saml_padding_left_2{padding-left:2rem}.mo_demo_layout{margin-bottom:10px;padding-left:100px;padding-right:100px;border:none}.idp-guides-btns{display:flex;justify-content:center;text-align:center;padding:.5em 0 .5em 0}.guide-btn{background-color:#fff;border:1px solid #007cba;padding:.5em 0 .5em 1em;margin-right:2em;color:#007cba;font-weight:600;font-size:13px;border-radius:4px;box-shadow:2px 2px 5px rgba(0,0,0,.25);width:11em;letter-spacing:.4px;cursor:pointer}.idp-guides-logo.SimpleSAMLphp{width:18px;height:25px;margin-left:-9px;margin-right:2px;float:left}.idp-guides-logo{height:25px;width:24px;margin-right:2px;margin-left:-4px;float:left}.guide-btn:hover{background-color:#007cba;color:#fff}.modal{display:none;position:fixed;z-index:3;padding-top:100px;left:0;top:0;width:100%;height:100%;background-color:#000;background-color:rgba(0,0,0,.4);transition:all 1s}.modal-content{padding:20px;width:70%;border-radius:20px;box-shadow:5px 5px 5px rgba(0,0,0,.25);position:fixed;top:50%;left:55%;margin-right:-50%;transform:translate(-50%,-50%);height:650px;display:flex;background-color:#fff;flex-direction:column}.modal-button{width:15%;height:50px;font-size:20px!important}.editable{text-align:center;width:1em;height:1em}.sm{text-align:center;width:2vw;height:2vw;padding:1vw}.sm:hover{opacity:.6;cursor:pointer}.sm:active{opacity:.4;cursor:pointer}input[type=radio]:checked+label>.sm{border:2px solid #21ecdc}.call-setup-div{background:#d5e2ff;border-radius:5px;margin-top:10px;margin-right:10px;padding:10px}#call_setup_dets{display:none}.mo-saml-select-timezone{width:95%}.call-setup-heading{margin-top:0;margin-left:5px}.call-setup-label{padding-left:5px;font-size:15px}.call-setup-details{margin-left:5px;margin-top:5px}.call-setup-datetime{width:50%;float:left;position:relative;height:auto;min-height:100%!important}.call-setup-textbox{width:90%!important}.call-setup-notice{font-size:1rem}.saml-debug-button{min-width:200px;width:auto;margin:5px!important}a{outline:0!important}a,a:active,a:hover,a:visited{text-decoration:none!important}.lic-body{width:98%}#demo,#demo1{margin-right:1.4em;margin-left:0}td.text-start{padding:10px 15px}.nav-menu{display:flex;position:sticky;width:102%;top:32px;align-items:center;background:#2f4f4f;justify-content:space-evenly;z-index:1;box-shadow:2px 11px 10px #f7f7f7;height:3.1em}.goto-opt{padding:5px 0;font-size:1.6em!important}.goto-opt a{color:#fff;font-size:25px;font-weight:300}.goto-opt a:active,.goto-opt a:focus{color:#fff;box-shadow:none!important}.goto-opt a:hover{color:#fff}.goto-active{border-bottom:2px solid #fff;transition:2s;color:#fff}.plan-head-saml{color:#000;text-align:center;font-weight:350;margin-bottom:.1em;margin-top:.7em;width:100%}.faq-container{max-width:600px;margin:0 auto}.faq{background-color:transparent;border:1px solid #9fa4a8;border-radius:10px;padding:23px 22px 10px;position:relative;overflow:hidden;transition:.3s ease;cursor:pointer}.faq.active{background-color:#fff;box-shadow:0 3px 6px rgba(0,0,0,.1),0 3px 6px rgba(0,0,0,.1)}.faq-title{margin:1px 35px 0 0;color:#000;margin-bottom:1.2em;font-weight:400;font-size:1.2em;text-align:left}.faq-text{display:none;border-top:1px solid #f4f4f4;text-align:left;font-size:1rem}.faq.active .faq-text{display:block}.faq-toggle{background-color:transparent;color:#000;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;padding:0;position:absolute;top:16px;right:20px;height:40px;width:30px;border:none;z-index:1000}.faq-toggle .fa-times{display:none}.faq.active .faq-toggle .fa-times{display:block}.faq.active .faq-toggle .fa-chevron-down{display:none}.works-step div{color:#e67e22;border:2px solid #e67e22;border-radius:50%;width:40px;height:40px;text-align:center;float:left;font-size:20px;margin-right:25px;margin-bottom:27px}.plugin-banner-text-saml{color:#1f3668;line-height:2}.text-color{color:#fe7e00!important}.reg-plans-saml{background:linear-gradient(45deg,#ffeabc,#ffe194);border-radius:9px;height:35.4em}.common-rot{transition:.3s}.single-site{display:flex;justify-content:center;margin-left:3px}.multi-site{display:flex;justify-content:center;margin-left:3px}.single-site-rot{transform:rotateY(0)}.multi-site-rot{transform:rotateY(180deg)}.reg-plans-saml:hover{background:linear-gradient(125deg,#ffeabc,#ffe194)}.incl-plan-saml{background:linear-gradient(145deg,#c1f4ff,#dcdcdc);border-radius:9px;padding:.1em 1em 1.5em;height:35.4em}.incl-plan-saml:hover{background:linear-gradient(254deg,#7ee8ff,#dcdcdc)}.display-1{font-size:2.5em;font-weight:200}.header-h3{font-size:1.5em;margin-top:20px;margin-bottom:-20px;color:#585858}.header-h4{color:#000;font-weight:500;font-size:1.2em}.price-list{border-top:1px solid #fff;border-bottom:1px solid #fff;font-size:1.3em;background:#ffecbb;border-radius:10px;height:324px}.price-list-incl{background:linear-gradient(145deg,#e2faff,#e1e1e1)}.upg-btn{display:inline-block}.license-btn-saml{color:#fff!important;font-size:1em;padding:.5em 2rem;border-radius:6px;background:#2f4f4f;cursor:pointer;margin-top:10px;width:160px;height:43px}.border-rad-saml{border-radius:50px;padding:.7em .1rem;margin-right:15px}.license-btn-saml:hover{background:linear-gradient(15deg,#2f4f4f,#669a9a)}.box-shadow-saml{border-bottom:1px solid #ddd!important;margin-bottom:0!important;padding:10px 15px}.feat-head-saml{text-align:center;padding:12px;font-size:25px;font-weight:400}.choose-plan-saml{display:block;font-weight:350;color:#000;padding:10px 0 0 15px}.clk-icn{border:.2px solid rgb(0 0 0);font-weight:700;margin-top:2em;padding:.5em 2em;color:#000!important}.saml-pills{background:#e1e1e1;list-style:none;display:inline-flex;padding-top:1em;padding-left:.5em;padding-right:.5em;padding-bottom:.6em;border-radius:40px}.price-tag{width:100px;display:flex;justify-content:center;align-items:center;height:47px;border-radius:8px 8px 0 8px;background:#f4c346;z-index:99;position:absolute;top:-24px;left:70%}.price-tag-mult{left:75.7%}.product::after{content:"";position:absolute;border-right:25px solid transparent;border-top:10px solid #e7b32e;left:93%;z-index:-1;top:22px}.price{margin-top:10px;color:#fff;font-size:16px}.sticky-menu-saml{position:sticky;top:5.2em;padding-top:3em;background-color:#fff;z-index:0}.hover-saml{border-right:5px solid #fcf0d3;border-radius:10px;height:35.4em}.hover-saml:hover{background:linear-gradient(45deg,#ffebbf,#fdefcc);height:35.4em;border-radius:9px}.tabs{margin-bottom:1em;margin-top:1.5em}.tabs a.active{background:#2f4f4f;cursor:default;padding:12px 3em;color:#fff;transition:.5s;pointer-events:none}.tabs a{cursor:pointer;padding:12px 3em;font-size:17px;text-align:center;font-weight:600;border-radius:30px;color:#000}.saml-text{text-align:left;font-size:1rem}.faq-toggle:focus{outline:0}.tooltip-saml{position:relative}.tooltip-saml .tooltiptext{display:none;width:250px;background-color:#000000d4;color:#fff;text-align:center;border-radius:6px;padding:1em 2em;left:7.7em;bottom:-12.8em;position:absolute;z-index:1}.tooltip-saml .tooltiptext::after{content:" ";position:absolute;top:50%;right:100%;margin-top:-28px;border-width:5px;border-style:solid;border-color:transparent #000 transparent transparent}.tooltip-saml:hover{cursor:pointer}.tooltip-saml:hover .tooltiptext{display:block}.plan-box{height:18em;background-color:#cab9c81a;border-radius:10px;margin:0 10px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2);transition:.3s}.plan-box-up{padding:20px;border-bottom:4px solid #fff}.plan-box p{padding:20px;font-size:1rem;line-height:1.5}.tab-des{display:flex;padding:0;max-width:1200px;margin:0 auto 0;list-style:none;justify-content:center}.tab-link{display:block;padding:10px 15px;color:#2f4f4f;cursor:pointer;overflow:hidden}.active-tab{border-bottom:4px solid #2f4f4f!important;background-color:#08705c14}.integration-section{background:#f4f4f4;padding:0 2em 1em;border-radius:5px}@media screen and (min-width:1688px){.product::after{display:none}}@media screen and (max-width:1519px){.price-list{height:420px}.price-list-multi{height:269px}.price-tag{left:61%}.price-tag-mult{left:74%}.product::after{display:none}.hover-saml,.hover-saml:hover,.incl-plan-saml,.reg-plans-saml{height:40.6em}.multi-site-height,.multi-site-height:hover{height:33.3em}}@media screen and (max-width:1380px){.price-list{height:476px}.price-tag{left:56%}.price-list-multi{height:296px}.price-tag-mult{left:69%}.product::after{left:38px}.hover-saml,.hover-saml:hover,.incl-plan-saml,.reg-plans-saml{height:43.9em}.multi-site-height,.multi-site-height:hover{height:34.3em}}.cstm-iframe{padding:1rem;border:1px solid #dcdcde;background-color:#fff}.cstm-addon-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:1.2;margin-right:-15px;margin-left:-15px;padding:1rem 1rem 0}.mt-2{margin-top:2px!important}.cstm-h4{font-size:1.5rem}.cstm-h5{font-size:1.25rem;margin:.5rem 0 1rem}.cstm-input{box-shadow:1px 1px 6px #e3e1e1!important;border:1px solid #d5d5d5!important;padding:0 1rem!important}label{font-size:13px}.form-head{position:relative}.form-head:after{content:"";display:block;height:5px;background:#1f3668;margin-top:9px;border-radius:30px}.form-head-bar:after{width:50px}.form-sep:after{width:100%;background:#6c757d;height:2.3px;margin-top:-13px}.prem-info{padding:1rem;background:#f4f4f4;border:4px solid #d5e2ff;border-radius:5px}.anonymous-text,.attr-info-text,.entity-info-text,.nameid-prem-text,.prem-info-text,.provide-metadata-text,.role-admin-prem-text,.role-prem-text{display:none;width:400px;background-color:#000000d4;color:#fff;font-size:1.1rem;text-align:center;border-radius:6px;padding:.6em .5em;left:19em;bottom:-.2em;position:absolute;z-index:1}.prem-info-text{left:-25.5em;bottom:-2em}.mo-saml-provide-metadata-txt{left:13.4em;bottom:0}.mo-saml-redir-opts-txt{left:26em;bottom:0}.provide-metadata-text{left:18.8em;bottom:55.8em}.attr-info-text{left:14.1em;bottom:.2em}.role-map-info-text{left:11.1em;bottom:.2em}.anonymous-text{left:-25.3em;bottom:-2.7em}.nameid-prem-text{bottom:-4.4em;left:-25.2em}.auto-redir-text{bottom:-4.3em}.auto-redir-wp-text{bottom:-4.3em}.shortcode-text{bottom:-2.7em}.role-prem-text{bottom:-4.7em;left:-25.3em}.role-admin-prem-text{bottom:-4.6em;left:-25.3em}.sso-btn-prem-text{bottom:-4.3em;left:-25.3em}.mo-saml-sso-log-txt{bottom:.1em;left:25.9em}.mo-saml-sso-widget-txt{bottom:.1em;left:16.9em}.mo-saml-redir-site-txt{bottom:.1em;left:25.1em}.mo-saml-redir-wp-log-txt{bottom:.1em;left:33.4em}.mo-saml-sso-shortcode-txt{bottom:.1em;left:18.9em}.prem-icn{position:absolute;z-index:10;display:inline-flex;right:32.5%;filter:drop-shadow(#f6f6f6 9px 4px 1px)}.auto-redir-prem-img{left:63.3%}.sso-btn-prem-img{left:63.3%}.anonymous-text::after,.attr-info-text::after,.entity-info-text::after,.mo-saml-error-tip::after,.nameid-prem-text::after,.prem-info-text::after,.provide-metadata-text::after,.role-admin-prem-text::after,.role-prem-text::after{content:" ";position:absolute;top:84%;right:100%;margin-top:-28px;border-width:5px;border-style:solid;border-color:transparent #000 transparent transparent}.anonymous-text::after,.nameid-prem-text::after,.prem-info-text::after,.role-admin-prem-text::after,.role-prem-text::after,.sso-btn-prem-text::after{border-color:transparent transparent transparent #000000fa;left:100%}.mo-saml-error-tip{display:none;align-items:center;background:#fff;border:1px solid #767676;border-radius:4px;padding:.2rem .5rem;left:56.3%;top:6.9em;color:#414141}.mo-saml-error-tip::after{top:1.1em;right:51.1%;border-color:#ff7a7a00 #0000 #000000c7 transparent}@media screen and (width:1228.8px){.mo-saml-error-tip{top:6.9em;width:46%}.mo-saml-error-tip::after{top:1.1em}}.auto-redir-text::after,.auto-redir-wp-text::after,.nameid-prem-text::after,.role-admin-prem-text::after,.role-prem-text::after,.sso-btn-prem-text::after{top:49%}.entity-info:hover,.prem-info:hover{cursor:text}.attr-info:hover .attr-info-text,.entity-info:hover .entity-info-text,.prem-info:hover .anonymous-text,.prem-info:hover .nameid-prem-text,.prem-info:hover .prem-info-text,.prem-info:hover .role-admin-prem-text,.prem-info:hover .role-prem-text,.prem-info:hover .sso-btn-prem-text,.provide-metadata-info:hover .provide-metadata-text{display:block!important}.mo-saml-switch[type=checkbox]{height:0;width:0;visibility:hidden}.mo-saml-switch-label{cursor:pointer;margin-top:-1.5rem;text-indent:-9999px;width:56px;height:30px;background:#bfbdbd;display:block;border-radius:100px;position:relative}.mo-saml-switch-label:after{content:"";position:absolute;top:5px;left:5px;width:20px;height:20px;background:#fff;border-radius:90px;transition:.1s}.mo-saml-switch:checked+.mo-saml-switch-label{background:#163d77}.mo-saml-switch:checked+.mo-saml-switch-label:after{left:calc(100% - 5px);transform:translateX(-100%)}.mo-saml-switch-label:active:after{width:40px}.btn-cstm{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%)!important;border:none;font-size:1.1rem;padding:.3rem 1.5rem;color:#fff!important;cursor:pointer}.mo-saml-bs-btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.mo-saml-bs-bs-btn[disabled]{background:linear-gradient(0deg,rgb(14 42 71) 0,rgb(26 69 138) 100%);color:#fff!important;opacity:.65;cursor:not-allowed}.w-176{width:179px}.mo-saml-w-186{width:186px}.w-372{width:395px}.mo-saml-alredy-have-btn:hover{color:#76bdd0!important;cursor:pointer}.btn-cstm:hover{background-color:#1f3668c4!important}.shadow-cstm{box-shadow:0 2px 5px rgb(0 0 0 / 12%)}.bg-main-cstm{background:#f4f4f4}.mo-saml-margin-left{margin-left:-20px}.bg-cstm{background:#d5e2ff}.contact-us-cstm{bottom:4%;position:fixed;right:1%;box-sizing:border-box;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:10;height:58px;width:209px;background-color:#1f3668;cursor:pointer;border-radius:50px;box-shadow:4px 3px 6px 0 #272727d9}.mo-saml-scroll-cstm{overflow-y:auto;height:236px;overflow-x:hidden}.logo-saml-cstm{padding:1em 0;border-radius:15px;background:#fff;max-width:88px;margin-right:7px;margin-top:1rem;height:83px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);cursor:pointer}.logo-saml-cstm h6{font-size:.8rem!important;word-break:break-all;margin-bottom:-.5rem}.logo-saml-cstm a{font-size:.8rem!important;font-weight:500;word-break:break-all;color:#212529!important}.logo-saml-cstm:hover{opacity:.7;transition:.2s}.mo-saml-scroll-cstm::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#f5f5f5}.mo-saml-scroll-cstm::-webkit-scrollbar{width:12px;background-color:#f5f5f5}.mo-saml-scroll-cstm::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#555}.idp-search-box{background:0 0!important;border:none!important;border-bottom:2px solid #fff!important;color:#fff;padding:10px 54px!important;font-size:18px;height:2.64285714em;width:100%}.idp-search-box:focus{box-shadow:none!important}.idp-search-glass{top:51px;left:150px;position:absolute}.btn-prem{color:#fff;padding:10px 25px;cursor:pointer;border-radius:50px;transition:all .3s ease;position:relative;display:inline-block;box-shadow:inset 2px 2px 2px 0 rgba(255,255,255,.5),7px 7px 20px 0 rgba(0,0,0,.1),4px 4px 5px 0 rgba(0,0,0,.1)}.prem-btn-cstm{border:none;background:orange;color:#fff;overflow:hidden}.prem-btn-cstm:before{position:absolute;content:"";display:inline-block;top:-180px;left:0;width:15px;height:100%;background-color:#fff;animation:shiny-btn1 3s ease-in-out infinite}.prem-btn-cstm:hover{box-shadow:1px 1px 5px 1px rgb(0 0 0 / 22%) inset}.faq-btn-cstm{background-color:#89d8d3;background-image:linear-gradient(315deg,#89d8d3 0,#03c8a8 74%);border:none;z-index:1}.faq-btn-cstm:after{position:absolute;content:"";width:100%;height:0;bottom:0;left:0;z-index:-1;border-radius:5px;background-color:#4dccc6;background-image:linear-gradient(315deg,#4dccc6 0,#96e4df 74%);box-shadow:-7px -7px 20px 0 #fff9,-4px -4px 5px 0 #fff9,7px 7px 20px 0 #0002,4px 4px 5px 0 #0001;transition:all .3s ease}.faq-btn-cstm:hover{color:#fff}.faq-btn-cstm:hover:after{top:0;height:100%}.faq-btn-cstm:active{top:2px}@keyframes shiny-btn1{0%{-webkit-transform:scale(0) rotate(60deg);opacity:0}80%{-webkit-transform:scale(0) rotate(60deg);opacity:.5}81%{-webkit-transform:scale(4) rotate(60deg);opacity:1}100%{-webkit-transform:scale(30) rotate(60deg);opacity:0}}.pop-up-btns{line-height:10px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);border-radius:80px;color:#fff;background-color:orange}.pop-up-btns:hover{opacity:.7;color:#000}.contact-form-cstm{width:136%}.contact-form-head{padding:1rem;border-radius:8px;color:#4a4a4a;background:url(../../images/contact-form-bg.webp);background-size:cover}.contact-form-head p{line-height:1.8}.mo-saml-card-glass{background:url(../../images/dotted-bg-mo-saml.webp) right center/contain no-repeat,linear-gradient(153.07deg,rgb(213 226 255) -2.47%,rgb(243 247 255) 102.78%);border-radius:10px;padding:2em;width:136%}.mo-saml-ads-text{background:linear-gradient(135deg,rgb(255 255 255),rgba(255,255,255,.67));padding:.01rem 1.5rem 1em 1.5em;border-radius:30px;backdrop-filter:blur(2.5em)}.mo-saml-why-reg{font-size:.9rem}.reg-form{background:linear-gradient(153.07deg,rgb(213 226 255) -2.47%,rgb(249 249 249) 102.78%)}.reg-form input{border:1px solid #2b4d7f;background:0 0;border-radius:5px}.reg-form input:focus{box-shadow:none}#mo_saml_reg_back_btn,#mo_saml_reg_login_btn,.mo-saml-already-reg-field,.mo-saml-why-login-txt{display:none}.contact-form-body input,.contact-form-body textarea{background-color:#f3f7ff;border:1px solid #7090d5;padding:.2rem 1rem;width:100%}.contact-form-body input:focus,.contact-form-body textarea:focus{box-shadow:none}.mo-saml-call-setup{background:#f7f7f7;border-radius:20px}.bg-light{background-color:#d7d7d7!important}.cursor-disabled:hover{cursor:not-allowed}html{scroll-behavior:smooth}.mo-saml-tab-content,.mo-saml-tab-content1{display:none}#mo-saml-idp-manual-tab,#mo-saml-provide-metadata{display:block}.switch-tab-sp{background:#f7f7f7;padding:.5rem 1rem 0;display:flex;border-radius:10px;align-items:baseline;justify-content:center}.mo-saml-current{border-bottom:3px solid #042160;background:#f0f0f1;border-radius:2px}.switch-tab-sp a:hover{background-color:#e5e7e9}.switch-tab-sp a{color:#5d5d5d;font-weight:500}.switch-tab-sp a:focus{box-shadow:none}a:focus{box-shadow:none}.meta-data-table{border:1px solid #ddd;margin:1rem auto}.meta-data-table td{padding:.5rem .7rem}.meta-data-table tr:nth-child(even){background-color:#ebf1ff}#account-info-form,#addon-tab-form,#attr-role-tab-form,#cstm-idp-section,#demo-tab-form,#redir-sso-tab-form,#sp-meta-tab-form{transform:translate(-35px)}.mo-saml-opt-add-ons{margin-top:.6rem}.mo-saml-padding-block{padding:1.4rem 0}.mo-saml-btn-size{width:50px;background:#f8f9fa!important;margin-left:.5rem}.mo-saml-addons-logo{max-width:17%;height:auto;position:absolute;right:15px;top:80%}.mo_saml_version_display{font-size:15px;font-weight:400}.mo-saml-addons-head{margin:1.1em 1.1em .5em;font-size:1.5rem;color:#5b5b5b;height:50px}.mo-saml-add-ons-cards{width:31.13%;float:left;height:336px;box-shadow:inset 2px 2px 2px 0 rgb(255 255 255 / 50%),7px 7px 20px 0 rgb(0 0 0 / 10%),4px 4px 5px 0 rgb(0 0 0 / 10%);display:block;background-size:cover;border-radius:15px;background:#fff;position:relative;overflow:hidden;margin-right:.6rem}@media screen and (max-width:1399px) and (min-width:1227px){.mo-saml-add-ons-cards{width:40.13%}}.mo-saml-addons-readmore{position:absolute;top:86%;left:3.8%;color:#0a0a0a;font-size:1.1rem;z-index:8;transition:all .6s ease;opacity:.8}.mo-saml-addons-readmore:hover{opacity:1;color:#000}.mo-saml-add-ons-tri{border-top:44px solid transparent;border-bottom:150px solid transparent;border-right:288px solid #f4f4f400;opacity:.4;position:absolute;display:block;top:0;right:-40%}.mo-saml-add-ons-tri:before{border-top:254px solid transparent;border-bottom:136px solid transparent;border-right:206px solid #e6eefd;position:absolute;content:"";display:block;top:-198px;right:-312px;z-index:-18}.mo-saml-add-ons-rect{width:487px;height:200px;position:absolute;top:75%;left:-78%;transform:rotate(30deg);z-index:5;filter:blur(1px);opacity:.9;transition:all .3s ease-in-out}.mo-saml-add-ons-rect:before{content:"";display:block;height:100%;background:#d5e2ff;z-index:2;transition:all .3s ease-in-out}code{line-height:1.9}.mo-saml-error-box{border:3px solid red}.mo-saml-form-head:after{content:"";display:block;height:5px;background:#1f3668;margin-top:9px;border-radius:30px}.mo-saml-form-head-bar:after{width:50px}.mo-saml-troubleshoot-table tr:nth-child(odd){background:#e9f0ff}.mo-saml-troubleshoot-table{border:1px solid #ddd;width:100%;margin-bottom:20px;border-collapse:collapse}.mo-saml-troubleshoot-table td{border:1px solid #ddd;padding:10px}.crown_img{width:35px!important}.note_img{width:25px!important;height:25px!important}.crown_img_small{width:20px!important}.error_msg{background-color:#ffdfdf!important;font-size:15px!important}.success_msg{background-color:#c8ffc8!important;font-size:15px!important}.radio-email input[type=radio]{opacity:0;position:fixed;width:0}.mo_saml_reg_page_header{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.mo_saml_feedback_email input[id=query_mail]{text-align:center;border:0 solid #000;border-style:solid;background:#f0f3f7;width:20vw;border-radius:6px}.mo_saml_download_paid_plugin_notice{background:#fef8e6;margin:2% 0 0;border-radius:4px;border:1.3px solid #f0d480;padding:0 7px;font:600 13px Inter;display:flex;align-items:center;gap:2%}.mo_saml_activate_modal{display:block;position:fixed;z-index:30;left:0;top:0;background:#fff;width:100vw;height:100vh;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.596);align-content:center}.mo_saml_model_container{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;width:100%}.mo_saml_modal_content{background-color:#fff;padding:20px;min-width:560px;margin:auto;align-content:center;border:1px solid #ccc}.mo_saml_modal_content_header{display:flex;justify-content:left;margin:1%}.mo_saml_modal_content_header-title{font-weight:700;font-size:22px;font-family:sans-serif;margin:9px 0 8px 13px}.mo_saml_modal_content_extenstions{margin:15px 15px}.mo_saml_modal_content_extenstions-warning{font-family:sans-serif}.mo_saml_modal_content_extenstions-warning2{font-weight:700;color:red}.mo_saml_trial_notice_banner{padding:16px;position:relative;font-size:14px}.mo_saml_support_info{text-align:center} -
miniorange-saml-20-single-sign-on/trunk/includes/lib/class-mo-saml-options-enum-error-codes.php
r3123187 r3147410 27 27 'fix' => 'Please turn off assertion encryption in your IDP to test the SSO flow.', 28 28 'cause' => 'Encrypted Assertion From IDP', 29 'test Config_msg' => 'Your IdP is sending encrypted assertion which is not supported in free version.',29 'testconfig_msg' => 'Your IdP is sending encrypted assertion which is not supported in free version.', 30 30 ), 31 31 'WPSAMLERR002' => array( … … 34 34 'fix' => 'Please configure your IDP to send a NameID attribute. If it is already configured then the user with which you are trying might have the blank NameID mapped attribute.', 35 35 'cause' => 'NameID missing', 36 'test Config_msg' => 'NameID may not be configured at the IDP or the user does not have a valid NameID value.',36 'testconfig_msg' => 'NameID may not be configured at the IDP or the user does not have a valid NameID value.', 37 37 ), 38 38 'WPSAMLERR003' => array( … … 41 41 'fix' => 'It is required by the SAML 2.0 standard that either the response or assertion is signed. Please enable the same in your IDP.', 42 42 'cause' => 'Unsigned Response or Assertion', 43 'test Config_msg' => 'No signature found in SAML Response or Assertion. Please sign at least one of them.',43 'testconfig_msg' => 'No signature found in SAML Response or Assertion. Please sign at least one of them.', 44 44 ), 45 45 'WPSAMLERR004' => array( 46 46 'code' => 'WPSAMLERR004', 47 'description' => 'This error oc urrs when certificate present in SAML Response does not match with the certificate configured in the plugin.',48 'fix' => ' To fix this error, copy the certificate value shown in the Test Configuration window and paste it in X.509 Certificate field in Service Provider Setup tab of the plugin.',47 'description' => 'This error occurs when certificate present in SAML Response does not match with the certificate configured in the plugin.', 48 'fix' => '<ol><li>Copy paste the certificate provided above in X.509 Certificate under Service Provider Setup tab or click on the Fix Issue button below to do the same.</li><li>If issue persists disable <b>Character encoding</b> under Service Provider Setup tab.</li></ol>', 49 49 'cause' => 'Mismatch in Certificate', 50 'test Config_msg' => 'X.509 Certificate field in plugin does not match the certificate found in SAML Response.',50 'testconfig_msg' => 'X.509 Certificate field in plugin does not match the certificate found in SAML Response.', 51 51 ), 52 52 'WPSAMLERR005' => array( 53 53 'code' => 'WPSAMLERR005', 54 54 'description' => 'This error is displayed when there is an issue in creating user in WordPress.', 55 'fix' => 'There has been some issue with user creation in wordpress copy the error message and reach out us at <a href="mailto:[email protected]">[email protected]</a> with your registered email.',55 'fix' => 'There has been some issue with user creation in wordpress copy the error message and reach out to us at <a href="mailto:[email protected]">[email protected]</a> with your registered email.', 56 56 'cause' => 'User Creation Failed', 57 'test Config_msg' => 'Something went wrong while creating the user. Please reach out to us with the debug logs.',57 'testconfig_msg' => 'Something went wrong while creating the user. Please reach out to us with the debug logs.', 58 58 ), 59 59 'WPSAMLERR006' => array( … … 65 65 'fix' => 'You will need to double check the configuration between your IDP and SP to fix this issue.', 66 66 'cause' => 'Invalid Status Code', 67 'test Config_msg' => 'Identity Provider has sent %s status code in SAML Response. Please check IdP logs.',67 'testconfig_msg' => 'Identity Provider has sent %s status code in SAML Response. Please check IdP logs.', 68 68 ), 69 69 'WPSAMLERR007' => array( … … 72 72 'fix' => 'You will need to sync the time between your IDP and SP or you can turn off the <b>Assertion Time Validity</b> toggle in the Service Provider Setup tab.', 73 73 'cause' => 'SP clock is behind IDP', 74 'test Config_msg' => '',74 'testconfig_msg' => '', 75 75 ), 76 76 'WPSAMLERR008' => array( … … 79 79 'fix' => 'You will need to sync the time between your IDP and SP or you can turn off the <b>Assertion Time Validity</b> toggle in the Service Provider Setup tab.', 80 80 'cause' => 'SP clock is ahead of IDP', 81 'test Config_msg' => '',81 'testconfig_msg' => '', 82 82 ), 83 83 'WPSAMLERR009' => array( 84 'code' => 'WPSAMLERR009',85 'description' => 'This error indicates that the Audience URI is not correctly configured at your Identity Provider.',86 'fix' => '<ul style="list-style: none;"><li style="list-style-type: none;">Copy the Audience URI configured in the Identity Provider from above and paste it into the SP EntityID/Issuer field in the Plugin\'s settings. </li><li style="list-style-type: none; font-weight: bold; text-align: center; margin: 10px 0;">OR </li><li style="list-style-type: none;">Copy the Audience URI configured in the plugin from above and paste it into the Audience URI field in the Identity Provider.</li></ul>',87 'cause' => 'Invalid Audience URI',88 'test _config_msg' => 'The value of Audience URI in the plugin settings does not match the value of Audience URI received from the Identity Provider.',84 'code' => 'WPSAMLERR009', 85 'description' => 'This error indicates that the Audience URI is not correctly configured at your Identity Provider.', 86 'fix' => '<ul style="list-style: none;"><li style="list-style-type: none;">Copy the Audience URI configured in the Identity Provider from above and paste it into the SP EntityID/Issuer field in the Service Provider Metadata Tab. </li><li style="list-style-type: none; font-weight: bold; text-align: center; margin: 10px 0;">OR </li><li style="list-style-type: none;">Copy the Audience URI configured in the plugin from above and paste it into the Audience URI field in the Identity Provider.</li></ul>', 87 'cause' => 'Invalid Audience URI', 88 'testconfig_msg' => 'The value of Audience URI in the plugin settings does not match the value of Audience URI received from the Identity Provider.', 89 89 ), 90 90 'WPSAMLERR010' => array( 91 91 'code' => 'WPSAMLERR010', 92 92 'description' => 'This happens when you have configured wrong IDP Entity ID in the plugin.', 93 'fix' => 'To fix this navigate to Service Provider Setup tab and paste the correct IDP Entity ID in the required field .',93 'fix' => 'To fix this navigate to Service Provider Setup tab and paste the correct IDP Entity ID in the required field or click on the Fix Issue button below to do the same.', 94 94 'cause' => 'Wrong IDP Entity ID', 95 'test Config_msg' => 'IdP Entity ID configured and the one found in SAML Response do not match',95 'testconfig_msg' => 'IdP Entity ID configured and the one found in SAML Response do not match', 96 96 ), 97 97 'WPSAMLERR011' => array( … … 100 100 'fix' => 'To fix this issue, please configure your IDP to send a valid email address as the NameID value, which should be less than 60 characters in length.', 101 101 'cause' => 'Username length limit exceeded', 102 'test Config_msg' => 'The NameID value is greater than 60 characters in length. Please configure your IDP to send a proper NameID value.',102 'testconfig_msg' => 'The NameID value is greater than 60 characters in length. Please configure your IDP to send a proper NameID value.', 103 103 ), 104 104 'WPSAMLERR012' => array( 105 105 'code' => 'WPSAMLERR012', 106 106 'description' => 'This error occurs when certificate present in SAML Response does not match with the certificate configured in the plugin after encoding.', 107 'fix' => 'To fix this error, turn off the <b>Character encoding</b> toggle in the Service Provider Setup tab .',107 'fix' => 'To fix this error, turn off the <b>Character encoding</b> toggle in the Service Provider Setup tab or click on the Fix Issue button below to do the same.', 108 108 'cause' => 'Mismatch in Certificate', 109 'test Config_msg' => 'X.509 Certificate in plugin does not match the certificate found in SAML Response due to the character encoding.',109 'testconfig_msg' => 'X.509 Certificate in plugin does not match the certificate found in SAML Response due to the character encoding.', 110 110 ), 111 111 'WPSAMLERR013' => array( 112 'code' => 'WPSAMLERR013',113 'description' => 'Unable to find a certificate matching the configured fingerprint.',114 'fix' => 'Please copy the IDP certificate from your IDP and paste it in the X509 Certificate input field in the Service Provider Setup tab of the plugin.',115 'cause' => 'Certificate Not Found',116 'test _config_msg' => 'Unable to find a certificate matching the configured fingerprint.',112 'code' => 'WPSAMLERR013', 113 'description' => 'Unable to find a certificate matching the configured fingerprint.', 114 'fix' => 'Please copy the IDP certificate from your IDP and paste it in the X509 Certificate input field in the Service Provider Setup tab of the plugin.', 115 'cause' => 'Certificate Not Found', 116 'testconfig_msg' => 'Unable to find a certificate matching the configured fingerprint.', 117 117 ), 118 118 'WPSAMLERR014' => array( 119 'code' => 'WPSAMLERR014',120 'description' => 'This error occurs when an incorrect certificate is added on the Identity Provider for Encryption.',121 'fix' => 'Please check if the certificate added in Identity Provider is the same as the certificate provided in the Service Provider Metadata tab of the Plugin.',122 'cause' => 'Encryption Certificate Mismatch',123 'test _config_msg' => 'Incorrect certificate added on the Identity Provider for Encryption',119 'code' => 'WPSAMLERR014', 120 'description' => 'This error occurs when an incorrect certificate is added on the Identity Provider for Encryption.', 121 'fix' => 'Please check if the certificate added in Identity Provider is the same as the certificate provided in the Service Provider Metadata tab of the Plugin.', 122 'cause' => 'Encryption Certificate Mismatch', 123 'testconfig_msg' => 'Incorrect certificate added on the Identity Provider for Encryption', 124 124 ), 125 125 'WPSAMLERR015' => array( 126 'code' => 'WPSAMLERR015', 127 'description' => 'This error code is shown to users when DOM extension is not installed.', 128 'fix' => 'Ask your hosting provider or internal team to install DOM extension.', 129 'cause' => 'DOM extension not found while parsing SAML Response, SAML Logout Response or SAML Metadata.', 126 'code' => 'WPSAMLERR015', 127 'description' => 'This error code is shown to users when DOM extension is not installed.', 128 'fix' => 'Ask your hosting provider or internal team to install DOM extension.', 129 'cause' => 'DOM extension not found while parsing SAML Response, SAML Logout Response or SAML Metadata.', 130 'testconfig_msg' => 'This error code indicates that the DOM extension is not installed or disabled.', 130 131 ), 131 132 'WPSAMLERR016' => array( … … 133 134 'description' => 'This error code is shown to users when the plugin detects a duplicate saml response', 134 135 'fix' => 'User will need to initiate the SSO again.', 135 'cause' => 'Either user ha vereloaded the page while plugin was processing SAMLResponse or someone has tried to send a duplicated SAMLResponse.',136 'cause' => 'Either user has reloaded the page while plugin was processing SAMLResponse or someone has tried to send a duplicated SAMLResponse.', 136 137 ), 137 138 'WPSAMLERR017' => array( … … 154 155 ), 155 156 'WPSAMLERR020' => array( 156 'code' => 'WPSAMLERR020', 157 'description' => 'This error is displayed when the PHP openssl extension is not installed or disabled.', 158 'fix' => 'Please ensure that the OpenSSL extension is installed and activated in order to activate the plugin.', 159 'cause' => 'PHP openssl extension is either not installed or disabled.', 157 'code' => 'WPSAMLERR020', 158 'description' => 'This error is displayed when the PHP openssl extension is not installed or disabled.', 159 'fix' => 'Please ensure that the OpenSSL extension is installed and activated in order to activate the plugin.', 160 'cause' => 'PHP openssl extension is either not installed or disabled.', 161 'testconfig_msg' => 'This error code indicates that the OpenSSL extension is not installed or disabled.', 160 162 ), 161 163 'WPSAMLERR021' => array( … … 180 182 'code' => 'WPSAMLERR024', 181 183 'description' => 'This error code is shown to users when the plugin receives invalid assertion in saml response.', 182 'fix' => 'Please send SAML tracer while reproducing the whole issue to [email protected].',184 'fix' => 'Please send <a target="_blank" href="' . Mo_Saml_External_Links::SAML_TRACER_FAQ . '">SAML tracer</a> while reproducing the whole issue to <a href="mailto:[email protected]">[email protected]</a>.', 183 185 'cause' => 'Invalid SAML Assertion', 184 186 ), … … 186 188 'code' => 'WPSAMLERR025', 187 189 'description' => 'This error code is shown to users when the plugin is unable to process the Logout Request.', 188 'fix' => 'Please send SAML tracer while reproducing the whole issue to [email protected].',190 'fix' => 'Please send <a target="_blank" href="' . Mo_Saml_External_Links::SAML_TRACER_FAQ . '">SAML tracer</a> while reproducing the whole issue to <a href="mailto:[email protected]">[email protected]</a>.', 189 191 'cause' => 'Invalid Logout Request', 190 192 ), … … 192 194 'code' => 'WPSAMLERR026', 193 195 'description' => 'This error code is shown to users when the plugin is unable to process SAML Metadata.', 194 'fix' => 'Please reach out to [email protected]with the metadata you are trying to import/ your IDP metadata URL.',196 'fix' => 'Please reach out to <a href="mailto:[email protected]">[email protected]</a> with the metadata you are trying to import/ your IDP metadata URL.', 195 197 'cause' => 'Invalid Metadata file/URL', 196 198 ), … … 198 200 'code' => 'WPSAMLERR027', 199 201 'description' => 'This error code is shown to users when the plugin is unable to decrypt encrypted elements in SAML Response.', 200 'fix' => 'Please send SAML tracer while reproducing the whole issue to [email protected].',202 'fix' => 'Please send <a target="_blank" href="' . Mo_Saml_External_Links::SAML_TRACER_FAQ . '">SAML tracer</a> while reproducing the whole issue to <a href="mailto:[email protected]">[email protected]</a>.', 201 203 'cause' => 'Incorrect IDP certificates', 202 204 ), … … 204 206 'code' => 'WPSAMLERR028', 205 207 'description' => 'This error code is shown to users when the plugin is unable to process XML with xmlseclibs.', 206 'fix' => 'Please send SAML tracer while reproducing the whole issue to [email protected].',208 'fix' => 'Please send <a target="_blank" href="' . Mo_Saml_External_Links::SAML_TRACER_FAQ . '">SAML tracer</a> while reproducing the whole issue to <a href="mailto:[email protected]">[email protected]</a>.', 207 209 'cause' => 'Unable to process XML', 208 210 ), 209 211 'WPSAMLERR029' => array( 210 'code' => 'WPSAMLERR029',211 'description' => 'This error code is shown to users when the plugin license has expired and hence the SSO has stopped working.',212 'fix' => 'Please renew your plugin license to get the SSO working.',213 'cause' => 'Plugin License Expired',214 'test _config_msg' => 'This error code indicates that the plugin license has expired.',212 'code' => 'WPSAMLERR029', 213 'description' => 'This error code is shown to users when the plugin license has expired and hence the SSO has stopped working.', 214 'fix' => 'Please renew your plugin license to get the SSO working.', 215 'cause' => 'Plugin License Expired', 216 'testconfig_msg' => 'This error code indicates that the plugin license has expired.', 215 217 ), 216 218 'WPSAMLERR030' => array( 217 'code' => 'WPSAMLERR030',218 'description' => 'This error code occurs when the same plugin license is used on multiple sites or an incorrect license key is entered.',219 'fix' => 'Please contact your administrator to use the correct license.',220 'cause' => 'Invalid License Found.',221 'test _config_msg' => 'This error code indicates that the plugin license is invalid.',219 'code' => 'WPSAMLERR030', 220 'description' => 'This error code occurs when the same plugin license is used on multiple sites or an incorrect license key is entered.', 221 'fix' => 'Please contact your administrator to use the correct license.', 222 'cause' => 'Invalid License Found.', 223 'testconfig_msg' => 'This error code indicates that the plugin license is invalid.', 222 224 ), 223 225 'WPSAMLERR031' => array( 224 'code' => 'WPSAMLERR031',225 'description' => 'This error code indicates that there has been some issue with how you have activated your license.',226 'fix' => 'Reach out to us at [email protected]from your registered email address',227 'cause' => 'License File missing from the plugin.',228 'test _config_msg' => 'This error code indicates that there is some issue with license activation.',226 'code' => 'WPSAMLERR031', 227 'description' => 'This error code indicates that there has been some issue with how you have activated your license.', 228 'fix' => 'Reach out to us at <a href="mailto:[email protected]">[email protected]</a> from your registered email address', 229 'cause' => 'License File missing from the plugin.', 230 'testconfig_msg' => 'This error code indicates that there is some issue with license activation.', 229 231 ), 230 232 'WPSAMLERR032' => array( 231 'code' => 'WPSAMLERR032', 232 'description' => 'This error is displayed when the Curl extension is not installed or disabled.', 233 'fix' => 'Please ensure that the Curl extension is installed and activated in order to activate the plugin.', 234 'cause' => 'Curl extension is either not installed or disabled.', 233 'code' => 'WPSAMLERR032', 234 'description' => 'This error is displayed when the Curl extension is not installed or disabled.', 235 'fix' => 'Please ensure that the Curl extension is installed and activated in order to activate the plugin.', 236 'cause' => 'Curl extension is either not installed or disabled.', 237 'testconfig_msg' => 'This error code indicates that the Curl extension is not installed or disabled.', 238 235 239 ), 236 240 'WPSAMLERR033' => array( 237 241 'code' => 'WPSAMLERR033', 238 242 'description' => 'This error occurred while parsing encrypted XML.', 239 'fix' => 'Either SAML Response sent by IDP is not correct. Send IdP configurations and plugin configurations to [email protected]for further debugging.',243 'fix' => 'Either SAML Response sent by IDP is not correct. Send IdP configurations and plugin configurations to <a href="mailto:[email protected]">[email protected]</a> for further debugging.', 240 244 'cause' => 'IdP is not configured correctly or the SAML Response contains insecure elements.', 241 245 ), … … 259 263 ), 260 264 'WPSAMLERR037' => array( 261 'code' => 'WPSAMLERR037',262 'description' => 'This error code indicates that you have provided aempty value to the UserName/Email.',263 'fix' => 'Please provide a valid value to the UserName/Email attribute name in Attribute Mapping tab.',264 'cause' => 'UserName/Email Missing',265 'test _config_msg' => 'This error code indicates that the UserName/Email attribute value is empty.',265 'code' => 'WPSAMLERR037', 266 'description' => 'This error code indicates that you have provided an empty value to the UserName/Email.', 267 'fix' => 'Please provide a valid value to the UserName/Email attribute name in Attribute Mapping tab.', 268 'cause' => 'UserName/Email Missing', 269 'testconfig_msg' => 'This error code indicates that the UserName/Email attribute value is empty.', 266 270 ), 267 271 'WPSAMLERR038' => array( … … 274 278 'code' => 'WPSAMLERR039', 275 279 'description' => 'This error is displayed when you have enabled SSO on more sites than the license purchased for.', 276 'fix' => 'Please ensure that the SSO is enabled only on the sites for which you have purchased the license or reach out to us at [email protected]to upgrade your license.',280 'fix' => 'Please ensure that the SSO is enabled only on the sites for which you have purchased the license or reach out to us at <a href="mailto:[email protected]">[email protected]</a> to upgrade your license.', 277 281 'cause' => 'Subsite Limit Exceeded.', 278 282 ), -
miniorange-saml-20-single-sign-on/trunk/includes/lib/class-mo-saml-options-enum.php
r3123187 r3147410 16 16 */ 17 17 class Mo_Saml_Options_Enum extends Mo_SAML_Basic_Enum { 18 const SAML_MESSAGE = 'mo_saml_message'; 19 const NEW_USER = 'mo_is_new_user'; 18 const SAML_MESSAGE = 'mo_saml_message'; 19 const NEW_USER = 'mo_is_new_user'; 20 const PLUGIN_DO_ACTIVATION = 'mo_plugin_do_activation_redirect'; 21 } 22 23 /** 24 * Defines Required PHP extensions 25 */ 26 class Mo_Saml_Required_PHP_Extensions extends Mo_SAML_Basic_Enum { 27 const PHP_EXTENSIONS = array( 28 'curl' => 'CURL', 29 'dom' => 'DOM', 30 'openssl' => 'OpenSSL', 31 ); 32 } 33 34 /** 35 * Plugin page to show the extensions disabled or uninstalled. 36 */ 37 class Mo_Saml_Plugin_Pages extends Mo_SAML_Basic_Enum { 38 const PLUGIN_PAGES = array( 39 'mo_saml_settings', 40 'mo_saml_enable_debug_logs', 41 ); 42 } 43 44 /** 45 * Defines constants for Redirection SSO Links tab. 46 */ 47 class Mo_Saml_Options_Enum_Sso_Login extends Mo_SAML_Basic_Enum { 48 const SSO_BUTTON = 'mo_saml_add_sso_button_wp'; 20 49 const MO_SAML_KEEP_SETTINGS_DELETION = 'mo_saml_keep_settings_on_deletion'; 21 const PLUGIN_DO_ACTIVATION = 'mo_plugin_do_activation_redirect';22 }23 24 /**25 * Defines constants for Redirection SSO Links tab.26 */27 class Mo_Saml_Options_Enum_Sso_Login extends Mo_SAML_Basic_Enum {28 const SSO_BUTTON = 'mo_saml_add_sso_button_wp';29 50 } 30 51 … … 193 214 const APPLICATION_NAME = 'WP miniOrange SAML 2.0 SSO Plugin'; 194 215 const APPLICATION_TYPE = 'SAML'; 195 const VERSION = '5.1. 7';216 const VERSION = '5.1.8'; 196 217 const HOSTNAME = 'https://login.xecurify.com'; 197 218 const WP_VERSION = '6.5'; … … 468 489 'power_bi' => 'https://plugins.miniorange.com/microsoft-power-bi-embed-for-wordpress', 469 490 'sharepoint' => 'https://plugins.miniorange.com/microsoft-sharepoint-wordpress-integration', 470 471 491 'salesforce_community_addon' => 'https://plugins.miniorange.com/single-sign-on-sso-login-into-wordpress-for-multiple-salesforce-communities', 492 'ip_whitelisting_addon' => 'https://plugins.miniorange.com/wordpress-ip-whitelisting', 493 'azure_multi_tenant_addon' => 'https://plugins.miniorange.com/azure-ad-multi-tenant-single-sign-on-sso-login-wordpress', 472 494 ); 473 495 … … 509 531 'profile_picture_add_on' => __( 'Profile Picture Add-on', 'miniorange-saml-20-single-sign-on' ), 510 532 'paid_mem_pro' => __( 'PaidMembership Pro Integrator', 'miniorange-saml-20-single-sign-on' ), 533 'salesforce_community_addon' => __( 'Salesforce Community Add-on', 'miniorange-saml-20-single-sign-on' ), 534 'ip_whitelisting_addon' => __( 'IP Whitelisting Add-on', 'miniorange-saml-20-single-sign-on' ), 535 'azure_multi_tenant_addon' => __( 'Azure Multitenant Add-on', 'miniorange-saml-20-single-sign-on' ), 511 536 ); 512 537 } -
miniorange-saml-20-single-sign-on/trunk/login.php
r3123187 r3147410 4 4 * Plugin URI: https://miniorange.com/ 5 5 * Description: miniOrange SAML plugin allows sso/login using Azure, Azure B2C, Okta, ADFS, Keycloak, Onelogin, Salesforce, Google Apps (Gsuite), Salesforce, Shibboleth, Centrify, Ping, Auth0 and other Identity Providers. It acts as a SAML Service Provider which can be configured to establish a trust between the plugin and IDP to securely authenticate and login the user to WordPress site. 6 * Version: 5.1. 76 * Version: 5.1.8 7 7 * Author: miniOrange 8 8 * Author URI: https://miniorange.com/ … … 40 40 add_action( 'admin_enqueue_scripts', array( $this, 'plugin_settings_script' ) ); 41 41 add_action( 'admin_enqueue_scripts', array( $this, 'plugin_settings_style' ) ); 42 register_activation_hook( __FILE__, array( $this, 'mo_saml_sso_activate' ) ); 42 43 add_action( 'admin_init', array( Mo_SAML_Base_Handler::class, 'mo_saml_save_settings_handler' ) ); 43 44 add_action( 'admin_init', array( 'Mo_SAML_Logger', 'mo_saml_admin_notices' ) ); 45 add_action( 'admin_init', array( $this, 'mo_saml_do_plugin_extension_checks' ) ); 44 46 add_action( 'admin_footer', array( $this, 'feedback_request' ) ); 45 47 add_action( 'admin_menu', array( $this, 'miniorange_sso_menu' ) ); … … 71 73 72 74 /** 75 * This function enabled the keep setting intact toggle if it is disabled when activating the plugin. 76 */ 77 public function mo_saml_sso_activate() { 78 if ( ! get_option( Mo_Saml_Options_Enum_Sso_Login::MO_SAML_KEEP_SETTINGS_DELETION ) ) { 79 add_option( Mo_Saml_Options_Enum_Sso_Login::MO_SAML_KEEP_SETTINGS_DELETION, 'true' ); 80 } 81 } 82 83 /** 73 84 * Ensures fatal errors are logged so they can be picked up in the status report. 74 85 * … … 88 99 } 89 100 101 /** 102 * Function to display the notice on the specific pages. 103 */ 104 public function mo_saml_do_plugin_extension_checks() { 105 $valid_pages = 'mo_saml_settings'; 106 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- reading page parameter. 107 if ( ! ( ! empty( $_GET['page'] ) && ( $_GET['page'] === $valid_pages ) ) && current_user_can( 'manage_options' ) ) { 108 add_action( 'admin_notices', array( $this, 'mo_saml_show_disabled_extension_notice' ) ); 109 } 110 } 111 112 /** 113 * Function shows a notice incase any required extensions are not enabled. 114 */ 115 public function mo_saml_show_disabled_extension_notice() { 116 $disable_extension = Mo_SAML_Utilities::mo_saml_get_disabled_extensions(); 117 118 if ( ! empty( $disable_extension ) ) { 119 $extension_display_line = implode( ', ', $disable_extension ); 120 echo ' 121 <div class="notice notice-warning mo-saml-trial-notice-banner"> 122 <div class="mo-saml-notice-content"> 123 <img src="' . esc_attr( plugin_dir_url( __FILE__ ) ) . 'images/miniorange_logo.webp" class="mo-saml-logo"> 124 <span class="mo-saml-warning-text"> 125 <span class="mo-saml-warning-title">Warning:</span> Following PHP extensions (<i class="mo-saml-extension-list">' . esc_attr( $extension_display_line ) . '</i>) are disabled which are important for SSO configuration. Please enable these extensions to continue using SSO on your site. 126 </span> 127 </div> 128 </div>'; 129 } 130 } 90 131 91 132 /** … … 221 262 $mo_date_current_notice = gmdate( 'Y-m-d' ); 222 263 223 if ( isset( $_POST['mo_idp_close_notice '] ) && check_admin_referer( 'mo_idp_close_notice' ) ) {264 if ( isset( $_POST['mo_idp_close_notice_nonce'] ) && check_admin_referer( 'mo_idp_close_notice', 'mo_idp_close_notice_nonce' ) ) { 224 265 $mo_date_expire_notice = gmdate( 'Y-m-d', strtotime( $mo_date_current_notice . '+7 day' ) ); 225 266 update_option( Mo_Saml_Sso_Constants::MO_SAML_EXPIRE_NOTICE, $mo_date_expire_notice ); … … 235 276 $display = 'block'; 236 277 } 278 237 279 if ( $mo_date_current_notice < get_option( Mo_Saml_Sso_Constants::MO_SAML_EXPIRE_NOTICE ) && ! empty( get_option( Mo_Saml_Sso_Constants::MO_SAML_CLOSE_NOTICE ) ) && get_option( Mo_Saml_Sso_Constants::MO_SAML_CLOSE_NOTICE ) ) { 238 280 $display = 'none'; 239 281 } 282 240 283 if ( current_user_can( 'manage_options' ) ) { 241 284 mo_saml_display_plugin_notice( $display ); -
miniorange-saml-20-single-sign-on/trunk/mo-saml-import-export.php
r3110324 r3147410 78 78 79 79 if ( ! empty( $_POST['mo_saml_keep_settings_intact'] ) ) { 80 update_option( Mo_Saml_Options_Enum ::MO_SAML_KEEP_SETTINGS_DELETION, 'true' );80 update_option( Mo_Saml_Options_Enum_Sso_Login::MO_SAML_KEEP_SETTINGS_DELETION, 'true' ); 81 81 } else { 82 update_option( Mo_Saml_Options_Enum ::MO_SAML_KEEP_SETTINGS_DELETION, '' );82 update_option( Mo_Saml_Options_Enum_Sso_Login::MO_SAML_KEEP_SETTINGS_DELETION, '' ); 83 83 } 84 84 update_option( 'mo_saml_message', 'Keep Settings Intact Option Updated Successfully.' ); -
miniorange-saml-20-single-sign-on/trunk/mo-saml-settings-page.php
r3110324 r3147410 20 20 */ 21 21 function mo_saml_register_saml_sso() { 22 23 Mo_SAML_Utilities::mo_saml_extension_disabled_modal(); 22 24 // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- reading tab name 23 25 if ( isset( $_GET['tab'] ) ) { … … 41 43 <div id="mo_saml_settings" > 42 44 <?php 45 if ( ! Mo_SAML_Utilities::mo_saml_is_sp_configured() ) { 43 46 mo_saml_display_welcome_page(); 47 } 44 48 45 49 mo_saml_display_plugin_header(); … … 110 114 * This function displays test configuration error. 111 115 * 112 * @param string $error_code error code. 113 * 114 * @param string $error_cause error cause. 115 * 116 * @param string $error_message error message. 117 * 118 * @param string $statusmessage status message. 119 */ 120 function mo_saml_display_test_config_error_page( $error_code, $error_cause, $error_message, $statusmessage = '' ) { 116 * @param string $error_code error code . 117 * @param string $display_metadata_mismatch The metadata recieved in SMAL response and stored in plugin if the error corresponds to a mismatched metadata . 118 * @param string $status_message The status sent by Identity Provider. 119 */ 120 function mo_saml_display_test_config_error_page( $error_code, $display_metadata_mismatch = '', $status_message = '' ) { 121 $error_fix = $error_code['fix']; 122 $error_cause = $error_code['cause']; 123 $error_message = ! empty( $error_code['testconfig_msg'] ) ? $error_code['testconfig_msg'] : ''; 124 if ( ob_get_level() > 0 ) { 125 ob_end_clean(); 126 } 127 121 128 echo '<div style="font-family:Calibri;padding:0 3%;">'; 122 echo '<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;">' . esc_attr( 'ERROR: ' . $error_code ) . '</div> 123 <div style="color: #a94442;font-size:14pt; margin-bottom:20px;text-align: justify"><p><strong>' . esc_attr( 'Error' ) . '</strong>: ' . esc_attr( $error_cause ) . ' </p> 124 125 <p><strong>' . esc_attr_x( 'Possible Cause: ', '', 'miniorange-saml-20-single-sign-on' ) . '</strong>' . esc_attr( $error_message ) . ' </p>'; 126 if ( ! empty( $statusmessage ) ) { 127 echo '<p><strong>Status Message in the SAML Response:</strong> <br/>' . esc_attr( $statusmessage ) . '</p><br>'; 128 } 129 if ( 'WPSAMLERR010' === $error_code || 'WPSAMLERR004' === $error_code || 'WPSAMLERR012' === $error_code ) { 130 $option_id = ''; 131 switch ( $error_code ) { 129 echo '<div style="color: #a94442;background-color: #f2dede;padding: 15px;margin-bottom: 20px;text-align:center;border:1px solid #E6B3B2;font-size:18pt;"> ERROR ' . esc_html( $error_code['code'] ) . '</div> 130 <div style="color: #a94442;font-size:14pt; margin-bottom:20px;"><p><strong>Error: </strong>' . wp_kses_post( $error_cause ) . '</p> 131 <p>Please contact your administrator and report the following error:</p> 132 <p><strong>Possible Cause: </strong>' . esc_html( $error_message ) . '</p>'; 133 if ( ! empty( $status_message ) ) { 134 echo '<p><strong>Status Message in the SAML Response:</strong> <br/>' . esc_html( $status_message ) . '</p><br>'; 135 } 136 if ( ! empty( $display_metadata_mismatch ) ) { 137 echo wp_kses( 138 $display_metadata_mismatch, 139 array( 140 'p' => array( 141 'strong' => array(), 142 ), 143 'strong' => array(), 144 ) 145 ); 146 } 147 echo '<p><strong>Solution:</strong></p> 148 ' . wp_kses_post( $error_fix ) . ' 149 </div> 150 <div style="margin:3%;display:block;text-align:center;">'; 151 if ( 'WPSAMLERR010' === $error_code['code'] || 'WPSAMLERR004' === $error_code['code'] || 'WPSAMLERR012' === $error_code['code'] ) { 152 $option_id = ''; 153 switch ( $error_code['code'] ) { 132 154 case 'WPSAMLERR004': 133 155 $option_id = 'mo_fix_certificate'; … … 150 172 </form> 151 173 </div>'; 152 } 153 echo '</div> 154 </div>'; 174 } else { 175 echo '<div style="margin:3%;display:block;text-align:center;"><input style="padding:1%;width:100px;background: #0091CD none repeat scroll 0% 0%;cursor: pointer;font-size:15px;border-width: 1px;border-style: solid;border-radius: 3px;white-space: nowrap;box-sizing: border-box;border-color: #0073AA;box-shadow: 0px 1px 0px rgba(120, 200, 230, 0.6) inset;color: #FFF;"type="button" value="Done" onClick="self.close();"></div>'; 176 } 177 echo '</div>'; 178 mo_saml_download_logs( $error_message, $error_cause ); 179 exit; 155 180 } 156 181 /** … … 176 201 <div style="margin:3%;display:block;text-align:center;"> 177 202 178 <input class="miniorange-button" style="margin-left:60px"type="button" value="' . esc_attr_x( 'Close', '', 'miniorange-saml-20-single-sign-on' ) . '" onclick="self.close()"></form>203 <input class="miniorange-button" type="button" value="' . esc_attr_x( 'Close', '', 'miniorange-saml-20-single-sign-on' ) . '" onclick="self.close()"></form> 179 204 </div> '; 180 205 echo ' '; -
miniorange-saml-20-single-sign-on/trunk/readme.txt
r3123187 r3147410 4 4 Tags: SAML, SSO, Single Sign On, login, Azure AD 5 5 Requires at least: 3.7 6 Tested up to: 6. 56 Tested up to: 6.6 7 7 Requires PHP: 5.6 8 Stable tag: 5.1. 78 Stable tag: 5.1.8 9 9 License: MIT/Expat 10 10 License URI: https://docs.miniorange.com/mit-license … … 293 293 == Changelog == 294 294 295 = 5.1.8 = 296 * Handled Fatal Errors when PHP extensions (CURL, DOM, OPENSSL) are disabled 297 * Clarified error codes on the Test Configuration tab for easier troubleshooting 298 * Fixed console warnings during registration and login in the Account Setup Tab 299 * UI Improvements 300 295 301 = 5.1.7 = 296 302 * Compatibility with WordPress 6.6 … … 322 328 * SSO button Fix on update 323 329 324 = 5.0.9 =325 * Fix for iconv() warning in linux environment326 * Fix for upgrade to premium versions327 * Minor UI improvements328 329 = 5.0.8 =330 * WP 6.4 Compatibility331 * Compatibility fix with Themify Plugin332 * UI fixes333 334 = 5.0.7 =335 * WP 6.3 Compatibility336 * Added proper error message when wp-config.php is not writable for enabling debug logs337 * Fix for warning in the list of IDP logos338 339 = 5.0.6 =340 * Fix for NetIQ SAML IDP Logo341 * Fix for x509 certificate in SAML SSO Configurations342 343 = 5.0.5 =344 * Vulnerability fix for Broken Access Control in SSO Settings345 346 = 5.0.4 =347 * Added additional exception handling checks to enhance the validation of SAML Response348 * Added Steps to download the paid plugin349 * Minor Bug Fixes350 351 = 5.0.3 =352 * Added new IDPs like Siteminder, VMWare, OpenAthens353 * Minor Bug Fixes354 355 = 5.0.2 =356 * Added new IDPs like Sharepoint, Dynamic CRM, LastPass, Drupal357 358 = 5.0.1 =359 * Compatibility with WordPress 6.2360 * Added iconv encoding issue flow361 * Fixed plugin update using FTP replace362 * Fixed SSO widget title issue363 * Fixed plugin deactivation issue364 * Fixes in debug log functionality365 366 = 5.0.0 =367 * Added PHPCS fixes368 369 = 4.9.32 =370 * Security fix for Open Redirect Vulnerability371 372 = 4.9.31 =373 * Fixes in logger functionality374 375 = 4.9.30 =376 * Added an option to disable assertion validity377 * Added custom Bootstrap CSS and JS378 * Updated images to webp format379 * Added Azure AD Integrations380 * Cross browser UI fixes381 382 = 4.9.29 =383 * Compatibility with WordPress 6.1384 * Fixes for PHP 8.1385 386 = 4.9.28 =387 * Fixed console warning388 389 = 4.9.27 =390 * Plugin delete fix391 392 = 4.9.26 =393 * Modified code flow for form save394 * Made Utilities class static395 * Improvements in logger flow396 397 = 4.9.25 =398 * Updated intel-tel library399 * Updated modenizr, Font Awesome, Time Picker libraries400 * Improved design of success and error messages401 * Added support for dynamic folder name for plugin402 403 = 4.9.24 =404 * Updated Bootstrap version405 * Sanitization fixes for global variables406 407 = 4.9.23 =408 * Removed role mapping for existing users409 410 = 4.9.22 =411 * Fixed a bug with post login redirection412 * Fixed RelayState URL413 414 = 4.9.21 =415 * Sanitization and Escaping fixes416 * Role Mapping fix417 418 = 4.9.20 =419 * Introduced Error Codes420 * Removed some obsolete functions421 422 = 4.9.19 =423 * Fixed UI compatibility with all themes424 425 = 4.9.18 =426 * Minor UI fixes427 428 = 4.9.17 =429 * Fixed Login button positioning430 431 = 4.9.16 =432 * Revamped plugin's UI433 * NameID Format fix for ADFS434 435 = 4.9.15 =436 * Compatibility with WordPress 5.9437 * Added Support for NameID Policy in SAML Request438 439 = 4.9.14 =440 * Removed end of year sale441 * Readme updates442 443 = 4.9.13 =444 * License Banner fixes445 446 = 4.9.12 =447 * Added discounted pricing for WordPress SSO plans448 449 = 4.9.11 =450 * Updated licensing plans for SAML SSO451 * Fixed bugs for Debug Framework452 * Other UI fixes453 454 = 4.9.10 =455 * Fixed an issue with broken plugin links456 457 = 4.9.09 =458 * Added Debug Logs Framework459 * Added new IDP's support for SSO460 * WordPress 5.8 Compatibility461 462 = 4.9.08 =463 * Demo request improvements464 465 = 4.9.07 =466 * Licensing Update for WordPress SSO plans467 468 = 4.9.06 =469 * UI changes and fixes470 * Readme changes471 472 = 4.9.05 =473 * UI improvements and fixes474 * WordPress 5.7 Compatibility475 476 = 4.9.04 =477 * Licensing Update for WordPress SSO plans478 479 = 4.9.03 =480 * Added video plugin guides for WordPress SSO481 482 = 4.9.02 =483 * Welcome page fixes484 485 = 4.9.01 =486 * Added support of Localization487 * WordPress 5.6 Loop back issue fix488 * PHP 8 Compatibility489 * Fixed SAML Login URL query parameters bug490 * Removed end of year sale491 492 = 4.9.00 =493 * Rolled out end of year sale494 495 330 For older changelog entries, please see the [additional changelog.txt file](https://plugins.svn.wordpress.org/miniorange-saml-20-single-sign-on/trunk/changelog.txt) provided with the plugin. 496 331 497 332 == Upgrade Notice == 333 334 = 5.1.8 = 335 * Handled Fatal Errors when PHP extensions (CURL, DOM, OPENSSL) are disabled 336 * Clarified error codes on the Test Configuration tab for easier troubleshooting 337 * Fixed console warnings during registration and login in the Account Setup Tab 338 * UI Improvements 498 339 499 340 = 5.1.7 = -
miniorange-saml-20-single-sign-on/trunk/views/mo-saml-account-setup.php
r3123187 r3147410 97 97 <form name="f" method="post" action=""> 98 98 <input type="hidden" name="option" value="mo_saml_register_customer" /> 99 <?php wp_nonce_field( 'mo_saml_register_customer' ); ?>99 <?php wp_nonce_field( 'mo_saml_register_customer', 'mo_saml_register_customer_nonce' ); ?> 100 100 101 101 <div class="mo-saml-bootstrap-row mo-saml-bootstrap-align-items-center mo-saml-bootstrap-justify-content-center mo-saml-bootstrap-mt-4 mo-saml-reg-field"> … … 112 112 </div> 113 113 <div class="mo-saml-bootstrap-col-md-6 mo-saml-bootstrap-ps-0"> 114 <input class="mo-saml-bootstrap-w-100 mo-saml-reg-text-field" required type="password" name="password" placeholder="<?php esc_html_e( 'Password (Min. length 6)', 'miniorange-saml-20-single-sign-on' ); ?>" minlength="6" pattern="^[(\w)*(!@#$.%^&*-_)*]+$"title="Minimum 6 characters should be present. Maximum 15 characters should be present. Only following symbols (!@#.$%^&*) should be present.">114 <input class="mo-saml-bootstrap-w-100 mo-saml-reg-text-field" required type="password" name="password" placeholder="<?php esc_html_e( 'Password (Min. length 6)', 'miniorange-saml-20-single-sign-on' ); ?>" minlength="6" title="Minimum 6 characters should be present. Maximum 15 characters should be present. Only following symbols (!@#.$%^&*) should be present."> 115 115 </div> 116 116 </div> … … 120 120 </div> 121 121 <div class="mo-saml-bootstrap-col-md-6 mo-saml-bootstrap-ps-0"> 122 <input class="mo-saml-bootstrap-w-100 mo-saml-reg-text-field" required type="password" name="confirmPassword" placeholder="<?php esc_html_e( 'Confirm your password', 'miniorange-saml-20-single-sign-on' ); ?>" minlength="6" pattern="^[(\w)*(!@#$.%^&*-_)*]+$">122 <input class="mo-saml-bootstrap-w-100 mo-saml-reg-text-field" required type="password" name="confirmPassword" placeholder="<?php esc_html_e( 'Confirm your password', 'miniorange-saml-20-single-sign-on' ); ?>" minlength="6" > 123 123 </div> 124 124 </div> … … 137 137 </div> 138 138 <div class="mo-saml-bootstrap-col-md-7 mo-saml-bootstrap-ps-0"> 139 <input class="mo-saml-bootstrap-w-100 mo-saml-login-text-field" required type="password" name="password" disabled="true" placeholder="Password (Min. length 6)" minlength="6" pattern="^[(\w)*(!@#$.%^&*-_)*]+$"title="Minimum 6 characters should be present. Maximum 15 characters should be present. Only following symbols (!@#.$%^&*) should be present.">139 <input class="mo-saml-bootstrap-w-100 mo-saml-login-text-field" required type="password" name="password" disabled="true" placeholder="Password (Min. length 6)" minlength="6" title="Minimum 6 characters should be present. Maximum 15 characters should be present. Only following symbols (!@#.$%^&*) should be present."> 140 140 </div> 141 141 </div> -
miniorange-saml-20-single-sign-on/trunk/views/mo-saml-addons.php
r3123187 r3147410 39 39 'paid_mem_pro' => __( 'Map your users to different Paid MembershipPro membership levels as per the group information sent by your Identity Provider.', 'miniorange-saml-20-single-sign-on' ), 40 40 'profile_picture_add_on' => __( 'Maps raw image data or URL received from your Identity Provider into Gravatar for the user.', 'miniorange-saml-20-single-sign-on' ), 41 'salesforce_community_addon' => __( 'It simplifies the process of configuring multiple communities by allowing you to configure login and logout URLs for each community in one place. This enables users from various Salesforce Communities to seamlessly single sign-on (SSO) into your WordPress site.', 'miniorange-saml-20-single-sign-on' ), 42 'ip_whitelisting_addon' => __( 'Allows the whitelisted users to bypass redirection to the IDP for authentication based on their IP address.', 'miniorange-saml-20-single-sign-on' ), 43 'azure_multi_tenant_addon' => __( 'It reduces the requirement of configuring multiple tenants separately. All the users from the configured tenants will be able to perform SSO login using only a single Azure AD application with a common endpoint.', 'miniorange-saml-20-single-sign-on' ), 41 44 ); 42 45 ?> -
miniorange-saml-20-single-sign-on/trunk/views/mo-saml-notice.php
r3123187 r3147410 21 21 <form action = "" method = "POST"> 22 22 <button type = "submit" name = "mo_idp_close_notice" class="mo_notice_cross_btn" value = "mo_idp_close_notice">X</button> 23 <?php wp_nonce_field( 'mo_idp_close_notice' ); ?>23 <?php wp_nonce_field( 'mo_idp_close_notice', 'mo_idp_close_notice_nonce' ); ?> 24 24 </form> 25 25 <h7 class="mo_text-secondary mo-saml-bootstrap-text-black"><?php esc_html_e( 'It seems you are using ', 'miniorange-saml-20-single-sign-on' ); ?><b> <span class = "mo-saml-bootstrap-text-black" id ="idp_ads_check_idp_name"> </span></b> <?php esc_html_e( 'as your IDP. Hence, you might be interested in our other ', 'miniorange-saml-20-single-sign-on' ); ?> <a href="https://plugins.miniorange.com/wordpress-azure-office365-integrations" target="_blank" rel="noopener noreferrer" style="text-decoration: none;"><?php esc_html_e( 'Microsoft Integrations', 'miniorange-saml-20-single-sign-on' ); ?></a> -
miniorange-saml-20-single-sign-on/trunk/views/mo-saml-plugin-core.php
r3123187 r3147410 103 103 </div> 104 104 <form method="post" action="" id="mo_saml_welcome_form"> 105 <?php wp_nonce_field( 'mo_saml_welcome_form' ); ?>105 <?php wp_nonce_field( 'mo_saml_welcome_form', 'mo_saml_welcome_form_nonce' ); ?> 106 106 <input type="hidden" name="option" value="mo_saml_welcome_form"> 107 107 </form> … … 125 125 126 126 $sandbox_url = 'https://sandbox.miniorange.com/?mo_plugin=mo_saml&referer=' . site_url(); 127 $version = 'v' . Mo_Saml_Options_Plugin_Constants::VERSION; 127 128 ?> 128 129 <div class="wrap shadow-cstm mo-saml-bootstrap-p-3 mo-saml-bootstrap-me-0 mo-saml-bootstrap-mt-0 mo-saml-margin-left"> 129 130 <div class="mo-saml-bootstrap-row align-items-top"> 130 <div class="mo-saml-bootstrap-col-md- 4mo-saml-bootstrap-h3 mo-saml-bootstrap-ps-4">131 <div class="mo-saml-bootstrap-col-md-5 mo-saml-bootstrap-h3 mo-saml-bootstrap-ps-4"> 131 132 <?php esc_html_e( 'miniOrange SSO using SAML 2.0', 'miniorange-saml-20-single-sign-on' ); ?> 132 </div> 133 <div class="mo-saml-bootstrap-col-md-4 mo-saml-bootstrap-text-end mo-saml-bootstrap-d-flex mo-saml-bootstrap-align-items-center"> 134 <a class="mo-saml-bootstrap-pb-3 mo-saml-bootstrap-pt-3 mo-saml-bootstrap-ps-4 mo-saml-bootstrap-pe-4 pop-up-btns" target="_blank" href="<?php echo esc_url( $sandbox_url ); ?>"><?php esc_html_e( 'Try Paid Features', 'miniorange-saml-20-single-sign-on' ); ?></a> 133 <span class="mo_saml_version_display"> <?php echo '[ ' . esc_html( $version ) . ' ]'; ?> </span> 134 </div> 135 <div class="mo-saml-bootstrap-col-md-3 mo-saml-bootstrap-text-end mo-saml-bootstrap-d-flex mo-saml-bootstrap-align-items-center"> 136 <a class="mo-saml-bootstrap-text-white mo-saml-bootstrap-ps-4 mo-saml-bootstrap-pe-4 mo-saml-bootstrap-pt-2 mo-saml-bootstrap-pb-2 btn-prem prem-btn-cstm" target="_blank" href="<?php echo esc_url( $sandbox_url ); ?>"><?php esc_html_e( 'Try Paid Features', 'miniorange-saml-20-single-sign-on' ); ?></a> 135 137 </div> 136 138 <div class="mo-saml-bootstrap-col-md-4 mo-saml-bootstrap-text-end mo-saml-bootstrap-d-flex mo-saml-bootstrap-align-items-center mo-saml-bootstrap-justify-content-end">
Note: See TracChangeset
for help on using the changeset viewer.