4.2 Registration
Registration is required before any other service request. The following describes a typical registration scenario involving a client and a server.
The client sends a non-registration service request to the server.
The server returns a service Fault response message with a fault code of 304.
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultCode>304</faultCode> <faultString>GMS Registration Required. </faultString> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
The client receives the service Fault response and sends a Registration request.
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"> <SOAP-ENV:Body> <Registration> <Version xsi:type="xsd:int">1</Version> <Payload data="PD94bWwgdmVyc2lvbj0nMS4wJz8+PD9ncm9vdmUubmV0IHZlcnNpb249JzEuMCc/PjxnOmZyYWdtZW50IHhtbG5zOmc9InVybjpncm9vdmUubmV0Ij48UGF5bG9hZCBNYW5hZ2VtZW50U2VydmVyPSJU ZXN0c2VydmVyL2dtcy5kbGwiIE1ldGhvZD0iUmVnaXN0cmF0aW9uIj48ZzpTRSBFbmNyeXB0ZWRL ZXk9Ik5Ndi9xeUhHZkR0d3g2NnU1K2R6K1NKRjRtSEQyRzN3MFZnd1U2SGNYVGxZNFp2eGJWOXUz N21VVm1rcTJrdDlyek9UZWhqeHNkcUluYm11aFdWWUlLVWhTdm5JT3FSTGdNaERtUmw1ZUJFM3lG UXpuK0U0cFVEK0xUUE9mMUQxUEM5RFkwRGlTT0l5ci9tajBvQVNvKzBnOW94b2Z5ZGYxUndiMkFv RitqcFhlRlV3ZXNKZkt6azcvdnlQR01GNTRsUC9ZS0o3cytrOWtvVzhlcHdzL3N6ZEFTb042SGVy dDlQSzBKTGFPc0xZNERPZXRFVHRIc1drNy9hSHBxVGhQelZTa3pvYlNsMjBXbFI1NW8xczVJK3Fz VnlibHBSSEhVR1hqd0x6ZGhUYXBvY0N1UG1RNUJxWWNxYWY3bndnaVVjUEZrczNmNmVBOXQwQkNS WjJLZz09Ij48ZzpDZXJ0IEVQS0FsZ289IlJTQSIgRVB1YktleT0iTUlJQkNBS0NBUUVBbExaOFk2 V2U1aFFRWTA5VThnOXRJZVRFRkxnKzBWVXNzSkVVSThDTThEcldaRVNaSW1NK0pUcG9DNGZtelJ4 anRFbWUxTkkvWWl2U3FmWW5Nc3pRanNyUk41dW42OE15eHYvbGlQYitLSVpBNU4vaUF6K0dZVWpq U0c4bVgzUmZsTDVEbnYwSlNNeHRwMTlPL09BYi9NT0FPb3U4Z2R1dTNPUVlMNGJkTDBVMG1RVExL ak00cGhxcXZWbWZEVVZHeXY1QUpxdGVzQlVnSEtIY1hlU0V3cXpvUE1pUTVuK0czSW5QZ1F2dDJZ cDJkeVh0cHl3Z3MyVDNZR1hEeEh6UjhyTW9vS3VkMnlWcnM4b3ZoK2FLbE5zSCs5bk5DZld6QWRl M05lVndBa0RBTHlIU0pYbktObm5WM0gzV3M1bEFFd3RvUmdSbVBNTENjYjNMOXBYTTRRSUJFUT09 IiBFbmNBbGdvPSJSU0EiIFNQS0FsZ289IlJTQSIgU1B1YktleT0iTUlJQkNBS0NBUUVBdmt3ay80 YktES2lhU25EWnp2OHdhbXhxL1pOM3JHeVpBVVZ0Z2NwV0F0bjJPazNZd2wyT2psVlVBQlJSNFA1 WDFNbThiMUxWYUF4TW9IQndSL0g4YVFrSURmRmRtUUxhZEVKMnRtenR2RWdWV3R4NUNNT011eGdY aTFJR2JhSnQ5YXM1QXlnTTBkSWUyelZGUFpBeWgzWW1QNnZ2L09tUCtaekFqWThIaHY4VEJ2eDFx S0I1RktKT2RzYTBDNTZjeldvS1c2TWFiYldEcTJ0Z21OWlFqVmtLb1RjTndKYmE3UlpIOVlZdmpv VC9HU1JoL2VOLzNtSnBRSWpFWjlIaFRoOGdpUnBUYlZZMXdKZ1ZPVU1ZR2dzVndKZ1Q3SlAraWZD NTZ6NkRkVXlDYkQ1R1NiaHdBNHFNL3RHbGdkZjgybkZLL3BrNkl6RG9McE9idW5VVUN3SUJFUT09 IiBTaWdBbGdvPSJSU0EiLz48ZzpFbmMgRUM9IkdwQ3N5bllwUVFtTWtaQnNuQjliR2l6RlVXMlVp UmJkMGNhOTFiSG9xbEJPQ0EyY0RSakZFMHkxMEgxSWo3WjJSeUxYZFJLb3JZTEF6RXc9IiBJVj0i bkdmVnlBTmhRdjZpak5EZFZoZlFnVHB4L05BPSIvPjxnOkF1dGggU2lnPSJ0elYyNHFaYTJaSkd6 MmFaN2tnSmdkdjhYRkdNVUszdEY3Y3Y2Q1Z1TDNqNnoyeWVkZkErYTVGTTVpNDU3a1FXTS9wSmtZ M212VU82V0VOR05pbDc0Z0s3VThqRU44RUdvUHpvTDE2dEZSNDJhVTd5RmdYYTBnTWN3ZEgzZ25i K0NHTk9aemNSSU9sU1ZRYUxLRUdZV29NVG0xZ0lhYTdQT0JSbzlWWk8ySHhoM2dtV3g3dUhmbkZ1 Vmtrc2VaVHhqWUw2citOYzV6TDNUamtCL3JOKy9aejRBSjZNd09XQWcweVpMZysyN3hQdGQ3SlY5 M1NhN2d0akhzRjgvSjFrSkU5Z29aM3UvUE01ZlAxVS9KWmlmNGg3MHErMG81L1FRZlU1d2JPcUtO bU9YNVJINk5nRXFoa3RzdUZMYmRGUVRCVlZ6UVZGdHRZTkZEaHRrWmw4QlE9PSIvPjwvZzpTRT48 L1BheWxvYWQ+PC9nOmZyYWdtZW50Pg==" xsi:type="binary"/> </Registration> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
The /Envelope/Body/Registration/Payload/@data, encoded with 64base encoding, contains:
<?xml version='1.0'?><?groove.net version='1.0'?> <g:fragment xmlns:g="urn:groove.net"> <Payload ManagementServer="Testserver/gms.dll" Method="Registration"> <g:SE EncryptedKey="NMv/qyHGfDtwx66u5+dz+SJF4mHD2G3w0VgwU6HcXTlY4ZvxbV9u37mUVmkq2kt9rzOTehjxsdqInbmuhWVYIKUhSvnIOqRLgMhDmRl5eBE3yFQzn+E4pUD+LTPOf1D1PC9DY0DiSOIyr/mj0oASo+0g9oxofydf1Rwb2AoF+jpXeFUwesJfKzk7/vyPGMF54lP/YKJ7s+k9koW8epws/szdASoN6Hert9PK0JLaOsLY4DOetETtHsWk7/aHpqThPzVSkzobSl20WlR55o1s5I+qsVyblpRHHUGXjwLzdhTapocCuPmQ5BqYcqaf7nwgiUcPFks3f6eA9t0BCRZ2Kg=="> <g:Cert EPKAlgo="RSA" EPubKey="MIIBCAKCAQEAlLZ8Y6We5hQQY09U8g9tIeTEFLg+0VUssJEUI8CM8DrWZESZImM+JTpoC4fmzRxjtEme1NI/YivSqfYnMszQjsrRN5un68Myxv/liPb+KIZA5N/iAz+GYUjjSG8mX3RflL5Dnv0JSMxtp19O/OAb/MOAOou8gduu3OQYL4bdL0U0mQTLKjM4phqqvVmfDUVGyv5AJqtesBUgHKHcXeSEwqzoPMiQ5n+G3InPgQvt2Yp2dyXtpywgs2T3YGXDxHzR8rMooKud2yVrs8ovh+aKlNsH+9nNCfWzAde3NeVwAkDALyHSJXnKNnnV3H3Ws5lAEwtoRgRmPMLCcb3L9pXM4QIBEQ==" EncAlgo="RSA" SPKAlgo="RSA" SPubKey="MIIBCAKCAQEAvkwk/4bKDKiaSnDZzv8wamxq/ZN3rGyZAUVtgcpWAtn2Ok3Ywl2OjlVUABRR4P5X1Mm8b1LVaAxMoHBwR/H8aQkIDfFdmQLadEJ2tmztvEgVWtx5CMOMuxgXi1IGbaJt9as5AygM0dIe2zVFPZAyh3YmP6vv/OmP+ZzAjY8Hhv8TBvx1qKB5FKJOdsa0C56czWoKW6MabbWDq2tgmNZQjVkKoTcNwJba7RZH9YYvjoT/GSRh/eN/3mJpQIjEZ9HhTh8giRpTbVY1wJgVOUMYGgsVwJgT7JP+ifC56z6DdUyCbD5GSbhwA4qM/tGlgdf82nFK/pk6IzDoLpObunUUCwIBEQ==" SigAlgo="RSA"/> <g:Enc EC="GpCsynYpQQmMkZBsnB9bGizFUW2UiRbd0ca91bHoqlBOCA2cDRjFE0y10H1Ij7Z2RyLXdRKorYLAzEw=" IV="nGfVyANhQv6ijNDdVhfQgTpx/NA="/> <g:Auth Sig="tzV24qZa2ZJGz2aZ7kgJgdv8XFGMUK3tF7cv6CVuL3j6z2yedfA+a5FM5i457kQWM/pJkY3mvUO6WENGNil74gK7U8jEN8EGoPzoL16tFR42aU7yFgXa0gMcwdH3gnb+CGNOZzcRIOlSVQaLKEGYWoMTm1gIaa7POBRo9VZO2Hxh3gmWx7uHfnFuVkkseZTxjYL6r+Nc5zL3TjkB/rN+/Zz4AJ6MwOWAg0yZLg+27xPtd7JV93Sa7gtjHsF8/J1kJE9goZ3u/PM5fP1U/JZif4h70q+0o5/QQfU5wbOqKNmOX5RH6NgEqhktsuFLbdFQTBVVzQVFttYNFDhtkZl8BQ=="/> </g:SE> </Payload> </g:fragment>
The encrypted /fragment/Payload/SE/Enc/@EC contains:
<?xml version='1.0'?><?groove.net version='1.0'?> <Payload/>
The server receives the Registration request. If the request is successful, the server returns a successful registration response.
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"> <SOAP-ENV:Body> <Registration> <Payload data="PD94bWwgdmVyc2lvbj0nMS4wJz8+PD9ncm9vdmUubmV0IHZlcnNpb249JzEuMCc/PjxnOmZyYWdtZW50IHhtbG5zOmc9InVybjpncm9vdmUubmV0Ij48UGF5bG9hZCBNYW5hZ2VtZW50U2VydmVyPSJUZXN0c2VydmVyL2dtcy5kbGwiIE1ldGhvZD0iUmVnaXN0cmF0aW9uIj48ZzpTRT48ZzpFbmMgRUM9IkNuRjhvd0oyTC8waGRZZStIM01NRjE3NURvcTZBN1YrakI0c2FseXVwYWxvUlZhNS8rYnUzODdiazNDUXl6NWcxZlMyR0Q2MW91akpiTWpwT3VHdzQxWnRIL3RmMEJ0clFIR0oxNUNBWTlVakl4VmdCZjJubWkzeGcwd3FqWkZUUXhkcWdiMzFaUUtzQitTcXJCeUN1MHNvanllaGVkazJ5SDE0c3MzSWR0UVc0R0ROQUdyellrN0FjOUU0ZENvSjU3aXJmUlppY0E9PSIgSVY9InRXY1NCWjJUaE41c0FrMkhzMlhLb3Z1cHNBQT0iLz48ZzpBdXRoIE1BQz0iSWpFL1I4SXRZZ2V0bjc1ZWNVekorZ0hjWXhvPSIvPjwvZzpTRT48L1BheWxvYWQ+PC9nOmZyYWdtZW50Pg==" xsi:type="binary"/> </Registration> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
The /Envelope/Body/Registration/Payload/@data, encoded with base64 encoding, contains:
<?xml version='1.0'?><?groove.net version='1.0'?> <g:fragment xmlns:g="urn:groove.net"> <Payload ManagementServer="Testserver/gms.dll" Method="Registration"> <g:SE> <g:Enc EC="CnF8owJ2L/0hdYe+H3MMF175Doq6A7V+jB4salyupaloRVa5/+bu387bk3CQyz5g1fS2GD61oujJbMjpOuGw41ZtH/tf0BtrQHGJ15CAY9UjIxVgBf2nmi3xg0wqjZFTQxdqgb31ZQKsB+SqrByCu0sojyehedk2yH14ss3IdtQW4GDNAGrzYk7Ac9E4dCoJ57irfRZicA==" IV="tWcSBZ2ThN5sAk2Hs2XKovupsAA="/> <g:Auth MAC="IjE/R8ItYgetn75ecUzJ+gHcYxo="/> </g:SE> </Payload> </g:fragment>
The encrypted /fragment/Payload/SE/Enc/@EC contains:
<?xml version='1.0'?><?groove.net version='1.0'?> <Registration epoch="3"> <Registration ErrorMessage="Success Registration." Status="0"/> </Registration>
The client receives the Registration response. If the registration is successful, it can send other service requests.