mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2026-02-17 13:52:14 +01:00
# Description of Changes When password login is disabled UI changes to have central style SSO button <img width="2057" height="1369" alt="image" src="https://github.com/user-attachments/assets/8f65f778-0809-4c54-a9c4-acf3a67cfa63" /> Auto SSO login functionality Massively increases auth debugging visibility: verbose console logging in ErrorBoundary, AuthProvider, Landing, AuthCallback. Improves OAuth/SAML testability: adds Keycloak docker-compose setups + realm JSON exports + start/validate scripts for OAuth and SAML environments. Hardens license upload path handling: better logs + safer directory traversal protection by normalizing absolute paths before startsWith check. UI polish for SSO-only login: new “single provider” centered layout + updated button styles (pill buttons, variants, icon wrapper, arrow). <!-- Please provide a summary of the changes, including: - What was changed - Why the change was made - Any challenges encountered Closes #(issue_number) --> --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### Translations (if applicable) - [ ] I ran [`scripts/counter_translation.py`](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/docs/counter_translation.md) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details.
211 lines
6.2 KiB
JSON
211 lines
6.2 KiB
JSON
{
|
|
"id": "stirling-saml",
|
|
"realm": "stirling-saml",
|
|
"displayName": "Stirling PDF SAML Test",
|
|
"displayNameHtml": "<div class=\"kc-logo-text\"><span>Stirling PDF SAML</span></div>",
|
|
"enabled": true,
|
|
"sslRequired": "none",
|
|
"registrationAllowed": true,
|
|
"registrationEmailAsUsername": true,
|
|
"rememberMe": true,
|
|
"verifyEmail": false,
|
|
"loginWithEmailAllowed": true,
|
|
"duplicateEmailsAllowed": false,
|
|
"resetPasswordAllowed": true,
|
|
"editUsernameAllowed": false,
|
|
"bruteForceProtected": false,
|
|
"users": [
|
|
{
|
|
"username": "samluser",
|
|
"email": "samluser@example.com",
|
|
"emailVerified": true,
|
|
"firstName": "SAML",
|
|
"lastName": "TestUser",
|
|
"enabled": true,
|
|
"credentials": [
|
|
{
|
|
"type": "password",
|
|
"value": "samlpassword",
|
|
"temporary": false
|
|
}
|
|
],
|
|
"realmRoles": ["user"],
|
|
"attributes": {
|
|
"department": ["Engineering"],
|
|
"employeeId": ["EMP001"]
|
|
}
|
|
},
|
|
{
|
|
"username": "samladmin",
|
|
"email": "samladmin@example.com",
|
|
"emailVerified": true,
|
|
"firstName": "SAML",
|
|
"lastName": "Admin",
|
|
"enabled": true,
|
|
"credentials": [
|
|
{
|
|
"type": "password",
|
|
"value": "samladminpass",
|
|
"temporary": false
|
|
}
|
|
],
|
|
"realmRoles": ["user", "admin"],
|
|
"attributes": {
|
|
"department": ["IT"],
|
|
"employeeId": ["ADM001"]
|
|
}
|
|
}
|
|
],
|
|
"roles": {
|
|
"realm": [
|
|
{
|
|
"name": "user",
|
|
"description": "Regular user role",
|
|
"composite": false,
|
|
"clientRole": false
|
|
},
|
|
{
|
|
"name": "admin",
|
|
"description": "Administrator role",
|
|
"composite": false,
|
|
"clientRole": false
|
|
}
|
|
]
|
|
},
|
|
"clients": [
|
|
{
|
|
"clientId": "http://localhost:8080/saml2/service-provider-metadata/keycloak",
|
|
"name": "Stirling PDF SAML Client",
|
|
"description": "SAML2 client for Stirling PDF testing",
|
|
"rootUrl": "http://localhost:8080",
|
|
"adminUrl": "http://localhost:8080",
|
|
"baseUrl": "http://localhost:8080",
|
|
"enabled": true,
|
|
"clientAuthenticatorType": "client-secret",
|
|
"redirectUris": [
|
|
"http://localhost:8080/*"
|
|
],
|
|
"webOrigins": [
|
|
"http://localhost:8080"
|
|
],
|
|
"bearerOnly": false,
|
|
"consentRequired": false,
|
|
"standardFlowEnabled": true,
|
|
"implicitFlowEnabled": false,
|
|
"directAccessGrantsEnabled": false,
|
|
"serviceAccountsEnabled": false,
|
|
"publicClient": false,
|
|
"frontchannelLogout": true,
|
|
"protocol": "saml",
|
|
"attributes": {
|
|
"saml.force.post.binding": "true",
|
|
"saml.multivalued.roles": "false",
|
|
"saml.encrypt": "false",
|
|
"saml.server.signature": "true",
|
|
"saml.server.signature.keyinfo.ext": "false",
|
|
"exclude.session.state.from.auth.response": "false",
|
|
"saml_force_name_id_format": "false",
|
|
"saml.client.signature": "false",
|
|
"tls.client.certificate.bound.access.tokens": "false",
|
|
"saml.authnstatement": "true",
|
|
"display.on.consent.screen": "false",
|
|
"saml_name_id_format": "email",
|
|
"saml_signature_canonicalization_method": "http://www.w3.org/2001/10/xml-exc-c14n#",
|
|
"saml.assertion.signature": "true"
|
|
},
|
|
"fullScopeAllowed": true,
|
|
"protocolMappers": [
|
|
{
|
|
"name": "email",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-user-property-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"attribute.nameformat": "URI Reference",
|
|
"user.attribute": "email",
|
|
"friendly.name": "email",
|
|
"attribute.name": "email"
|
|
}
|
|
},
|
|
{
|
|
"name": "firstName",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-user-property-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"attribute.nameformat": "URI Reference",
|
|
"user.attribute": "firstName",
|
|
"friendly.name": "firstName",
|
|
"attribute.name": "firstName"
|
|
}
|
|
},
|
|
{
|
|
"name": "lastName",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-user-property-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"attribute.nameformat": "URI Reference",
|
|
"user.attribute": "lastName",
|
|
"friendly.name": "lastName",
|
|
"attribute.name": "lastName"
|
|
}
|
|
},
|
|
{
|
|
"name": "username",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-user-property-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"attribute.nameformat": "URI Reference",
|
|
"user.attribute": "username",
|
|
"friendly.name": "username",
|
|
"attribute.name": "username"
|
|
}
|
|
},
|
|
{
|
|
"name": "role list",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-role-list-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"single": "true",
|
|
"attribute.nameformat": "Basic",
|
|
"attribute.name": "Role"
|
|
}
|
|
},
|
|
{
|
|
"name": "department",
|
|
"protocol": "saml",
|
|
"protocolMapper": "saml-user-attribute-mapper",
|
|
"consentRequired": false,
|
|
"config": {
|
|
"attribute.nameformat": "Basic",
|
|
"user.attribute": "department",
|
|
"friendly.name": "department",
|
|
"attribute.name": "department"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"browserSecurityHeaders": {
|
|
"contentSecurityPolicyReportOnly": "",
|
|
"xContentTypeOptions": "nosniff",
|
|
"referrerPolicy": "no-referrer",
|
|
"xRobotsTag": "none",
|
|
"xFrameOptions": "SAMEORIGIN",
|
|
"contentSecurityPolicy": "frame-src 'self'; frame-ancestors 'self'; object-src 'none';",
|
|
"xXSSProtection": "1; mode=block",
|
|
"strictTransportSecurity": "max-age=31536000; includeSubDomains"
|
|
},
|
|
"eventsEnabled": false,
|
|
"eventsListeners": ["jboss-logging"],
|
|
"enabledEventTypes": [],
|
|
"adminEventsEnabled": false,
|
|
"adminEventsDetailsEnabled": false,
|
|
"internationalizationEnabled": false,
|
|
"supportedLocales": [],
|
|
"keycloakVersion": "24.0.0"
|
|
}
|