Skip to content
Snippets Groups Projects
Commit 9827bc32 authored by Felix Sidokhine's avatar Felix Sidokhine
Browse files

added example response to api-doc, fixed bug with revoked field not being returned

Change-Id: I408b48ff4a71d3790df6c5103bed054a7977c43b
parent 17bcefe2
No related branches found
No related tags found
No related merge requests found
Showing
with 452 additions and 45 deletions
......@@ -37,4 +37,5 @@ public class X509Entity {
//These can be null because they are only used if this is a request.
private X509Fields x509Fields;
private PKCS10CertificationRequest certificationRequest;
private Boolean revoked;
}
......@@ -66,7 +66,14 @@ define({ "api": [
"description": "<p>List of contacts for the user</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"uri\": \"jami://7e3ab29383\",\n \"displayName\": \"John Doe\"\n}]",
"type": "json"
}
]
},
"filename": "src/main/java/net/jami/jams/server/servlets/api/auth/contacts/ContactServlet.java",
"groupTitle": "Contacts"
......@@ -89,7 +96,14 @@ define({ "api": [
"description": "<p>JSON representation of the contact object</p>"
}
]
}
},
"examples": [
{
"title": "Request-Example:",
"content": "{\n \"uri\": \"jami://7e3ab29383\",\n \"displayName\": \"John Doe\"\n}",
"type": "json"
}
]
},
"success": {
"fields": {
......@@ -200,7 +214,14 @@ define({ "api": [
"description": "<p>device information</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"certificate\":\"pem_encoded_certificate\",\n \"displayName\":\"My Galaxy S8\",\n \"deviceId\":\"6aec6252ad\",\n \"revoked\":true\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -236,7 +257,14 @@ define({ "api": [
"description": "<p>device registration request</p>"
}
]
}
},
"examples": [
{
"title": "Request-Example:",
"content": "{\n \"csr\":\"pem_encoded_csr\",\n \"deviceName\":\"My Galaxy S8\"\n}",
"type": "json"
}
]
},
"success": {
"fields": {
......@@ -249,7 +277,14 @@ define({ "api": [
"description": "<p>registration response</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"certificateChain\":\"pem_encoded_certificate_chain\"\n \"displayName\":\"John Doe\"\n \"nameServer\":\"https://mydomain.com\"\n \"deviceReceipt\": \"device_receipt_object\"\n \"receiptSignature\":\"receipt_signature_object\"\n \"userPhoto\":\"base64_encoded_photo\"\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -327,7 +362,7 @@ define({ "api": [
"version": "1.0.0",
"type": "get",
"url": "/api/auth/devices",
"title": "List the devices of a user",
"title": "Get device info",
"name": "getDevices",
"group": "Devices",
"success": {
......@@ -337,11 +372,18 @@ define({ "api": [
"group": "200",
"type": "body",
"optional": false,
"field": "Device[]",
"description": "<p>array of devices owned by the user</p>"
"field": "Device",
"description": "<p>device information</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"certificate\":\"pem_encoded_certificate\",\n \"displayName\":\"My Galaxy S8\",\n \"deviceId\":\"6aec6252ad\",\n \"revoked\":true\n}]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -351,7 +393,7 @@ define({ "api": [
"type": "null",
"optional": false,
"field": "null",
"description": "<p>could not fetch devices</p>"
"description": "<p>Device could not be retrieved</p>"
}
]
}
......@@ -373,11 +415,18 @@ define({ "api": [
"group": "200",
"type": "body",
"optional": false,
"field": "AuthenticationSource[]",
"field": "AuthModuleKey[]",
"description": "<p>array of available authentication sources</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"realm\":\"savoirfairelinux\",\n \"type\":\"LDAP\"\n},\n{\n \"realm\":\"LOCAL\",\n \"type\":\"LOCAL\"\n},\n...\n{\n \"realm\":\"savoirfairelinux-ad\",\n \"type\":\"AD\"\n}]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -422,9 +471,13 @@ define({ "api": [
{
"group": "Parameter",
"type": "query",
"allowedValues": [
"vcard"
],
"optional": true,
"field": "format",
"description": "<p>vcard</p>"
"defaultValue": "json",
"description": "<p>output format</p>"
},
{
"group": "Parameter",
......@@ -454,7 +507,19 @@ define({ "api": [
"description": "<p>vcard-representation of the user profile</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"username\":\"jdoe\",\n \"firstName\":\"John\",\n \"lastName\":\"Doe\",\n \"phoneNumber\":\"+1-514-000-0000\",\n \"phoneNumberExtension\":\"363\",\n \"mobileNumber\":\"+1-514-000-0000\",\n \"faxNumber\":\"+1-514-000-0000\",\n \"profilePicture\":\"base64_encoded_picture\",\n \"email\":\"jdoe@savoirfairelinux.com\",\n \"organization\":\"SFL\"\n}",
"type": "json"
},
{
"title": "Success-Response:",
"content": "BEGIN:VCARD\nVERSION:3.0\nPRODID:ez-vcard 0.10.6\nN:B%C3%A9raud;Adrien\nTEL;TYPE=work:176\nEMAIL;TYPE=work:adrien.beraud@savoirfairelinux.com\nORG:Savoir-faire Linux\nPHOTO;ENCODING=b;TYPE=jpeg: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\nEND:VCARD",
"type": "vCard"
}
]
},
"error": {
"fields": {
......@@ -503,7 +568,14 @@ define({ "api": [
"description": "<p>json-representation of the user profiles</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"username\":\"jdoe\",\n \"firstName\":\"John\",\n \"lastName\":\"Doe\",\n \"phoneNumber\":\"+1-514-000-0000\",\n \"phoneNumberExtension\":\"363\",\n \"mobileNumber\":\"+1-514-000-0000\",\n \"faxNumber\":\"+1-514-000-0000\",\n \"profilePicture\":\"base64_encoded_picture\",\n \"email\":\"jdoe@savoirfairelinux.com\",\n \"organization\":\"SFL\"\n }]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -566,7 +638,14 @@ define({ "api": [
"description": "<p>the 0Auth authentication token</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"token_type\":\"Bearer\",\n \"access_token\":\"JWT representation of the token\",\n \"expires_in\":180000,\n \"scope\":\"USER\"\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -602,7 +681,14 @@ define({ "api": [
"description": "<p>json user object representation</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"username\":\"jdoe\",\n \"password\":null,\n \"userType\":\"AD\",\n \"realm\":\"savoirfairelinux\",\n \"accessLevel\":\"USER\",\n \"needsPasswordReset\":false,\n \"ethAddress\":\"8272773ac\",\n \"ethKey\":\"192938ae72772ab\",\n \"jamiId\":\"6e3552723df\",\n \"certificate\":\"pem_formatted_certificate\",\n \"privateKey\":\"pem_formatted_key\",\n \"revoked\":false\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......
......@@ -66,7 +66,14 @@
"description": "<p>List of contacts for the user</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"uri\": \"jami://7e3ab29383\",\n \"displayName\": \"John Doe\"\n}]",
"type": "json"
}
]
},
"filename": "src/main/java/net/jami/jams/server/servlets/api/auth/contacts/ContactServlet.java",
"groupTitle": "Contacts"
......@@ -89,7 +96,14 @@
"description": "<p>JSON representation of the contact object</p>"
}
]
}
},
"examples": [
{
"title": "Request-Example:",
"content": "{\n \"uri\": \"jami://7e3ab29383\",\n \"displayName\": \"John Doe\"\n}",
"type": "json"
}
]
},
"success": {
"fields": {
......@@ -200,7 +214,14 @@
"description": "<p>device information</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"certificate\":\"pem_encoded_certificate\",\n \"displayName\":\"My Galaxy S8\",\n \"deviceId\":\"6aec6252ad\",\n \"revoked\":true\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -236,7 +257,14 @@
"description": "<p>device registration request</p>"
}
]
}
},
"examples": [
{
"title": "Request-Example:",
"content": "{\n \"csr\":\"pem_encoded_csr\",\n \"deviceName\":\"My Galaxy S8\"\n}",
"type": "json"
}
]
},
"success": {
"fields": {
......@@ -249,7 +277,14 @@
"description": "<p>registration response</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"certificateChain\":\"pem_encoded_certificate_chain\"\n \"displayName\":\"John Doe\"\n \"nameServer\":\"https://mydomain.com\"\n \"deviceReceipt\": \"device_receipt_object\"\n \"receiptSignature\":\"receipt_signature_object\"\n \"userPhoto\":\"base64_encoded_photo\"\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -327,7 +362,7 @@
"version": "1.0.0",
"type": "get",
"url": "/api/auth/devices",
"title": "List the devices of a user",
"title": "Get device info",
"name": "getDevices",
"group": "Devices",
"success": {
......@@ -337,11 +372,18 @@
"group": "200",
"type": "body",
"optional": false,
"field": "Device[]",
"description": "<p>array of devices owned by the user</p>"
"field": "Device",
"description": "<p>device information</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"certificate\":\"pem_encoded_certificate\",\n \"displayName\":\"My Galaxy S8\",\n \"deviceId\":\"6aec6252ad\",\n \"revoked\":true\n}]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -351,7 +393,7 @@
"type": "null",
"optional": false,
"field": "null",
"description": "<p>could not fetch devices</p>"
"description": "<p>Device could not be retrieved</p>"
}
]
}
......@@ -373,11 +415,18 @@
"group": "200",
"type": "body",
"optional": false,
"field": "AuthenticationSource[]",
"field": "AuthModuleKey[]",
"description": "<p>array of available authentication sources</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"realm\":\"savoirfairelinux\",\n \"type\":\"LDAP\"\n},\n{\n \"realm\":\"LOCAL\",\n \"type\":\"LOCAL\"\n},\n...\n{\n \"realm\":\"savoirfairelinux-ad\",\n \"type\":\"AD\"\n}]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -422,9 +471,13 @@
{
"group": "Parameter",
"type": "query",
"allowedValues": [
"vcard"
],
"optional": true,
"field": "format",
"description": "<p>vcard</p>"
"defaultValue": "json",
"description": "<p>output format</p>"
},
{
"group": "Parameter",
......@@ -454,7 +507,19 @@
"description": "<p>vcard-representation of the user profile</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"username\":\"jdoe\",\n \"firstName\":\"John\",\n \"lastName\":\"Doe\",\n \"phoneNumber\":\"+1-514-000-0000\",\n \"phoneNumberExtension\":\"363\",\n \"mobileNumber\":\"+1-514-000-0000\",\n \"faxNumber\":\"+1-514-000-0000\",\n \"profilePicture\":\"base64_encoded_picture\",\n \"email\":\"jdoe@savoirfairelinux.com\",\n \"organization\":\"SFL\"\n}",
"type": "json"
},
{
"title": "Success-Response:",
"content": "BEGIN:VCARD\nVERSION:3.0\nPRODID:ez-vcard 0.10.6\nN:B%C3%A9raud;Adrien\nTEL;TYPE=work:176\nEMAIL;TYPE=work:adrien.beraud@savoirfairelinux.com\nORG:Savoir-faire Linux\nPHOTO;ENCODING=b;TYPE=jpeg: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\nEND:VCARD",
"type": "vCard"
}
]
},
"error": {
"fields": {
......@@ -503,7 +568,14 @@
"description": "<p>json-representation of the user profiles</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "[{\n \"username\":\"jdoe\",\n \"firstName\":\"John\",\n \"lastName\":\"Doe\",\n \"phoneNumber\":\"+1-514-000-0000\",\n \"phoneNumberExtension\":\"363\",\n \"mobileNumber\":\"+1-514-000-0000\",\n \"faxNumber\":\"+1-514-000-0000\",\n \"profilePicture\":\"base64_encoded_picture\",\n \"email\":\"jdoe@savoirfairelinux.com\",\n \"organization\":\"SFL\"\n }]",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -566,7 +638,14 @@
"description": "<p>the 0Auth authentication token</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"token_type\":\"Bearer\",\n \"access_token\":\"JWT representation of the token\",\n \"expires_in\":180000,\n \"scope\":\"USER\"\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......@@ -602,7 +681,14 @@
"description": "<p>json user object representation</p>"
}
]
}
},
"examples": [
{
"title": "Success-Response:",
"content": "{\n \"username\":\"jdoe\",\n \"password\":null,\n \"userType\":\"AD\",\n \"realm\":\"savoirfairelinux\",\n \"accessLevel\":\"USER\",\n \"needsPasswordReset\":false,\n \"ethAddress\":\"8272773ac\",\n \"ethKey\":\"192938ae72772ab\",\n \"jamiId\":\"6e3552723df\",\n \"certificate\":\"pem_formatted_certificate\",\n \"privateKey\":\"pem_formatted_key\",\n \"revoked\":false\n}",
"type": "json"
}
]
},
"error": {
"fields": {
......
......@@ -7,7 +7,7 @@ define({
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2020-06-05T16:15:02.609Z",
"time": "2020-06-06T10:01:09.148Z",
"url": "http://apidocjs.com",
"version": "0.23.0"
}
......
......@@ -7,7 +7,7 @@
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
"time": "2020-06-05T16:15:02.609Z",
"time": "2020-06-06T10:01:09.148Z",
"url": "http://apidocjs.com",
"version": "0.23.0"
}
......
......@@ -51,6 +51,14 @@ public class LoginServlet extends HttpServlet {
* @apiParam {body} [LoginRequest] username/password sent to server as JSON object
*
* @apiSuccess (200) {body} AuthTokenResponse the 0Auth authentication token
* @apiSuccessExample {json} Success-Response:
* {
* "token_type":"Bearer",
* "access_token":"JWT representation of the token",
* "expires_in":180000,
* "scope":"USER"
* }
*
* @apiError (403) {null} null The user is unauthorized
*/
@Override
......
......@@ -47,7 +47,12 @@ public class ContactServlet extends HttpServlet {
* @apiName getContact
* @apiGroup Contacts
*
* @apiSuccess (200) {body} Contact[] List of contacts for the user
* @apiSuccess (200) {body} Contact[] List of contacts for the user
* @apiSuccessExample {json} Success-Response:
* [{
* "uri": "jami://7e3ab29383",
* "displayName": "John Doe"
* }]
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
......@@ -64,6 +69,11 @@ public class ContactServlet extends HttpServlet {
* @apiGroup Contacts
*
* @apiParam {body} Contact JSON representation of the contact object
* @apiParamExample {json} Request-Example:
* {
* "uri": "jami://7e3ab29383",
* "displayName": "John Doe"
* }
*
* @apiSuccess (200) {null} null successfully added contact
* @apiError (500) {null} null contact could not be successfully added
......
......@@ -31,6 +31,7 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.jami.jams.common.dao.StatementElement;
import net.jami.jams.common.dao.StatementList;
import net.jami.jams.common.objects.devices.Device;
import net.jami.jams.common.objects.requests.DeviceRegistrationRequest;
import net.jami.jams.common.objects.responses.DeviceRegistrationResponse;
import net.jami.jams.common.objects.responses.DeviceRevocationResponse;
......@@ -39,6 +40,7 @@ import net.jami.jams.server.core.workflows.RevokeDeviceFlow;
import java.io.IOException;
import static net.jami.jams.server.Server.certificateAuthority;
import static net.jami.jams.server.Server.dataStore;
@WebServlet("/api/auth/device/*")
......@@ -53,6 +55,13 @@ public class DeviceServlet extends HttpServlet {
* @apiParam {path} deviceId id of the device
*
* @apiSuccess (200) {body} Device device information
* @apiSuccessExample {json} Success-Response:
* {
* "certificate":"pem_encoded_certificate",
* "displayName":"My Galaxy S8",
* "deviceId":"6aec6252ad",
* "revoked":true
* }
* @apiError (500) {null} null Device could not be retrieved
*/
@Override
......@@ -64,7 +73,9 @@ public class DeviceServlet extends HttpServlet {
StatementElement st2 = new StatementElement("deviceId","=",deviceId,"");
statementList.addStatement(st1);
statementList.addStatement(st2);
resp.getOutputStream().write(JsonStream.serialize(dataStore.getDeviceDao().getObjects(statementList).get(0)).getBytes());
Device device = dataStore.getDeviceDao().getObjects(statementList).get(0);
device.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(device.getCertificate().getSerialNumber()) != null);
resp.getOutputStream().write(JsonStream.serialize(device).getBytes());
}
/**
......@@ -74,9 +85,23 @@ public class DeviceServlet extends HttpServlet {
* @apiGroup Device
*
* @apiParam {body} DeviceRegistrationRequest device registration request
* @apiParamExample {json} Request-Example:
* {
* "csr":"pem_encoded_csr",
* "deviceName":"My Galaxy S8"
* }
*
* @apiSuccess (200) {body} DeviceRegistrationResponse registration response
* @apiError (500) {null} null Device could not be enrolled
* @apiSuccessExample {json} Success-Response:
* {
* "certificateChain":"pem_encoded_certificate_chain"
* "displayName":"John Doe"
* "nameServer":"https://mydomain.com"
* "deviceReceipt": "device_receipt_object"
* "receiptSignature":"receipt_signature_object"
* "userPhoto":"base64_encoded_photo"
* }
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
......
......@@ -30,9 +30,12 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.jami.jams.common.dao.StatementElement;
import net.jami.jams.common.dao.StatementList;
import net.jami.jams.common.objects.devices.Device;
import java.io.IOException;
import java.util.List;
import static net.jami.jams.server.Server.certificateAuthority;
import static net.jami.jams.server.Server.dataStore;
@WebServlet("/api/auth/devices")
......@@ -40,20 +43,31 @@ public class DevicesServlet extends HttpServlet {
/**
* @apiVersion 1.0.0
* @api {get} /api/auth/devices List the devices of a user
* @api {get} /api/auth/devices Get device info
* @apiName getDevices
* @apiGroup Devices
*
*
* @apiSuccess (200) {body} Device[] array of devices owned by the user
* @apiError (500) {null} null could not fetch devices
* @apiSuccess (200) {body} Device device information
* @apiSuccessExample {json} Success-Response:
* [{
* "certificate":"pem_encoded_certificate",
* "displayName":"My Galaxy S8",
* "deviceId":"6aec6252ad",
* "revoked":true
* }]
* @apiError (500) {null} null Device could not be retrieved
*/
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getAttribute("username").toString();
StatementList statementList = new StatementList();
statementList.addStatement(new StatementElement("owner","=",username,""));
resp.getOutputStream().write(JsonStream.serialize(dataStore.getDeviceDao().getObjects(statementList)).getBytes());
List<Device> devices = dataStore.getDeviceDao().getObjects(statementList);
devices.forEach( device -> {
device.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(device.getCertificate().getSerialNumber()) != null);
});
resp.getOutputStream().write(JsonStream.serialize(devices).getBytes());
}
......
......@@ -43,7 +43,21 @@ public class DirectoriesServlet extends HttpServlet {
* @apiGroup Directories
*
*
* @apiSuccess (200) {body} AuthenticationSource[] array of available authentication sources
* @apiSuccess (200) {body} AuthModuleKey[] array of available authentication sources
* @apiSuccessExample {json} Success-Response:
* [{
* "realm":"savoirfairelinux",
* "type":"LDAP"
* },
* {
* "realm":"LOCAL",
* "type":"LOCAL"
* },
* ...
* {
* "realm":"savoirfairelinux-ad",
* "type":"AD"
* }]
* @apiError (500) {null} null could not return any authentication sources
*/
@Override
......
......@@ -52,11 +52,142 @@ public class DirectoryEntryServlet extends HttpServlet {
*
* @apiParam {query} [directory] name of the directory
* @apiParam {query} [directoryType] type of the directory
* @apiParam {query} [format] vcard
* @apiParam {query=vcard} [format=json] output format
* @apiParam {query} [username] username we are looking for
*
* @apiSuccess (200) {body} UserProfile json-representation of the user profile
* @apiSuccessExample {json} Success-Response:
* {
* "username":"jdoe",
* "firstName":"John",
* "lastName":"Doe",
* "phoneNumber":"+1-514-000-0000",
* "phoneNumberExtension":"363",
* "mobileNumber":"+1-514-000-0000",
* "faxNumber":"+1-514-000-0000",
* "profilePicture":"base64_encoded_picture",
* "email":"jdoe@savoirfairelinux.com",
* "organization":"SFL"
* }
*
* @apiSuccess (200) {body} vCard vcard-representation of the user profile
* @apiSuccessExample {vCard} Success-Response:
* BEGIN:VCARD
* VERSION:3.0
* PRODID:ez-vcard 0.10.6
* N:B%C3%A9raud;Adrien
* TEL;TYPE=work:176
* EMAIL;TYPE=work:adrien.beraud@savoirfairelinux.com
* ORG:Savoir-faire Linux
* PHOTO;ENCODING=b;TYPE=jpeg:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwME
* AwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2w
* BDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU
* FBQUFBQUFBQUFBT/wAARCACWAJYDAREAAhEBAxEB/8QAHgAAAQQCAwEAAAAAAAAAAAAAAAYHCA
* kEBQEDCgL/xABEEAABAwMBBAgDBAUKBwAAAAABAgMEAAURBgcSITEIEzhBUWF2tAkUIjJxgaEW
* IyRSkRUlM0JiZKSxwdEmN0OElLLx/8QAGwEAAgMBAQEAAAAAAAAAAAAAAAIBAwQFBgf/xAAnEQ
* ACAgEEAgIDAAMBAAAAAAAAAQIRAwQSITEyQQUTIlFhFCNxsf/aAAwDAQACEQMRAD8AqqoAKALi
* fg6dmXU3q+V7KFWXL5Dx6J2VSMFABQAUAc4oA53FeBoA+eVABigAoAKACgAoAKAPOx0pO01td9
* X3f3rtbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgAoAOdACI2ubVIWyvT6ZS
* 467jdpaurgW5kZW8rvJ8EjvNUZsqwwurZZCCyPsjbc+kpf1rcflrNvfSclCHsbvkPurzU9dkk7
* XB1Y6WNcHVaenc9Z7gzBvK4chs8n88T9/nWjF8lkfaK56Veh5NH9KKw31lDtwQYrTn9G8ynII8
* SPCtkPkccnU+DLLTyXQ71nvdv1DCTMtk1mdHUAd9lWceRHca6sJRmri7RlacXTMynICgAoAKAP
* Ox0pO01td9X3f3rtbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgAoA+kpBI3j
* hPefAUA+iAHSI2zi4bSL+5b30vhofJNSSd5DLSTx6rjzUcZPlXmtfq2m1H/h2NPhtKxmbouU5Z
* Vvyoz5akIO7JdBKc+eOP41walKZ2Y43VpEd16fvF0ffbUpTrbTu8jPHAzyz3iu2pQaTiv4UPFJ
* voWWndtFy0LcExb1CnSIycBL7CCUNp8MeVT/AIv3Qbi0mLJOHokr0delijRGo/2h8P2mcQHW1q
* wMHkoedNpsstKlGXRz8+JTVrssT07qKBqyzRrpbH0SIj6d5KkKz+FeijNTVo5LTTpmxpxQoAKA
* POx0pO01td9X3f3rtbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgAoAazpI65
* c0ds7djRHC1cLqr5VtxJx1aT9o/wAMj8ax6rL9OO/2X4Y75UQzg7NYt9ujE+O2idEiqCpjA+kO
* eJB8q8blcm+VZ6TTR5HCuun7bfkJYLPVQkABDQH5VfDGrO0sbSNXC2PafjOEtQUHfOcCrPrUX+
* ItL2ZmotklmkWdxhEBkhScHKRSylJKkx4KuCK+2LYBJ0laF3qzOLShlQ32cfZ48CKbDqW8lTXZ
* z9VhTtwJl/D72krm2+76LubyzNjstyogVyW2OCsefHNeg0c1LcjzGphtqRMKumYAoAKAPOx0pO
* 01td9X3f3rtbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgDlIJIA5mgCvrp5b
* aSNZi0sOBLNoHUpGf+oftKNef1Ev8jPsfUTq6eOyG59s1vRq1Im9aFdfDhdcW4QpXjXO1UVDJw
* eg0ytWPDa7GX1lTiwyyT9o0m6naOgp+hQtwLfFwVvBahyxwqx7/aFcWzFukaK83usPgK8M1le9
* vkeKa5Y3utLYp21zWJSQ426ypPEeVJNcNv0VS/PoYfo7bUI+z/a1p64vvIbYakmMtw8uqWdxQP
* 4GurhnLFkhL17OBqce+Mki1dLjbzaHWlhxpxIWhaTwIPEGvUHnTmgAoA87HSk7TW131fd/eu1u
* j4orfY2NMQFABQAUAXE/B07MupvV8r2UKsuXyHj0TsqkYKAOFvCM048QSGkKXgDJ4DNF1yT3wU
* la/eu22LaBeVKdWh6TLdUp5aSQlZUcDHfxrz2KLUt8ket0+nWojKEXVIcTYQxrvZfsNvj7UWNI
* uLFyDZanEhTbZOCseOOeKbVvBPOm+qKsEM+LHt7dhr3a9r+MiKIk+6hlxSWC400hCCvGcgEcuP
* Pyq7S4ceox7lwass5YuGd1n2ta5tk6BCdFx1e5MQ4pMSC1vSWtzG8pQAwU8edafrTtN0kXffLC
* lauxNX3pAa2udt/lG2Ll2+OlS8x1IBcwlRSc8OYIPCpjpYSbgVZNRkcFOK4foU1g23aoctBl3Z
* UibGYQgyIq28O7iuG8kY4nj3VyNRghOaxR7Y6yThi+xojDa9ZSWNS3W3vLKd2Utxre+lSTnOPv
* 8q35tPWKMor0cuGTfKSf7LrOidrtO0LYJpm4Kz81HbMR/PPfT3/nW/A7xo4meO3I0h3a0GcKAP
* Ox0pO01td9X3f3rtbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgDlKt05oAib
* te6JECwPXrVmlRutOOmbIgEcWj/WUjxHfisWbFUW4nb+M1TxaiO7p8DbbNLAiboSbbrglx8ylk
* yd48VZzgg/hXC1TTkpR/R6nPX3SXo1132RXeYpLab8tEFI3UtyY6VlI7hmmx5ZQVoWMK4sXWwj
* Zta9D3+6Xp2X8zLdiCGiQ6AkBIJJCB3DKqpz5cmRbaHjjt7pcjJ6m2YT7Zqq8i2qiyIz8xcpDL
* 6cBG+cqCVAcsk1ZptS1CpLkdxcW9vRs7Foq4urZbnRocRCFJUpTKytSgk5AGRwrNkk3F/vkz5O
* v4Rts2xG4bRrve7zEhLdnyrksRooT9bgLmPpHPlxrqY5S+rHCL9IwazbiSUlTf8A4W/7CdmjGy
* TZVY9Otg9e00HZKlcy6oDe/wAq7cIbIpHksk98mxe1YVhQB52OlJ2mtrvq+7+9drdHxRW+xsaY
* gKACgAoAuJ+Dp2ZdTer5XsoVZcvkPHonZVIwUAFAGn1m/coukbu7aGW5FwRHUWmnRkL4cRjxxm
* ll4uho9og3sh1Nqm53nVbGoLC9aIcVaBEedYLfXHJ3x4HHDlXn9TCOxbe2z1GHVvPPa/SFHqzV
* rdvjD5hzqWe9XeaxwVM7UJcWM7qdy8TZvz1rddZacTupa68DcHjjNaoRb4o1wcn0jL0NdhZEtQ
* rqp1Ut1RIkOub4JzyrPmhtdxEnKpVQ4Uye2zFkP4A6plbhx5JJrJJ2YsslFWLroENW682G7Xf+
* SerlNubjD6kf0aeR5jmfEV6D4/GoQ2/o8t8lqJajKn6RLUnNdc5JxQAUAedjpSdpra76vu/vXa
* 3R8UVvsbGmICgAoAKALifg6dmXU3q+V7KFWXL5Dx6J2VSMFABQByDunIoAbLbXpSMrSky8sKcb
* kxMK6pJG4oKICjjHPvrBq4Jw3fo3aKbjmS/ZFXUTMG9RI7E9r5phxfFKTxx41xHxJNHq4Zkqoa
* 3aRpmFZW2m7bZ3no6lA74fV9IrXhySfB3dP8goRpq2ddi0rZylm4OoeZmI+lALhIGfI1hyzkpS
* M+o1KyOkuB7dnezeZtWnTbNCmCCwI5MicpHWBtJ4Y3cjJNTpNK80qs83rdQscP6yY+jdJW/Q2m
* oFltrSUx4rQb3wgJU4QOKlY769TGOyKijyzbfLNxTkBQAUAedjpSdpra76vu/vXa3R8UVvsbGm
* ICgAoAKALifg6dmXU3q+V7KFWXL5Dx6J2VSMFABQAUAIbbDfGbdplNvUkKeuK+rTk8gkbxP5Vj
* 1jrA2dDQq8yILbSoN505dvnLY2qVBVkqjp+0g+Kf8AauJGpVZ3JQp8CBlba2wy43JdDTrQ+pqS
* ndKSPwrWlGHXZfiT9icibSZWorp8vbEiQpZH6xKfpFZZ7IXbJnKTfBLfo0a+a2Z6xs+nblhY1R
* loyVfaQ8lO8kfccAVq+JW55Y/yzkfIY/xU/wBEzVDBIPMcK7hwjigAoAKAPOx0pO01td9X3f3r
* tbo+KK32NjTEBQAUAFAFxPwdOzLqb1fK9lCrLl8h49E7KpGCgD7SjKc8kj+salRb6Ibo0EjUK5
* M8RIKCUpJDsgjgMdwrfDTxSuRW5voaTpLvPQrdpW8JJUiNci2+e4JW2sD88Vz9fh34qSOn8e/9
* rt+hoLiW7gzvkAjn415+Ea4Z6W00Iu96YtdxO9NtkWWr951lKjj8RWtRTSbRCbsxbTpu32peYc
* BiN4dU2E4/hXPy405cIuuuzCuinZW0/QTcVRDjFzQVEefCt/xMPr1G5+00YtVUsEv4Tvg6+cYk
* li5NpKRgB5vgccsmvRrTb43F8nkd1cCvYkNSWw404lxChkEVllCUXTGtPo+8UhIUAedjpSdpra
* 76vu/vXa3R8UVvsbGmICgAoAKALifg6dmXU3q+V7KFWXL5Dx6J3oQpZwkZNVJOTpDXRkiKGgCv
* BOM+VaoYkl+RXZrbg+pMOS+tQ3G0EjwHCtNJdCWaXRlvDts+ZeOC8SofjVk+xWJ/bBpVjUWgL1
* b5b7ERlSEuNyZKwhttxJBSSo8Bx4VRkh9kHEu0+R4simvRGGDa7hAilMlpRSkYU4n6kHzBHDBr
* hSwuLe5HrMWRT5i+zTTCp9wjI51TPhI1VRjTXFNMhtpOHVcvKss+0PtNtss0LIuu0mxy1tqcbh
* OGS4rGQCBw/OunoFeTd+jma6e3A1+yVD9iNxhlxA/WA7wHj5V38dpWjyzfNHxp26uWtgcwje3T
* 5U8lb5BC4iXZL7YU4OB/ro/2rHPFF8jpmalxDqSptQWn94VklBxYydnnY6Unaa2u+r7v712tkf
* FCPsbGmICgAoAKALifg6KSnozamyoJ/wCL5XM/3KFVE4uUuB06ROtdxTDBHLhnNaY41FFN2YDe
* pRJjyEEgKQQMnvB5U6hTJMDW8lTGm0xkZD0pSUcOeCasgrlZAntWbSlaHtbDbFlMlTSQhIddCA
* SPuqyGN5JUheiOe1G8Xva1OgyL5ILVrjqK27RHURHC+4r/AHyPOupgxQxP8uxW5PoLVAyC3vK4
* J3Nze+nHdgVZLDimpJrsmOScJJr0cXTT7MF9aSUhW6FAZxnNfPtfFaXO8cfF9HtNFqHqMak+12
* JK5ZirQtKeteJCEt54k1x3LdKjqs22qrRfbbaLZJtz8q3uMvJcefjKKcLJ4IJFe7+O00dPFKfs
* 8VrtT982l0uh4tm+3F521oj6jiL+YQQj5qMnIV5qTWzNgUJXj6Ocm32L9MmLcH5Co29uOJDu6p
* BThX41j5umMjkzHmzGbSsoGTnzoqx0b2NdDBkMtYyVgrX4AVRPHuiCdM8/fSfWHekttaWOStXX
* c/4x2ljwkKxs6YAoAKACgC3D4RroR0bdShS9xI1ZJUTn+5w6ux8ciSJrXa9tIkMtoO8lxvf41q
* 28CrgNPNsy31vPLDbSMOKKjjgKifQydnTc7j+kd4hLQCIwe+gHvA76RKkyTD1boNOp5O/ImKZZ
* Sc7qE5JohPYT6E8zsztcOHKYUtcjrU7oU4OKPAirnlk2miDFt2h4EOYwsp+tCcfV9lRHLNO8kp
* JpOrI/6Nntkt0mJOgXIYJaUphTbfJWcEV535bD/pjNvlcHd+KyVOUF12a3ZrpWTqOcq4zIgRFh
* kLKjx31dwFc343SfdlWSXSOh8jqfqhtT5YrLlpebJTcU/rCZS05aJ+nOcjFe6yZYygkvTPHQj+
* VmVbNnM5lCyhKMniElXOs+TKaUrHM09HkMW1pElOHm048cisT7IfB03J79rIHAISOXiTVmPsh9
* A1dutnSHVn9UhKWgfuGT+ZplFtcCt0ih3pIrS50iNqS08Uq1VdSPu+bdrI1TaGQ3VQAUAFABQB
* a78KF4I6Omo0kZSdVSc/8AiQ6ePYrJYy7glt0rC+KUlCQeI4HiP4YrrRVwKX2bG03L5uM6y2rI
* wAonw8Kpkv2OuxY2uKkOMKCUpbZRw4cc1nk+KHO+RKStZA447/Oqwo1T4KlOcuIqxAaxxgvA7v
* FaDnHjVidCvoRm0i2Nz9MTXVNHdZKVkHnkZ/3rPr8X2YJJmzQ5PrzqxQbP9FI01ou3trVuIUgy
* nludxVx4/cMVOjxLDhjETV5fuzSl66OlTqr3PTJaT1cVvIa/t55rP+lXSdOildGwCXGgDvZxVM
* uxkbRqUENdYFDGOIqpjCUXc+tmynFfZGSfw5VZh8mRNUJzUN0WzaYsVlRTImKUtR7wnNa/dIqf
* VlJm3dJTtw2hhRKlDUVxBJ7/ANpcrBPyYy6ENSEhQAUAFAFqfwq17nR61D4/pTI9pEqyPQrJMS
* FuFV2jb5S6F9c2c8eI4j8q62JpRi2VSTs79l89U16e2viW90ZJqMy2yoiPI5ztwk56lrcSORWD
* xxWNrguPpDalqCQrPjiquhjtTH3l+Q7/ABoXDFZiPwpEVwSY43lA8UHvFWKSIZ03O0p1eqLGEZ
* yOlxY69KxhG6OJrQtqi3LlFbtPjs0WqNSJ1bfBYrSv+aIh3ZTzfJ1SeG4k/ujHGoSqFsdc9m6j
* REsNpSEhOBwxWS7dssCWyNwkD+FKyUJt65lsutKyk4OM1EvGxkrYmVyCzZ1uFWXpDwbQknjx/w
* Dhq3EuLCfdGnQtVy1G6rO8hkpjtgHgAkcfzJrXDiLf7KpcUimzpBJ3NvW0lPhqW5D/ABTlcyfk
* yUIGlJCgAoAKALTPhZLCej1qHx/SiR7SJWjHG42QyS2o5JiXQOpOA+0W97wUORrZj5jQjMHZE+
* sytQ7yt15tSMnwzV+oe9QK4cNjqWXP9I85vk8d3vVWRltiijOobaK14C1cgO4VS0SdDtyQ0khB
* G9nhS0DMpNxCWd9eB+FTVgITV+qZz8aYzGdUwp1HUI6tO6EpP2j9/KuhjxpxiVX+TNhoWzRLFp
* 9EltsNoLY5jv76z53+e1jx5O5Fz+ZUtwrBSTyFU7UWHxJuyFHcB4+Rqtr0NXsRWp7ghLzLrTmS
* FbihnxqF00N1yImJfkXLU6WclLVvZW+sd2eQ/wBa1QVY7K27ZsNGbz85pzl1m+6rPmeFX1txpF
* btsp26Q/8Az/2mep7n7tyuVLtlg31KAUAFABQBaF8LxW70ftQHHH9J5HH/ALSJWrF4iskrrRzM
* Avjipo7x+7vrXiVWhX0GzncTGusptIDj620lY7wOI/zqcnFJirnociBHkyy1ugoCT9SlDmPKsm
* 6mWHbqK4i3oUhKypQ8OQp1yBq7S+/MdQCogE5JNM0ifRub9d1WuEhuOjrlK4YPdSx5INJCti3G
* etl4DqlfYKuOT5Vsb6oqrlijdjfLaecilZKAM4Pd91Y83LsshwJOKFR0kJP0g86hclsjh2ON1b
* gUN4JycHFS4iJiOv0JanStCt0rPI9xquC/Kiy+BES5sWzy7/DbC03BaWVqyk4UFkgBKu/G6o/j
* WyMbhX9Kn3YuNDNlCpCuG602lGabUcLgWD3OymrpCHO33aWfHU1z905XIfZYICoAKACgAoAtO+
* FjHW70d9RFJSB+lEgfUP7pErVi6FZIzUqCliS0s7wIIP3Vsx9iv9GFsiSJFkU2sklMkjPiAABR
* qOGV4/Y8kZ8IQd0EBIxWEuETqCap6eloZCc5PnWhKuRq4FVp2CjcbzxzSN+xbOi+uBV7ZZSnCG
* xk+dEOmTXFn3abe1NuK5CkBUnPBazwAqzJN44JixW5m3upBiP+BTjFVZOUEexGzd8QT1RCFkcD
* jIFTBFjEuxd3ZKy3I4q3uJQcCtTjwV3ydeocx1IO8paCnO6fGscPMs9DUaifMjVcdH2A4pBVj+
* wFY/8AatuLlOyqXY6+i0YtchZP1OLFVZnZMOymPpBcNve0r1NcvdOVzX2OxA1ABQB//9k=
* END:VCARD
*
* @apiError (500) {null} null could not return any authentication sources
*/
@Override
......
......@@ -52,6 +52,19 @@ public class SearchDirectoryServlet extends HttpServlet {
* @apiParam {query} [queryString] the full-text query
*
* @apiSuccess (200) {body} UserProfile[] json-representation of the user profiles
* @apiSuccessExample {json} Success-Response:
* [{
* "username":"jdoe",
* "firstName":"John",
* "lastName":"Doe",
* "phoneNumber":"+1-514-000-0000",
* "phoneNumberExtension":"363",
* "mobileNumber":"+1-514-000-0000",
* "faxNumber":"+1-514-000-0000",
* "profilePicture":"base64_encoded_picture",
* "email":"jdoe@savoirfairelinux.com",
* "organization":"SFL"
* }]
* @apiError (500) {null} null could not return any authentication sources
*/
@Override
......
......@@ -31,9 +31,11 @@ import jakarta.servlet.http.HttpServletResponse;
import net.jami.jams.common.authentication.AuthenticationSourceType;
import net.jami.jams.common.dao.StatementElement;
import net.jami.jams.common.dao.StatementList;
import net.jami.jams.common.objects.user.User;
import java.io.IOException;
import static net.jami.jams.server.Server.certificateAuthority;
import static net.jami.jams.server.Server.dataStore;
@WebServlet("/api/auth/user")
......@@ -47,6 +49,21 @@ public class UserServlet extends HttpServlet {
* @apiGroup User
*
* @apiSuccess (200) {body} User json user object representation
* @apiSuccessExample {json} Success-Response:
* {
* "username":"jdoe",
* "password":null,
* "userType":"AD",
* "realm":"savoirfairelinux",
* "accessLevel":"USER",
* "needsPasswordReset":false,
* "ethAddress":"8272773ac",
* "ethKey":"192938ae72772ab",
* "jamiId":"6e3552723df",
* "certificate":"pem_formatted_certificate",
* "privateKey":"pem_formatted_key",
* "revoked":false
* }
* @apiError (500) {null} null could not fetch user information
*/
@Override
......@@ -55,7 +72,9 @@ public class UserServlet extends HttpServlet {
StatementList select = new StatementList();
StatementElement st = new StatementElement("username","=",username,"");
select.addStatement(st);
resp.getOutputStream().write(JsonStream.serialize(dataStore.getUserDao().getObjects(select).get(0)).getBytes());
User user = dataStore.getUserDao().getObjects(select).get(0);
user.setRevoked(certificateAuthority.getLatestCRL().get().getRevokedCertificate(user.getCertificate().getSerialNumber()) != null);
resp.getOutputStream().write(JsonStream.serialize(user).getBytes());
}
//The user can update 3 fields: password,privatekey,publickey
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment