{ "id": "168135", "key": "TIMOB-24785", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2017-06-06T20:27:56.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [ "engSchedule", "parity", "qe-6.1.0" ], "versions": [ { "id": "17608", "name": "Release 6.1.0", "archived": false, "released": true, "releaseDate": "2017-05-26" }, { "id": "19333", "description": "Patch release for important items that did not make it into 6.0.3", "name": "Release 6.0.4", "archived": false, "released": true, "releaseDate": "2017-04-27" }, { "id": "20791", "name": "Release 8.0.2", "archived": false, "released": true, "releaseDate": "2019-06-18" } ], "issuelinks": [], "assignee": null, "updated": "2019-07-09T15:49:56.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [], "description": "*Description*\r\nWhen using HTTPClient Basic Digest, a 401 unauthorized is thrown.\r\n\r\n*Steps to reproduce*\r\n1. Create a Titanium Classic App.\r\n2. Replace the app.js code with the attached HttpClientAuthTest.js\r\n3. Build to Android device\r\n4. Press on \"BASIC DIGEST - GET HTTPS\" button\r\n\r\n*Result*\r\n401 errors are thrown:\r\n{code}\r\n[ERROR] : TiHTTPClient: (TiHttpClient-1) [0,4948] HTTP Error (java.io.IOException): 401 : UNAUTHORIZED\r\n[ERROR] : TiHTTPClient: java.io.IOException: 401 : UNAUTHORIZED\r\n[ERROR] : TiHTTPClient: \tat ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1268)\r\n[ERROR] : TiHTTPClient: \tat java.lang.Thread.run(Thread.java:818)\r\n{code}\r\n\r\n*Expected Result*\r\nShould get 200 success response, as it does with iOS devices.\r\n", "attachment": [ { "id": "62425", "filename": "HttpClientAuthTest.js", "author": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-07T00:26:15.000+0000", "size": 1803, "mimeType": "application/x-javascript" } ], "flagged": false, "summary": "Android: HTTPClient - Digest authentication not supported", "creator": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "amukherjee", "key": "amukherjee", "displayName": "Abir Mukherjee", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Node Version: 6.10.3\r\nNPM Version: 3.10.10\r\nMac OS: 10.12.4\r\nAppc CLI: 6.2.2\r\nAppc CLI NPM: 4.2.9\r\nTitanium SDK version: 6.1.0.GA\r\nAppcelerator Studio, build: 4.9.0.201705302345-39\r\nAndroid 7.1\r\nXcode 8.3.2\r\n", "comment": { "comments": [ { "id": "421146", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "On iOS, HTTPClient supports the following authentication methods when the \"username\" and \"password\" properties are set:\r\n* Basic\r\n* Digest\r\n* NTLM\r\n\r\nThis can be seen in our iOS code here:\r\nhttps://github.com/appcelerator/APSHTTPClient/blob/768c68283bbbcaae9e7440e7a62e3ba9675b884a/APSHTTPClient/APSHTTPRequest.m#L321\r\n\r\nOn Android, we only support \"Basic\" authentication.\r\nWe should also support \"Digest\" for feature parity.\r\n\r\nNTLM is a Microsoft authentication method that would require a Windows IIS machine to test with. I think it's okay to skip NTLM support for now until a customer requests it.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-06-07T00:56:04.000+0000", "updated": "2017-06-07T00:56:04.000+0000" } ], "maxResults": 2, "total": 2, "startAt": 0 } } }