SURFnet / rd-sram-integration

Research Drive / SURF Research Access Management Integration
2 stars 3 forks source link

A group with only local users seems to work now. With federated users not yet. #182

Closed michielbdejong closed 1 year ago

michielbdejong commented 1 year ago

Steps to Reproduce

curl -X POST \
   'https://tst-miskatonic.data.surfsara.nl/index.php/apps/federatedgroups/scim/Groups' \
    --header 'Content-Type: application/json' \
    --data-raw '{"displayName": "testgroup (uniharderwijk_democollab) (SRAM CO)", "externalId": "60422df5-8ac4-435b-b55f-13b64d9284ce@sram.surf.nl", "members": [{"display": "", "value": "zoete001@surf.nl"}, {"display": "", "value": "afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl@tst-aperture.data.surfsara.nl"}, {"display": "", "value": "13d408f8-5a42-4632-a9d7-987658e673f0@surfguest.nl@tst-aperture.data.surfsara.nl"}], "urn:mace:surf.nl:sram:scim:extension:Group": {"description": "Provisioned by service Test Service - ", "labels": [], "urn": "uniharderwijk:democollab:testservice-testgroup"}, "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "urn:mace:surf.nl:sram:scim:extension:Group"], "id": "testgroup (uniharderwijk_democollab) (SRAM CO)", "meta": {"created": "2023-05-09T09:28:12.273637", "lastModified": "2023-05-09T09:28:12.289948", "location": "/Groups/0133592b-834b-4109-aa2b-b0825d405dc8", "resourceType": "Group"}}' -i

Expected result

A 201 response or similar

Actual Result

HTTP/1.1 500 Internal Server Error
[...]
michielbdejong commented 1 year ago

Server logs:

{"reqId":"ZIBKDCqPefr1tpATLKSmEwAAAAI","level":1,"time":"07\/Jun\/2023:11:12:45","remoteAddr":"10.234.0.3","user":"--","app":"admin_audit",
"method":"POST",
"url":"\/index.php\/apps\/federatedgroups\/scim\/Groups",
"message":"Group testgroup (uniharderwijk_democollab) (SRAM CO) created by IP 10.234.0.3",
"action":"group_created",
"group":"testgroup (uniharderwijk_democollab) (SRAM CO)",
"CLI":false,
"userAgent":"curl\/7.61.1",
"auditGroups":[],
"auditUsers":[],
"actor":"IP 10.234.0.3"}

{"reqId":"ZIBKDCqPefr1tpATLKSmEwAAAAI","level":3,"time":"07\/Jun\/2023:11:12:45",
"remoteAddr":"10.234.0.3","user":"--","app":"index",
"method":"POST",
"url":"\/index.php\/apps\/federatedgroups\/scim\/Groups",
"message":"Exception: {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\DriverException\",\"Message\":
\"An exception occurred while executing 'INSERT INTO `oc_group_user` (`uid`, `gid`) VALUES(?, ?)' with params 
[\\\"afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl#tst-aperture.data.surfsara.nl\\\",
 \\\"testgroup (uniharderwijk_democollab) (SRAM CO)\\\"
]:\\n\\n
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'uid' at row 1\",
\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(182): Doctrine\\\\DBAL\\\\Driver\\\\AbstractMySQLDriver->convertException()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(159): Doctrine\\\\DBAL\\\\DBALException::wrapException()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(2226): Doctrine\\\\DBAL\\\\DBALException::driverExceptionDuringQuery()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1538): Doctrine\\\\DBAL\\\\Connection->handleExceptionDuringQuery()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#7 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#8 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(110): OC\\\\Group\\\\Database->addToGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(139): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#14 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#15 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#16 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#17 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/AbstractMySQLDriver.php\",\"Line\":128}"}
{"reqId":"ZIBKDCqPefr1tpATLKSmEwAAAAI","level":3,"time":"07\/Jun\/2023:11:12:45","remoteAddr":"10.234.0.3","user":"--","app":"index","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":
"Caused by: {\"Exception\":\"Doctrine\\\\DBAL\\\\Driver\\\\PDO\\\\Exception\",\"Message\":\"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'uid' at row 1\",\"Code\":\"22001\",\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php(119): Doctrine\\\\DBAL\\\\Driver\\\\PDO\\\\Exception::new()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1527): Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement->execute()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(110): OC\\\\Group\\\\Database->addToGroup()\\n#7 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(139): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#14 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#15 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDO\\\/Exception.php\",\"Line\":18}"}
{"reqId":"ZIBKDCqPefr1tpATLKSmEwAAAAI","level":3,"time":"07\/Jun\/2023:11:12:45","remoteAddr":"10.234.0.3","user":"--","app":"index","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":"Caused by: {\"Exception\":\"PDOException\",\"Message\":\"SQLSTATE[22001]: 
String data, right truncated: 1406 Data too long for column 'uid' at row 1\",\"Code\":\"22001\",
\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php(117): PDOStatement->execute()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1527): Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement->execute()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(110): OC\\\\Group\\\\Database->addToGroup()\\n#7 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(139): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#14 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#15 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php\",\"Line\":117}"}

