Android-SingleSignOn
Android-SingleSignOn copied to clipboard
SEARCH HTTP method is not supported
Issue
When trying to make a request using SEARCH method like desribed here, exception is thrown
https://docs.nextcloud.com/server/latest/developer_manual/client_apis/WebDAV/search.html
Example code:
val request = NextcloudRequest.Builder()
.setRequestBody(body)
.setMethod("SEARCH")
.setUrl(Uri.encode("/remote.php/dav/", "/"))
.build()
val response = nextcloudApi?.performNetworkRequestV2(request)
Exception:
com.nextcloud.android.sso.exceptions.NextcloudUnsupportedMethodException: The requested HTTP Method is not supported yet! Please contact the developers of the Android Single-On Library for Android
My two cents: I still see no reason why we should limit the HTTP verbs to a tiny subset. We had requests for PATCH and HEAD in the past, others will probably follow. Each time we have costs to add a requested verb to both, the SSO lib and the Files app. Can't we just allow each method? (Of course it is up to the user to ensure that there is no nonsense in the header).
Reason is simply time, as we have to add this manually: https://github.com/nextcloud/android/blob/55bdbc1f55d2586befb1c8455b172f26e0c7abf2/src/main/java/com/nextcloud/android/sso/InputStreamBinder.java#L247
And back then I wanted to avoid to add untested methods…
avoid to add untested methods…
This argument is like having a whitelist for URLs - in my opinion it is up to the responsibility of the 3rd party app developer to ensure that the method is valid and accepted by the endpoint.
In the worst case, the server will respond with 405 Method Not Allowed or even a 500. But that is nothing that breaks the Files app or the SSO lib, it just hits the user as if there was a typo in the URL and a 404 comes back.
Am i missing something here? 😕
True…Then my time argument still counts 🙈🙈🙈
That's what i am trying to say: If we would drop the whitelist and just allow developers to use each method they want, we could safe time to adjust the whitelist in the SSO list, in the Files app and handling the issues / requests 🙂
If a developer wants to use FOOBAR, well so what? they will get an error and then use POST or whatever is correct^^
I fear that is not possible, as they keyword "SEARCH" needs to be tranferred to our NCSearchMethod (just an example). This cannot be done automatically.
There are specific classes for every webdav type within our used http library. Of course 3rd party libraries could integrate those and then pass the entire class, but this then circumvents somehow the idea of this lib.
@pedja1 are you still interested in this feature? Looks like nothing is actually blocking here, so maybe you want to contribute this HTTP verb? Tobias already mentioned the side of the Nextcloud Files app, and I am sure we can help you to point out the relevant positions in the SSO lib.