Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Authentication from OpenMRS:

  1. Create your username and password on your OpenMRS installation. For demo installation see here .
  2. Send http request with parameters "username" and "password" to http://yourServer/security/authenticate. For demo http://46.101.51.199:8080/oweb/security/authenticate?username=YOURUSER&password=YOURPW.
  3. The response in case of successful authentication will return a Http OK (200) code with details object. Otherwise response would be Http UNAUTHORIZED (401) code with no data.
  4. The response object would be a json document with two objects mappable to "user" and "locationlocations" of org.opensrp.api.domain.User and org.opensrp.api.domainutil.Location LocationTree respectively. The user represents complete user details like name, birthdate identifiers and other attributes associated, while location locations represents the area areas or health facility facilities the worker is responsible for. This is mapped by OpenMRS person attribute location with mapped location uuidLocation or Locations with ;; (double semicolon) separated location uuids or names.
  5. An example response json is below
Code Block
languagejs
themeEclipse
linenumberstrue
{
  "locations": {
    "locationsHierarchy": {
      "map": {
        "cd4ed528-87cd-42ee-a175-5e7089521ebd": {
          "id": "cd4ed528-87cd-42ee-a175-5e7089521ebd",
          "label": "Pakistan",
          "node": {
            "locationId": "cd4ed528-87cd-42ee-a175-5e7089521ebd",
            "name": "Pakistan",
            "tags": ["Country"], "voided": false
          },
          "children": {
            "461f2be7-c95d-433c-b1d7-c68f272409d7": {
              "id": "461f2be7-c95d-433c-b1d7-c68f272409d7",
              "label": "Sindh",
              "node": {
                "locationId": "461f2be7-c95d-433c-b1d7-c68f272409d7",
                "name": "Sindh",
                "parentLocation": {
                  "locationId": "cd4ed528-87cd-42ee-a175-5e7089521ebd",
                  "name": "Pakistan", "voided": false
                },
                "tags": ["Province"], "voided": false
              },
              "children": {
                "a529e2fc-6f0d-4e60-a5df-789fe17cca48": {
                  "id": "a529e2fc-6f0d-4e60-a5df-789fe17cca48",
                  "label": "Karachi",
                  "node": {
                    "locationId": "a529e2fc-6f0d-4e60-a5df-789fe17cca48",
                    "name": "Karachi",
                    "parentLocation": {
                      "locationId": "461f2be7-c95d-433c-b1d7-c68f272409d7",
                      "name": "Sindh",
                      "voided": false
                    },
                    "tags": ["City"], "voided": false
                  },
                  "children": {
                    "60c21502-fec1-40f5-b77d-6df3f92771ce": {
                      "id": "60c21502-fec1-40f5-b77d-6df3f92771ce",
                      "label": "Baldia",
                      "node": {
                        "locationId": "60c21502-fec1-40f5-b77d-6df3f92771ce",
                        "name": "Baldia",
                        "parentLocation": {
                          "locationId": "a529e2fc-6f0d-4e60-a5df-789fe17cca48",
                          "name": "Karachi",
                          "voided": false
                        },
                        "tags": ["Town"],
                        "attributes": {"at1": "atttt1"}, "voided": false
                      },
                      "parent": "a529e2fc-6f0d-4e60-a5df-789fe17cca48"
                    }
                  },
                  "parent": "461f2be7-c95d-433c-b1d7-c68f272409d7"
                }
              },
              "parent": "cd4ed528-87cd-42ee-a175-5e7089521ebd"
            }
          }
        }
      },
      "parentChildren": {
        "cd4ed528-87cd-42ee-a175-5e7089521ebd": ["461f2be7-c95d-433c-b1d7-c68f272409d7"],
        "461f2be7-c95d-433c-b1d7-c68f272409d7": ["a529e2fc-6f0d-4e60-a5df-789fe17cca48"],
        "a529e2fc-6f0d-4e60-a5df-789fe17cca48": ["60c21502-fec1-40f5-b77d-6df3f92771ce"]
      }
    }
  },
  "user": {
    "username": "demotest",
    "roles": ["Provider", "Thrive Member"],
    "permissions": ["Add Patients", "Patient Dashboard - View Demographics Section" ],
    "baseEntityId": "6637559e-ebf9-480a-9731-c47e16e95716",
    "baseEntity": {
      "id": "6637559e-ebf9-480a-9731-c47e16e95716",
      "firstName": "Demo test User", "middleName": "", "lastName": "", "gender": "M",
      "attributes": {
        "Location": "cd4ed528-87cd-42ee-a175-5e7089521ebd"
      }, "voided": false
    }, "voided": false
  }
}

Note that the user is convertible to org.opensrp.api.domain.User and locations can be converted to org.opensrp.api.util.LocationTree via Gson.

If you donot want to get user or location details and just need to check whether credentials are valid or not, send http request with parameters "username" and "password" to http://yourServer/security/isauthenticate-authenticated user . For demo http://46.101.51.199:8080/oweb/security/is-authenticated?username=YOURUSER&password=YOURPWauthenticate-user .

The response would return with a Http OK code incase of valid credentials and otherwise a Http code UNAUTHORIZED would be returned.

...