Looking at the logs it is apparent that it's doing an insert into oc_group_user instead of oc_fg_groups so it seems to be using the regular group backend instead of the FederatedGroups backend.

Let's try to reproduce this issue in dev-stock, so we can write a test about it!

Which tests do we have so far to check whether long group names are supported by our SCIM controller?

navid-shokri commented 1 year ago

the title is just a customer's interpretation, but the real thing is more complicated. there is more detail in these two issues:

180 #178

soltanireza65 commented 1 year ago

the groupManager is aware of all backends groupManager->getBackends() ===> [ "OC\Group\Database", "OCA\CustomGroups\CustomGroupsBackend", "OCA\FederatedGroups\GroupBackend" ]

but the group itself just returns OC\\Group\\Database as backend (when created directly with new GroupBackned)

navid-shokri commented 1 year ago

could you find out why the selected backend is the Database? according to this line: https://github.com/pondersource/core/blob/01275f7c38d6c0a8b7ba54daa3b1d2b0174eaaec/lib/private/Group/Manager.php#L196

michielbdejong commented 1 year ago

This is where it selects the first available one if you create the group through the Group Manager: https://github.com/pondersource/core/blob/01275f7c38d6c0a8b7ba54daa3b1d2b0174eaaec/lib/private/Group/Group.php#L326

Apparently https://github.com/owncloud/customgroups does group creation differently, directly to its own backend? I'll try to find out.

