[protege-user] WebProtégé 6.0.0: System Admin Role Present but Administrator Options Not Displayed
"Dsouza, Nithin via protege-user" <[email protected]> Tue, 21 Jul 2026 18:49:55 +0000
| Newsgroups | gmane.comp.misc.ontology.protege.owl |
|---|---|
| Message-ID | <AM0PR02MB5924794BD8CE02236A3D5ACDDCC22@AM0PR02MB5924.eurprd02.prod.outlook.com> |
--===============6565957658834252072== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_AM0PR02MB5924794BD8CE02236A3D5ACDDCC22AM0PR02MB5924eurp_" --_000_AM0PR02MB5924794BD8CE02236A3D5ACDDCC22AM0PR02MB5924eurp_ Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hello WebProt=E9g=E9 Support Team, I am testing a fresh, self-hosted WebProt=E9g=E9 6.0.0 deployment using the= protegeproject/webprotege-deploy Docker Compose repository. The user can register and sign in successfully. However, after signing in, = the home page displays only an empty project list. The Create Project, Uplo= ad Project, and Application Settings options are not available. Environment * Operating system: RHEL 9 * Deployment method: Docker Compose * Architecture: WebProt=E9g=E9 microservices * Deployment branch: main * Deployment commit: e3ad731 * WebProt=E9g=E9 UI: 6.0.0 * GWT UI server: 9.0.20 * Backend service: 5.0.10 * Authorization service: 3.0.9 * Keycloak integration: 2.0.1 * MongoDB: 8.0.10 User and Login Details The test account was registered using [email protected], as the = registration form requires an email-format identifier. The email address sh= own here has been anonymized for this public support request. [email protected] The SystemAdmin client role has been assigned to this account under the web= protege client in Keycloak. Validation completed I have confirmed the following: * All required WebProt=E9g=E9 containers are running. * The WebProt=E9g=E9 login and home pages are accessible. * Keycloak authentication and user login are working. * The SystemAdmin client role is assigned to the test account. * The generated Keycloak access token contains: "resource_access": { "webprotege": { "roles": [ "SystemAdmin" ] } } The generated token contains: "preferred_username": "[email protected]" * The backend and authorization services recognize the account and succ= essfully process requests. * MongoDB and RabbitMQ connectivity are working. * Nginx is serving the UI, and no failed requests or error status codes= were observed in the browser Network tab. * No relevant recent errors or exceptions are present in the backend or= authorization-service logs. * The behavior was reproduced using a fresh private browser session, ru= ling out browser caching. * This is a fresh installation, so no application upgrade or database m= igration was involved. The authorization logs show successful requests such as: Received command webprotege.authorization.GetAuthorizedCapabilities Request executed webprotege.authorization.GetAuthorizedCapabilities Received command webprotege.authorization.GetAuthorizedResources Request executed webprotege.authorization.GetAuthorizedResources The backend logs also show successful requests such as: Received command webprotege.users.GetAuthenticatedUserDetails Request executed webprotege.users.GetAuthenticatedUserDetails Received command webprotege.projects.GetAvailableProjects Request executed webprotege.projects.GetAvailableProjects Authorization observations The MongoDB RoleAssignments collection remains empty: db.RoleAssignments.countDocuments() Result: 0 I also reviewed: * webprotege-authorization-service Issue #36 * webprotege-deploy Issue #62 The proposed INITIAL_ADMIN_USERNAME bootstrap does not appear to be impleme= nted in authorization-service 3.0.9 or wired into the current deployment. For testing, the following temporary minimal RoleAssignments document was i= nserted using the same anonymized email-format username recognized by the b= ackend and authorization-service logs: db.RoleAssignments.insertOne({ userName: "[email protected]", projectId: null, assignedRoles: ["SystemAdmin"] }) However, this resulted in a RoleAssignment deserialization error because th= e required roleClosure and capabilityClosure fields were missing: Cannot construct instance of edu.stanford.protege.webprotege.authorization.RoleAssignment java.lang.NullPointerException The temporary document was subsequently removed, and the RoleAssignments co= llection is empty again. Questions Could you please advise on the following? 1. Is assigning the SystemAdmin client role under the webprotege client = in Keycloak sufficient for this deployment version? 2. Is a MongoDB RoleAssignments document required in addition to assigni= ng the SystemAdmin role in Keycloak? If so, could you please provide the co= mplete and supported MongoDB query for creating the initial administrator a= ssignment, including the required roleClosure and capabilityClosure fields? 1. What is the supported procedure for granting full administrative acce= ss to the first registered user? 2. Is there a compatible authorization-service version that implements t= he proposed initial-administrator bootstrap? 3. Are any additional client scopes, token mappers, or WebProt=E9g=E9 ap= plication settings required? 4. Is an email-format value such as [email protected] support= ed as the preferred_username and WebProt=E9g=E9 authorization username? 5. If a separate, non-email webprotege_username value is required, how s= hould it be created and mapped for users registered through the email-only = registration form? Thank you for your assistance. _________________________________________________________________ Thanks & Regards, Nithin Dsouza This message contains information that may be privileged or confidential an= d is the property of the Capgemini Group. It is intended only for the perso= n to whom it is addressed. If you are not the intended recipient, you are n= ot authorized to read, print, retain, copy, disseminate, distribute, or use= this message or any part thereof. If you receive this message in error, pl= ease notify the sender immediately and delete all copies of this message. --_000_AM0PR02MB5924794BD8CE02236A3D5ACDDCC22AM0PR02MB5924eurp_ Content-Type: text/html; charset="iso-8859-1" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-= 1"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:Aptos;} @font-face {font-family:"Segoe UI"; panose-1:2 11 5 2 4 2 4 2 2 3;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; font-size:11.0pt; font-family:"Aptos",sans-serif;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {mso-style-priority:34; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; font-size:11.0pt; font-family:"Aptos",sans-serif;} span.EmailStyle17 {mso-style-type:personal-compose; font-family:"Aptos",sans-serif; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:11.0pt; mso-ligatures:none;} @page WordSection1 {size:612.0pt 792.0pt; margin:72.0pt 72.0pt 72.0pt 72.0pt;} div.WordSection1 {page:WordSection1;} /* List Definitions */ @list l0 {mso-list-id:101658188; mso-list-template-ids:-777330008;} @list l0:level1 {mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level2 {mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level3 {mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level4 {mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level5 {mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level6 {mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level7 {mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level8 {mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l0:level9 {mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt;} @list l1 {mso-list-id:587037612; mso-list-type:hybrid; mso-list-template-ids:-1234371790 67698689 67698691 67698693 67698689 6769= 8691 67698693 67698689 67698691 67698693;} @list l1:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l1:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l1:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l1:level4 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l1:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l1:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l1:level7 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l1:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l1:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l2 {mso-list-id:843284290; mso-list-type:hybrid; mso-list-template-ids:-1619507222 67698703 67698713 67698715 67698703 6769= 8713 67698715 67698703 67698713 67698715;} @list l2:level1 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level2 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l2:level4 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level5 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l2:level7 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level8 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l2:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l3 {mso-list-id:934632993; mso-list-type:hybrid; mso-list-template-ids:-503806268 67698703 67698713 67698715 67698703 67698= 713 67698715 67698703 67698713 67698715;} @list l3:level1 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:72.0pt; text-indent:-18.0pt;} @list l3:level2 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:108.0pt; text-indent:-18.0pt;} @list l3:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:144.0pt; text-indent:-9.0pt;} @list l3:level4 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:180.0pt; text-indent:-18.0pt;} @list l3:level5 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:216.0pt; text-indent:-18.0pt;} @list l3:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:252.0pt; text-indent:-9.0pt;} @list l3:level7 {mso-level-tab-stop:none; mso-level-number-position:left; margin-left:288.0pt; text-indent:-18.0pt;} @list l3:level8 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:324.0pt; text-indent:-18.0pt;} @list l3:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; margin-left:360.0pt; text-indent:-9.0pt;} @list l4 {mso-list-id:1014724940; mso-list-type:hybrid; mso-list-template-ids:1391773890 67698703 67698713 67698715 67698703 67698= 713 67698715 67698703 67698713 67698715;} @list l4:level1 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level2 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level3 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l4:level4 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level5 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level6 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l4:level7 {mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level8 {mso-level-number-format:alpha-lower; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt;} @list l4:level9 {mso-level-number-format:roman-lower; mso-level-tab-stop:none; mso-level-number-position:right; text-indent:-9.0pt;} @list l5 {mso-list-id:1352491848; mso-list-type:hybrid; mso-list-template-ids:4250542 67698689 67698691 67698693 67698689 67698691= 67698693 67698689 67698691 67698693;} @list l5:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l5:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l5:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l5:level4 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l5:level5 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l5:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l5:level7 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Symbol;} @list l5:level8 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:"Courier New";} @list l5:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:none; mso-level-number-position:left; text-indent:-18.0pt; font-family:Wingdings;} @list l6 {mso-list-id:1452479366; mso-list-template-ids:1265958794;} @list l6:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l6:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l6:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level4 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level5 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level7 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level8 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l6:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7 {mso-list-id:1537813414; mso-list-template-ids:1422926956;} @list l7:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l7:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l7:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level4 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level5 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level7 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level8 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l7:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8 {mso-list-id:1721859079; mso-list-template-ids:-387252550;} @list l8:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l8:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l8:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level4 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level5 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level7 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level8 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l8:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9 {mso-list-id:1922176965; mso-list-template-ids:127304070;} @list l9:level1 {mso-level-number-format:bullet; mso-level-text:\F0B7; mso-level-tab-stop:36.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Symbol;} @list l9:level2 {mso-level-number-format:bullet; mso-level-text:o; mso-level-tab-stop:72.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:"Courier New"; mso-bidi-font-family:"Times New Roman";} @list l9:level3 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:108.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level4 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:144.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level5 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:180.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level6 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:216.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level7 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:252.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level8 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:288.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} @list l9:level9 {mso-level-number-format:bullet; mso-level-text:\F0A7; mso-level-tab-stop:324.0pt; mso-level-number-position:left; text-indent:-18.0pt; mso-ansi-font-size:10.0pt; font-family:Wingdings;} ol {margin-bottom:0cm;} ul {margin-bottom:0cm;} --></style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"EN-US" link=3D"#467886" vlink=3D"#96607D" style=3D"word-wrap:= break-word"> <div class=3D"WordSection1"> <p class=3D"MsoNormal">Hello WebProt=E9g=E9 Support Team,<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">I am testing a fresh, self-hosted WebProt=E9g=E9 6.0= .0 deployment using the protegeproject/webprotege-deploy Docker Compose rep= ository.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">The user can register and sign in successfully. Howe= ver, after signing in, the home page displays only an empty project list. T= he <b>Create Project</b>, <b>Upload Project</b>, and <b>Application Settings</= b> options are not available.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><b>Environment<o:p></o:p></b></p> <p class=3D"MsoNormal"><b><o:p> </o:p></b></p> <ul style=3D"margin-top:0cm" type=3D"disc"> <li class=3D"MsoNormal" style=3D"mso-list:l8 level1 lfo1">Operating system:= RHEL 9<o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-list:l8 level1 = lfo1">Deployment method: Docker Compose<o:p></o:p></li><li class=3D"MsoNorm= al" style=3D"mso-list:l8 level1 lfo1">Architecture: WebProt=E9g=E9 microser= vices<o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-list:l8 level1 lf= o1">Deployment branch: main<o:p></o:p></li><li class=3D"MsoNormal" style=3D= "mso-list:l8 level1 lfo1">Deployment commit: e3ad731<o:p></o:p></li><li cla= ss=3D"MsoNormal" style=3D"mso-list:l8 level1 lfo1">WebProt=E9g=E9 UI: 6.0.0= <o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-list:l8 level1 lfo1">G= WT UI server: 9.0.20<o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-li= st:l8 level1 lfo1">Backend service: 5.0.10<o:p></o:p></li><li class=3D"MsoN= ormal" style=3D"mso-list:l8 level1 lfo1">Authorization service: 3.0.9<o:p><= /o:p></li><li class=3D"MsoNormal" style=3D"mso-list:l8 level1 lfo1">Keycloa= k integration: 2.0.1<o:p></o:p></li><li class=3D"MsoNormal" style=3D"mso-li= st:l8 level1 lfo1">MongoDB: 8.0.10<o:p></o:p></li></ul> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><b>User and Login Details<o:p></o:p></b></p> <p class=3D"MsoNormal"><b><o:p> </o:p></b></p> <p class=3D"MsoNormal">The test account was registered using webprotege-adm= [email protected], as the registration form requires an email-format identifie= r. The email address shown here has been anonymized for this public support= request.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal" style=3D"text-indent:36.0pt"><i>webprotege-admin@exa= mple.com<o:p></o:p></i></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">The SystemAdmin client role has been assigned to thi= s account under the webprotege client in Keycloak.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><b>Validation completed<o:p></o:p></b></p> <p class=3D"MsoNormal"><b><o:p> </o:p></b></p> <p class=3D"MsoNormal">I have confirmed the following:<o:p></o:p></p> <ul style=3D"margin-top:0cm" type=3D"disc"> <li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l5 level1 = lfo9">All required WebProt=E9g=E9 containers are running. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l5 level1 lfo9">The WebProt=E9g=E9 login and home pages are accessibl= e. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l5 level1 lfo9">Keycloak authentication and user login are working. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l5 level1 lfo9">The SystemAdmin client role is assigned to the test a= ccount. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l5 level1 lfo9">The generated Keycloak access token contains:<o:p></o= :p></li></ul> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">"resource_access": {<o:p></o:p></p> <p class=3D"MsoNormal"> "webprotege": {<o:p></o:p></p> <p class=3D"MsoNormal"> "roles": [<o:p></o:p></= p> <p class=3D"MsoNormal"> "SystemAdmin&quo= t;<o:p></o:p></p> <p class=3D"MsoNormal"> ]<o:p></o:p></p> <p class=3D"MsoNormal"> }<o:p></o:p></p> <p class=3D"MsoNormal">}<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">The generated token contains:<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><i>"preferred_username": "webprotege-= [email protected]"<o:p></o:p></i></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <ul style=3D"margin-top:0cm" type=3D"disc"> <li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l1 level1 = lfo10">The backend and authorization services recognize the account and suc= cessfully process requests. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l1 level1 lfo10">MongoDB and RabbitMQ connectivity are working. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l1 level1 lfo10">Nginx is serving the UI, and no failed requests or e= rror status codes were observed in the browser Network tab. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l1 level1 lfo10">No relevant recent errors or exceptions are present = in the backend or authorization-service logs. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l1 level1 lfo10">The behavior was reproduced using a fresh private br= owser session, ruling out browser caching. <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l1 level1 lfo10">This is a fresh installation, so no application upgr= ade or database migration was involved.<o:p></o:p></li></ul> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal">The authorization logs show successful requests such= as:<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Received command web= protege.authorization.GetAuthorizedCapabilities<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Request executed web= protege.authorization.GetAuthorizedCapabilities<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i><o:p> </o:p></i= ></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Received command web= protege.authorization.GetAuthorizedResources<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Request executed web= protege.authorization.GetAuthorizedResources<o:p></o:p></i></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">The backend logs also show successful requests such = as:<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Received command web= protege.users.GetAuthenticatedUserDetails<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Request executed web= protege.users.GetAuthenticatedUserDetails<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i><o:p> </o:p></i= ></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Received command web= protege.projects.GetAvailableProjects<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Request executed web= protege.projects.GetAvailableProjects</i><o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><b>Authorization observations<o:p></o:p></b></p> <p class=3D"MsoNormal">The MongoDB RoleAssignments collection remains empty= :<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal">db.RoleAssignments.countDocuments()<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal">Result:<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN">0<o:p></o:p></span></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal">I also reviewed:<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <ul style=3D"margin-top:0cm" type=3D"disc"> <li class=3D"MsoNormal" style=3D"mso-list:l9 level1 lfo4">webprotege-author= ization-service Issue #36<o:p></o:p></li><li class=3D"MsoNormal" style=3D"m= so-list:l9 level1 lfo4">webprotege-deploy Issue #62<o:p></o:p></li></ul> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><o:p> </o:p></p> <p class=3D"MsoNormal">The proposed INITIAL_ADMIN_USERNAME bootstrap does n= ot appear to be implemented in authorization-service 3.0.9 or wired into th= e current deployment.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">For testing, the following temporary minimal RoleAss= ignments document was inserted using the same anonymized email-format usern= ame recognized by the backend and authorization-service logs:<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">db.RoleAssignments.insertOne({<o:p></o:p></p> <p class=3D"MsoNormal"> userName: "[email protected]&= quot;,<o:p></o:p></p> <p class=3D"MsoNormal"> projectId: null,<o:p></o:p></p> <p class=3D"MsoNormal"> assignedRoles: ["SystemAdmin"]<o:p>= </o:p></p> <p class=3D"MsoNormal">})<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">However, this resulted in a RoleAssignment deseriali= zation error because the required roleClosure and capabilityClosure fields = were missing:<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>Cannot construct ins= tance of<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>edu.stanford.protege= .webprotege.authorization.RoleAssignment<o:p></o:p></i></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i><o:p> </o:p></i= ></p> <p class=3D"MsoNormal" style=3D"margin-left:36.0pt"><i>java.lang.NullPointe= rException<o:p></o:p></i></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">The temporary document was subsequently removed, and= the RoleAssignments collection is empty again.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal"><b>Questions<o:p></o:p></b></p> <p class=3D"MsoNormal"><b><o:p> </o:p></b></p> <p class=3D"MsoNormal">Could you please advise on the following?<o:p></o:p>= </p> <p class=3D"MsoNormal"><o:p> </o:p></p> <ol style=3D"margin-top:0cm" start=3D"1" type=3D"1"> <li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l2 level1 = lfo8">Is assigning the SystemAdmin client role under the webprotege client = in Keycloak sufficient for this deployment version? <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;lin= e-height:15.0pt;mso-list:l2 level1 lfo8"> <span style=3D"font-size:10.5pt;font-family:"Segoe UI",sans-serif= ">Is a MongoDB </span> <span style=3D"font-size:10.0pt;font-family:"Courier New"">RoleAs= signments</span><span style=3D"font-size:10.5pt;font-family:"Segoe UI&= quot;,sans-serif"> document required in addition to assigning the </span><span style=3D"font-size:10.0pt;font-family:"Courier New""= >SystemAdmin</span><span style=3D"font-size:10.5pt;font-family:"Segoe = UI",sans-serif"> role in Keycloak? If so, could you please provide the= complete and supported MongoDB query for creating the initial administrator assignment, including the required </span><span style=3D"fon= t-size:10.0pt;font-family:"Courier New"">roleClosure</span><span = style=3D"font-size:10.5pt;font-family:"Segoe UI",sans-serif"> and </span><span style=3D"font-size:10.0pt;font-family:"Courier New""= >capabilityClosure</span><span style=3D"font-size:10.5pt;font-family:"= Segoe UI",sans-serif"> fields?<o:p></o:p></span></li></ol> <p class=3D"MsoListParagraph" style=3D"line-height:15.0pt"><span style=3D"f= ont-size:10.5pt;font-family:"Segoe UI",sans-serif"><o:p> </o= :p></span></p> <ol style=3D"margin-top:0cm" start=3D"3" type=3D"1"> <li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso-list:l2 level1 = lfo8">What is the supported procedure for granting full administrative acce= ss to the first registered user? <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l2 level1 lfo8">Is there a compatible authorization-service version t= hat implements the proposed initial-administrator bootstrap? <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l2 level1 lfo8">Are any additional client scopes, token mappers, or W= ebProt=E9g=E9 application settings required? <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l2 level1 lfo8">Is an email-format value such as webprotege-admin@exa= mple.com supported as the preferred_username and WebProt=E9g=E9 authorizati= on username? <o:p></o:p></li><li class=3D"MsoListParagraph" style=3D"margin-left:0cm;mso= -list:l2 level1 lfo8">If a separate, non-email webprotege_username value is= required, how should it be created and mapped for users registered through= the email-only registration form?<o:p></o:p></li></ol> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Thank you for your assistance.<o:p></o:p></p> <p class=3D"MsoNormal"><span lang=3D"EN-IN"><o:p> </o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ve= rdana",sans-serif;color:black;mso-ligatures:standardcontextual">______= ___________________________________________________________</span><span sty= le=3D"font-size:12.0pt;font-family:"Verdana",sans-serif;color:#FF= C000"><o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ve= rdana",sans-serif;color:black;mso-ligatures:standardcontextual">Thanks= & Regards,<o:p></o:p></span></p> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ve= rdana",sans-serif;color:black;mso-ligatures:standardcontextual">Nithin= Dsouza</span><span style=3D"font-family:"Verdana",sans-serif;col= or:black;mso-ligatures:standardcontextual"><o:p></o:p></span></p> </div> <span style=3D"font-size: 9px;">This message contains information that may = be privileged or confidential and is the property of the Capgemini Group. I= t is intended only for the person to whom it is addressed. If you are not t= he intended recipient, you are not authorized to read, print, retain, copy,= disseminate, distribute, or use this message or any part thereof. If you r= eceive this message in error, please notify the sender immediately and dele= te all copies of this message.</span></body> </html> --_000_AM0PR02MB5924794BD8CE02236A3D5ACDDCC22AM0PR02MB5924eurp_-- --===============6565957658834252072== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ protege-user mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/protege-user --===============6565957658834252072==--