T0mWz commented 1 year ago
{"reqId":"ZIHEhCqPefr1tpATLKSvBwAAAAI","level":1,"time":"08\/Jun\/2023:14:07:32","remoteAddr":"10.234.2.58","user":"--","app":"admin_audit","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":"Group Demo collaboration (uniharderwijk_democollab) (SRAM CO) created by IP 10.234.2.58","action":"group_created","group":"Demo collaboration (uniharderwijk_democollab) (SRAM CO)","CLI":false,"userAgent":"python-requests\/2.28.2","auditGroups":[],"auditUsers":[],"actor":"IP 10.234.2.58"}
{"reqId":"ZIHEhCqPefr1tpATLKSvBwAAAAI","level":3,"time":"08\/Jun\/2023:14:07:32","remoteAddr":"10.234.2.58","user":"--","app":"index","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":"Exception: {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\DriverException\",\"Message\":\"An exception occurred while executing 'INSERT INTO `oc_group_user` (`uid`, `gid`) VALUES(?, ?)' with params [\\\"afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl#tst-aperture.data.surfsara.nl\\\", \\\"Demo collaboration (uniharderwijk_democollab) (SRAM CO)\\\"]:\\n\\nSQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'uid' at row 1\",\"Code\":0,\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(182): Doctrine\\\\DBAL\\\\Driver\\\\AbstractMySQLDriver->convertException()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/DBALException.php(159): Doctrine\\\\DBAL\\\\DBALException::wrapException()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(2226): Doctrine\\\\DBAL\\\\DBALException::driverExceptionDuringQuery()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1538): Doctrine\\\\DBAL\\\\Connection->handleExceptionDuringQuery()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#6 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#7 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#8 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(107): OC\\\\Group\\\\Database->addToGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(136): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#14 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#15 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#16 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#17 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/AbstractMySQLDriver.php\",\"Line\":128}"}
{"reqId":"ZIHEhCqPefr1tpATLKSvBwAAAAI","level":3,"time":"08\/Jun\/2023:14:07:32","remoteAddr":"10.234.2.58","user":"--","app":"index","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":"Caused by: {\"Exception\":\"Doctrine\\\\DBAL\\\\Driver\\\\PDO\\\\Exception\",\"Message\":\"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'uid' at row 1\",\"Code\":\"22001\",\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php(119): Doctrine\\\\DBAL\\\\Driver\\\\PDO\\\\Exception::new()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1527): Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement->execute()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(107): OC\\\\Group\\\\Database->addToGroup()\\n#7 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(136): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#14 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#15 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDO\\\/Exception.php\",\"Line\":18}"}
{"reqId":"ZIHEhCqPefr1tpATLKSvBwAAAAI","level":3,"time":"08\/Jun\/2023:14:07:32","remoteAddr":"10.234.2.58","user":"--","app":"index","method":"POST","url":"\/index.php\/apps\/federatedgroups\/scim\/Groups","message":"Caused by: {\"Exception\":\"PDOException\",\"Message\":\"SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'uid' at row 1\",\"Code\":\"22001\",\"Trace\":\"#0 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php(117): PDOStatement->execute()\\n#1 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Connection.php(1527): Doctrine\\\\DBAL\\\\Driver\\\\PDOStatement->execute()\\n#2 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/Connection.php(238): Doctrine\\\\DBAL\\\\Connection->executeStatement()\\n#3 \\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Query\\\/QueryBuilder.php(216): OC\\\\DB\\\\Connection->executeStatement()\\n#4 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/DB\\\/QueryBuilder\\\/QueryBuilder.php(141): Doctrine\\\\DBAL\\\\Query\\\\QueryBuilder->execute()\\n#5 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Group\\\/Database.php(179): OC\\\\DB\\\\QueryBuilder\\\\QueryBuilder->execute()\\n#6 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(107): OC\\\\Group\\\\Database->addToGroup()\\n#7 \\\/var\\\/www\\\/owncloud\\\/apps\\\/federatedgroups\\\/lib\\\/Controller\\\/ScimController.php(136): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->handleUpdateGroup()\\n#8 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(169): OCA\\\\FederatedGroups\\\\Controller\\\\ScimController->createGroup()\\n#9 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Http\\\/Dispatcher.php(89): OC\\\\AppFramework\\\\Http\\\\Dispatcher->executeController()\\n#10 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/App.php(99): OC\\\\AppFramework\\\\Http\\\\Dispatcher->dispatch()\\n#11 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/AppFramework\\\/Routing\\\/RouteActionHandler.php(47): OC\\\\AppFramework\\\\App::main()\\n#12 \\\/var\\\/www\\\/owncloud\\\/lib\\\/private\\\/Route\\\/Router.php(344): OC\\\\AppFramework\\\\Routing\\\\RouteActionHandler->__invoke()\\n#13 \\\/var\\\/www\\\/owncloud\\\/lib\\\/base.php(916): OC\\\\Route\\\\Router->match()\\n#14 \\\/var\\\/www\\\/owncloud\\\/index.php(54): OC::handleRequest()\\n#15 {main}\",\"File\":\"\\\/var\\\/www\\\/owncloud\\\/lib\\\/composer\\\/doctrine\\\/dbal\\\/lib\\\/Doctrine\\\/DBAL\\\/Driver\\\/PDOStatement.php\",\"Line\":117}"}
soltanireza65 commented 1 year ago

now, when creating a group with the given body:

{
  "members": [
    {
      "value": "zoete001@surf.nl"
    },
    {
      "value": "afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl@tst-aperture.data.surfsara.nl"
    },
    {
      "value": "13d408f8-5a42-4632-a9d7-987658e673f0@surfguest.nl@tst-aperture.data.surfsara.nl"
    }
  ],
  "id": "testgroup (uniharderwijk_democollab) (SRAM CO)"
}

this is the expected and actual result from the getGroup Endpoint:

{
  "status": "success",
  "message": null,
  "data": {
    "id": "testgroup (uniharderwijk_democollab) (SRAM CO)",
    "displayName": "testgroup (uniharderwijk_democollab) (SRAM CO)",
    "members": [
      {
        "value": "13d408f8-5a42-4632-a9d7-987658e673f0@surfguest.nl#tst-aperture.data.surfsara.nl",
        "ref": "",
        "displayName": ""
      },
      {
        "value": "afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl#tst-aperture.data.surfsara.nl",
        "ref": "",
        "displayName": ""
      },
      {
        "value": "zoete001#surf.nl",
        "ref": "",
        "displayName": ""
      }
    ]
  }
}

and this is the DB after the request has been sent

Screen Shot 2023-06-08 at 5 48 52 PM
michielbdejong commented 1 year ago

So was this issue fixed now? I can't reproduce it with the latest version of the code. Was this issue reproduced and then fixed, or was it simply never reproduced in dev-stock?

michielbdejong commented 1 year ago

We can no longer reproduce this using the original instructions because that server now has a scim_token. But we can test this in dev-stock, as follows:

docker exec -it oc1.docker bash
curl -X POST \
   'https://oc1.docker/index.php/apps/federatedgroups/scim/Groups' \
    --header 'Content-Type: application/json' \
    --header 'x-auth: Bearer something-super-secret' \
    --data-raw '{"displayName": "testgroup (uniharderwijk_democollab) (SRAM CO)", "externalId": "60422df5-8ac4-435b-b55f-13b64d9284ce@sram.surf.nl", "members": [{"display": "", "value": "zoete001@surf.nl"}, {"display": "", "value": "afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl@tst-aperture.data.surfsara.nl"}, {"display": "", "value": "13d408f8-5a42-4632-a9d7-987658e673f0@surfguest.nl@tst-aperture.data.surfsara.nl"}], "urn:mace:surf.nl:sram:scim:extension:Group": {"description": "Provisioned by service Test Service - ", "labels": [], "urn": "uniharderwijk:democollab:testservice-testgroup"}, "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group", "urn:mace:surf.nl:sram:scim:extension:Group"], "id": "testgroup (uniharderwijk_democollab) (SRAM CO)", "meta": {"created": "2023-05-09T09:28:12.273637", "lastModified": "2023-05-09T09:28:12.289948", "location": "/Groups/0133592b-834b-4109-aa2b-b0825d405dc8", "resourceType": "Group"}}' -i

With 04d6106 the output is this:

{"status":"success","message":null,"data":{"id":"testgroup (uniharderwijk_democollab) (SRAM CO)","members":[{"display":"","value":"zoete001@surf.nl"},{"display":"","value":"afad2da3-2815-466d-8fd0-74b1573e0687@eduid.nl@tst-aperture.data.surfsara.nl"},{"display":"","value":"13d408f8-5a42-4632-a9d7-987658e673f0@surfguest.nl@tst-aperture.data.surfsara.nl"}]}}

With 545e56e3 the output is:

HTTP/1.1 500 Internal Server Error
Date: Fri, 09 Jun 2023 12:15:08 GMT
Server: Apache/2.4.41 (Ubuntu)
Set-Cookie: oc5tdvmqotn4=ft0trosd6jndrqkavgv659fbmh; path=/; secure; HttpOnly; SameSite=Strict
Expires: Thu, 19 Nov 1981 08:52:00 GMT
[...]

So we can safely say that this bug was fixed at some point between 545e56e3 and 04d6106