From be3ae75771e550531dfe51c8de151e23ada11482 Mon Sep 17 00:00:00 2001 From: Yuriy Movchan Date: Wed, 26 Sep 2018 20:36:17 +0300 Subject: [PATCH 001/230] Final 3.1.4 code --- debian/oxd-https-extension | 2 +- debian/rules | 2 +- oxd-client/pom.xml | 4 ++-- oxd-common/pom.xml | 4 ++-- oxd-https-extension/README.md | 2 +- oxd-https-extension/pom.xml | 4 ++-- oxd-ping/pom.xml | 4 ++-- oxd-rp-client-demo/pom.xml | 4 ++-- oxd-rp-client/pom.xml | 4 ++-- oxd-server/pom.xml | 4 ++-- oxd-server/src/main/bin/oxd-download.sh | 4 ++-- pom.xml | 6 +++--- rpmbuild/SPECS/oxd-server.spec | 2 +- 13 files changed, 23 insertions(+), 23 deletions(-) diff --git a/debian/oxd-https-extension b/debian/oxd-https-extension index 0d997e600..007a5529d 100755 --- a/debian/oxd-https-extension +++ b/debian/oxd-https-extension @@ -9,7 +9,7 @@ ### END INIT INFO CONF=/opt/oxd-https-extension/lib/oxd-https.yml -OXD_HTTPS_EXTENSION_VERSION="3.1.4-SNAPSHOT" +OXD_HTTPS_EXTENSION_VERSION="3.1.4.Final" SERVICE_NAME=oxd-https-extension PID_PATH_NAME=/var/run/oxd-https-extension.pid LIB=/opt/oxd-https-extension/lib/oxd-https-extension-${OXD_HTTPS_EXTENSION_VERSION}.jar diff --git a/debian/rules b/debian/rules index 8d7f60845..434d4fe21 100755 --- a/debian/rules +++ b/debian/rules @@ -28,7 +28,7 @@ override_dh_auto_install: cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-3.1.4-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ diff --git a/oxd-client/pom.xml b/oxd-client/pom.xml index 6ddabc95a..acd9a15c2 100644 --- a/oxd-client/pom.xml +++ b/oxd-client/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-client jar - 3.1.4-SNAPSHOT + 3.1.4.Final oxD Client http://ox.gluu.org org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-common/pom.xml b/oxd-common/pom.xml index 839522578..945798bb5 100644 --- a/oxd-common/pom.xml +++ b/oxd-common/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-common jar - 3.1.4-SNAPSHOT + 3.1.4.Final oxD Common http://ox.gluu.org org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-https-extension/README.md b/oxd-https-extension/README.md index bc18b69c6..e0174433f 100644 --- a/oxd-https-extension/README.md +++ b/oxd-https-extension/README.md @@ -44,7 +44,7 @@ mvn package To run the server : ```sh -java -jar target/oxd-https-extension-3.1.4-SNAPSHOT.jar server oxd-https.yml +java -jar target/oxd-https-extension-3.1.4.Final.jar server oxd-https.yml ``` Open this URL in browser: diff --git a/oxd-https-extension/pom.xml b/oxd-https-extension/pom.xml index ee3ef0029..90a24d015 100644 --- a/oxd-https-extension/pom.xml +++ b/oxd-https-extension/pom.xml @@ -4,13 +4,13 @@ 4.0.0 oxd-https-extension - 3.1.4-SNAPSHOT + 3.1.4.Final oxd-https-extension org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-ping/pom.xml b/oxd-ping/pom.xml index 6a91a0683..e8a409811 100644 --- a/oxd-ping/pom.xml +++ b/oxd-ping/pom.xml @@ -4,14 +4,14 @@ 4.0.0 oxd-ping jar - 3.1.4-SNAPSHOT + 3.1.4.Final oxD Ping http://ox.gluu.org org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-rp-client-demo/pom.xml b/oxd-rp-client-demo/pom.xml index 097ca16d7..479428933 100644 --- a/oxd-rp-client-demo/pom.xml +++ b/oxd-rp-client-demo/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-rp-client-demo war - 3.1.4-SNAPSHOT + 3.1.4.Final oxD RP Client Demo http://ox.gluu.org org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-rp-client/pom.xml b/oxd-rp-client/pom.xml index e499d613e..0193c9fdf 100644 --- a/oxd-rp-client/pom.xml +++ b/oxd-rp-client/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-rp-client jar - 3.1.4-SNAPSHOT + 3.1.4.Final oxD RP Client http://ox.gluu.org org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-server/pom.xml b/oxd-server/pom.xml index fd11297b5..d8a87d690 100644 --- a/oxd-server/pom.xml +++ b/oxd-server/pom.xml @@ -5,7 +5,7 @@ 4.0.0 oxd-server jar - 3.1.4-SNAPSHOT + 3.1.4.Final oxD Server http://ox.gluu.org @@ -17,7 +17,7 @@ org.xdi oxd - 3.1.4-SNAPSHOT + 3.1.4.Final diff --git a/oxd-server/src/main/bin/oxd-download.sh b/oxd-server/src/main/bin/oxd-download.sh index 3ceba0d1f..d259a3bce 100644 --- a/oxd-server/src/main/bin/oxd-download.sh +++ b/oxd-server/src/main/bin/oxd-download.sh @@ -1,6 +1,6 @@ #!/bin/sh -warName=oxd-server-3.1.4-SNAPSHOT-distribution.zip +warName=oxd-server-3.1.4.Final-distribution.zip distDir=oxd-dist # Clean up @@ -8,5 +8,5 @@ rm -f $warName rm -f -r $destDir # Download and unzip -wget http://ox.gluu.org/maven/org/xdi/oxd-server/3.1.4-SNAPSHOT/$warName +wget http://ox.gluu.org/maven/org/xdi/oxd-server/3.1.4.Final/$warName unzip $warName -d $distDir \ No newline at end of file diff --git a/pom.xml b/pom.xml index 71746f9bc..91d6dda1a 100644 --- a/pom.xml +++ b/pom.xml @@ -5,18 +5,18 @@ org.xdi oxd pom - 3.1.4-SNAPSHOT + 3.1.4.Final oxD http://ox.gluu.org UTF-8 3.0.3 - 3.1.4-SNAPSHOT + 3.1.4.Final 1.9.9 1.7.25 4.1.2 - 3.1.4-SNAPSHOT + 3.1.4.Final 2.3.7.Final 1.1.0 3.0 diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 9deb0a77b..ae738f19e 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -45,7 +45,7 @@ install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/%{name1} install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/%{name1}/conf/ install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/%{name1}/conf/ install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/%{name1}/lib/ -install -m 644 oxd-https-extension/target/oxd-https-extension-3.1.4-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ +install -m 644 oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.keystore %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.yml %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 README.md %{buildroot}/opt/%{name1}/ From 14d25f9eaca91a31198e2fab149be2c50e84e1ea Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 2 Oct 2018 19:07:29 +0300 Subject: [PATCH 002/230] oxd : do not include id_token_hint into logout uri to force logout by session_id https://github.com/GluuFederation/oxd/issues/223 --- .../oxd/server/op/GetLogoutUrlOperation.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java index 3fd75f754..a5bb513c7 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java @@ -61,29 +61,21 @@ public CommandResponse execute(GetLogoutUrlParams params) throws Exception { throw new ErrorResponseException(ErrorResponseCode.FAILED_TO_GET_END_SESSION_ENDPOINT); } - String uri = endSessionEndpoint + - "?id_token_hint=" + getIdToken(params, site); + String uri = endSessionEndpoint; if (!Strings.isNullOrEmpty(postLogoutRedirectUrl)) { - uri += "&post_logout_redirect_uri=" + URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"); + uri += separator(uri) + "post_logout_redirect_uri=" + URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"); } if (!Strings.isNullOrEmpty(params.getState())) { - uri += "&state=" + params.getState(); + uri += separator(uri) + "state=" + params.getState(); } if (!Strings.isNullOrEmpty(params.getSessionState())) { - uri += "&session_state=" + params.getSessionState(); + uri += separator(uri) + "session_state=" + params.getSessionState(); } return okResponse(new LogoutResponse(uri)); } - private String getIdToken(GetLogoutUrlParams params, Rp site) { - if (!Strings.isNullOrEmpty(params.getIdTokenHint())) { - return params.getIdTokenHint(); - } - if (!Strings.isNullOrEmpty(site.getIdToken())) { - return site.getIdToken(); - } - throw new RuntimeException("id_token is not present in command parameter and also is not present in site conf."); + private static String separator(String uri) { + return uri.contains("?") ? "&" : "?"; } - } From 0f844f457b2d9d5bba7e8f8c7698e833324b0ad7 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 2 Oct 2018 19:07:29 +0300 Subject: [PATCH 003/230] oxd (4/0.0): do not include id_token_hint into logout uri to force logout by session_id https://github.com/GluuFederation/oxd/issues/223 (cherry picked from commit 14d25f9) --- .../oxd/server/op/GetLogoutUrlOperation.java | 20 ++++++------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java index 3fd75f754..a5bb513c7 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java @@ -61,29 +61,21 @@ public CommandResponse execute(GetLogoutUrlParams params) throws Exception { throw new ErrorResponseException(ErrorResponseCode.FAILED_TO_GET_END_SESSION_ENDPOINT); } - String uri = endSessionEndpoint + - "?id_token_hint=" + getIdToken(params, site); + String uri = endSessionEndpoint; if (!Strings.isNullOrEmpty(postLogoutRedirectUrl)) { - uri += "&post_logout_redirect_uri=" + URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"); + uri += separator(uri) + "post_logout_redirect_uri=" + URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"); } if (!Strings.isNullOrEmpty(params.getState())) { - uri += "&state=" + params.getState(); + uri += separator(uri) + "state=" + params.getState(); } if (!Strings.isNullOrEmpty(params.getSessionState())) { - uri += "&session_state=" + params.getSessionState(); + uri += separator(uri) + "session_state=" + params.getSessionState(); } return okResponse(new LogoutResponse(uri)); } - private String getIdToken(GetLogoutUrlParams params, Rp site) { - if (!Strings.isNullOrEmpty(params.getIdTokenHint())) { - return params.getIdTokenHint(); - } - if (!Strings.isNullOrEmpty(site.getIdToken())) { - return site.getIdToken(); - } - throw new RuntimeException("id_token is not present in command parameter and also is not present in site conf."); + private static String separator(String uri) { + return uri.contains("?") ? "&" : "?"; } - } From 5b5b0e3943f1fb39ec95d4dc82378a0b4cc10be5 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 3 Oct 2018 19:02:12 +0300 Subject: [PATCH 004/230] #225 : preparation to migration - added httpStatus code to ErrorResponseCode. Added HttpException to be able throw http error response directly with code and details message. --- .../org/xdi/oxd/common/ErrorResponseCode.java | 115 +++++++++--------- .../org/xdi/oxd/server/HttpException.java | 18 +++ .../oxd/server/op/RegisterSiteOperation.java | 2 +- 3 files changed, 78 insertions(+), 57 deletions(-) create mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java index e501d5a42..8116167eb 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java @@ -17,66 +17,69 @@ public enum ErrorResponseCode { - INTERNAL_ERROR_UNKNOWN("internal_error", "Unknown internal server error occurs."), - INTERNAL_ERROR_NO_PARAMS("internal_error", "Command parameters are not specified or otherwise malformed."), - BAD_REQUEST_NO_OXD_ID("bad_request", "oxd_id is empty or not specified or is otherwise invalid (not registered)."), - BAD_REQUEST_NO_CODE("bad_request", "'code' is empty or not specified."), - BAD_REQUEST_NO_STATE("bad_request", "'state' is empty or not specified."), - BAD_REQUEST_STATE_NOT_VALID("bad_request", "'state' is not registered."), - NO_ID_TOKEN_RETURNED("no_id_token", "id_token is not returned. Please check whether 'openid' scope is present for 'get_authorization_url' command"), - NO_ID_TOKEN_PARAM("no_id_token", "id_token is not provided in request to oxd."), - NO_ACCESS_TOKEN_RETURNED("no_access_token", "access_token is not returned."), - PROTECTION_ACCESS_TOKEN_INSUFFICIENT_SCOPE("protection_access_token_insufficient_scope", "protection_access_token does not have oxd scope. Make sure a) scope exists on AS b) setup_client is registered with 'oxd' scope c) get_client_token has 'oxd' scope in request"), - INVALID_NONCE("invalid_nonce", "Nonce value is not registered by oxd."), - INVALID_STATE("invalid_state", "State value is not registered by oxd."), - INVALID_ID_TOKEN("invalid_id_token", "id_token is invalid."), - INVALID_ID_TOKEN_BAD_NONCE("invalid_id_token_bad_nonce", "Invalid id_token. Nonce value from token does not match nonce from request."), - INVALID_ID_TOKEN_BAD_AUDIENCE("invalid_id_token_bad_audience", "Invalid id_token. Audience value from token does not match audience from request."), - INVALID_ID_TOKEN_EXPIRED("invalid_id_token_expired", "Invalid id_token. id_token expired."), - INVALID_ID_TOKEN_BAD_ISSUER("invalid_id_token_bad_issuer", "Invalid id_token. Bad issuer."), - INVALID_ID_TOKEN_BAD_SIGNATURE("invalid_id_token_bad_signature", "Invalid id_token. Bad signature."), - INVALID_ID_TOKEN_UNKNOWN("invalid_id_token_unknown", "Invalid id_token, validation fail due to exception, please check oxd-server.log for details."), - INVALID_ACCESS_TOKEN_BAD_HASH("invalid_access_token_bad_hash", "access_token is invalid. Hash of access_token does not match hash from id_token (at_hash)."), - INVALID_AUTHORIZATION_CODE_BAD_HASH("invalid_authorization_code_bad_hash", "Authorization code is invalid. Hash of authorization code does not match hash from id_token (c_hash)."), - INVALID_REGISTRATION_CLIENT_URL("invalid_registration_client_url", "Registration client URL is invalid. Please check registration_client_url response parameter from IDP (http://openid.net/specs/openid-connect-registration-1_0.html#RegistrationResponse)."), - INVALID_OXD_ID("invalid_oxd_id", "Invalid oxd_id. Unable to find site for oxd_id. It does not exist or removed from the server. Please use register_site command to register a site."), - INVALID_REQUEST("invalid_request", "Request is invalid. It doesn't contains all required parameters or otherwise is malformed."), - INVALID_REQUEST_SCOPES_REQUIRED("invalid_request", "Request is invalid. Scopes are required parameter in request."), - RPT_NOT_AUTHORIZED("rpt_not_authorized", "Unable to authorize RPT."), - UNSUPPORTED_OPERATION("unsupported_operation", "Operation is not supported by server error."), - INVALID_OP_HOST("invalid_op_host", "Invalid op_host (empty or blank)."), - BLANK_PROTECTION_ACCESS_TOKEN("blank_protection_access_token", "protection_access_token is blank. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), - INVALID_PROTECTION_ACCESS_TOKEN("invalid_protection_access_token", "Invalid protection_access_token. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), - NO_CLIENT_ID_IN_INTROSPECTION_RESPONSE("invalid_introspection_response", "AS returned introspection response with empty/blank client_id which is required by oxd. Please check your AS installation and make sure AS return client_id for introspection call (CE 3.1.0 or later)."), - INACTIVE_PROTECTION_ACCESS_TOKEN("inactive_protection_access_token", "Inactive protection_access_token. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), - INVALID_AUTHORIZATION_REDIRECT_URI("invalid_authorization_redirect_uri", "Invalid authorization_redirect_uri (empty or blank)."), - INVALID_SCOPE("invalid_scope", "Invalid scope parameter (empty or blank)."), - INVALID_ACR_VALUES("invalid_acr_values", "Invalid acr_values parameter (empty or blank)."), - INVALID_ALGORITHM("invalid_algorithm", "Invalid algorithm provided. Valid algorithms are: " + Arrays.toString(SignatureAlgorithm.values())), - NO_CONNECT_DISCOVERY_RESPONSE("no_connect_discovery_response", "Unable to fetch Connect discovery response /.well-known/openid-configuration"), - NO_REGISTRATION_ENDPOINT("invalid_request", "OP does not support dynamic client registration. Please register client manually and provide client_id and client_secret to register_site command."), - NO_UMA_DISCOVERY_RESPONSE("no_uma_discovery_response", "Unable to fetch UMA discovery response /.well-known/uma2-configuration"), - NO_UMA_RESOURCES_TO_PROTECT("invalid_uma_request", "Resources list to protect is empty or blank. Please check it according to protocol definition at " + CoreUtils.DOC_URL), - NO_UMA_HTTP_METHOD("invalid_http_method", "http_method is not specified or otherwise not GET or POST or PUT or DELETE. Please check it according to protocol definition at " + CoreUtils.DOC_URL), - NO_UMA_PATH_PARAMETER("invalid_path_parameter", "path parameter is not specified or otherwise not valid"), - NO_UMA_TICKET_PARAMETER("invalid_ticket_parameter", "ticket parameter is not specified or otherwise is not valid"), - NO_UMA_CLAIMS_REDIRECT_URI_PARAMETER("invalid_claims_redirect_uri_parameter", "claims_redirect_uri parameter is not specified or otherwise is not valid"), - NO_UMA_RPT_PARAMETER("invalid_rpt_parameter", "rpt parameter is not specified or otherwise is not valid"), - UMA_NEED_INFO("need_info", "The authorization server needs additional information in order to determine whether the client is authorized to have these permissions."), - UMA_HTTP_METHOD_NOT_UNIQUE("http_method_not_unique", "HTTP method defined in JSON must be unique within given PATH (but occurs more then one time)."), - UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION("invalid_scope_expressioin", "Scope expression is not valid. Please check documentation and make sure expression is valid JsonLogic expression."), - UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS("uma_protection_exists", "Server already has UMA Resources registered for this oxd_id. It is possible to overwrite it if provide overwrite=true for uma_rs_protect command (existing resources will be removed and new UMA Resources added)."), - FAILED_TO_GET_END_SESSION_ENDPOINT("no_end_session_endpoint_at_op", "OP does not provide end_session_endpoint at /.well-known/openid-configuration."), - FAILED_TO_GET_REVOCATION_ENDPOINT("no_revocation_endpoint_at_op", "Failed to get revocation_endpoint at https://accounts.google.com/.well-known/openid-configuration"), - FAILED_TO_GET_RPT("internal_error", "Failed to get RPT."), - FAILED_TO_REMOVE_SITE("remove_site_failed", "Failed to remove site."),; + INTERNAL_ERROR_UNKNOWN(500, "internal_error", "Unknown internal server error occurs."), + INTERNAL_ERROR_NO_PARAMS(400, "bad_request", "Command parameters are not specified or otherwise malformed."), + BAD_REQUEST_NO_OXD_ID(400, "bad_request", "oxd_id is empty or not specified or is otherwise invalid (not registered)."), + BAD_REQUEST_NO_CODE(400, "bad_request", "'code' is empty or not specified."), + BAD_REQUEST_NO_STATE(400, "bad_request", "'state' is empty or not specified."), + BAD_REQUEST_STATE_NOT_VALID(400, "bad_request", "'state' is not registered."), + NO_ID_TOKEN_RETURNED(500, "no_id_token", "id_token is not returned by OP. Please check whether 'openid' scope is present for 'get_authorization_url' command as well as OP configuration."), + NO_ID_TOKEN_PARAM(400, "no_id_token", "id_token is not provided in request to oxd."), + NO_ACCESS_TOKEN_RETURNED(500, "no_access_token", "access_token is not returned by OP. Please check OP configuration."), + PROTECTION_ACCESS_TOKEN_INSUFFICIENT_SCOPE(403, "protection_access_token_insufficient_scope", "protection_access_token does not have `oxd` scope. Make sure a) scope exists on AS b) register_site is registered with 'oxd' scope c) get_client_token has 'oxd' scope in request"), + INVALID_NONCE(400, "invalid_nonce", "Nonce value is not registered by oxd."), + INVALID_STATE(400, "invalid_state", "State value is not registered by oxd."), + INVALID_ID_TOKEN_BAD_NONCE(500, "invalid_id_token_bad_nonce", "Invalid id_token. Nonce value from token does not match nonce from request."), + INVALID_ID_TOKEN_BAD_AUDIENCE(500, "invalid_id_token_bad_audience", "Invalid id_token. Audience value from token does not match audience from request."), + INVALID_ID_TOKEN_EXPIRED(500, "invalid_id_token_expired", "Invalid id_token. id_token expired."), + INVALID_ID_TOKEN_BAD_ISSUER(500, "invalid_id_token_bad_issuer", "Invalid id_token. Bad issuer."), + INVALID_ID_TOKEN_BAD_SIGNATURE(500, "invalid_id_token_bad_signature", "Invalid id_token. Bad signature."), + INVALID_ID_TOKEN_UNKNOWN(500, "invalid_id_token_unknown", "Invalid id_token, validation fail due to exception, please check oxd-server.log for details."), + INVALID_ACCESS_TOKEN_BAD_HASH(500, "invalid_access_token_bad_hash", "access_token is invalid. Hash of access_token does not match hash from id_token (at_hash)."), + INVALID_AUTHORIZATION_CODE_BAD_HASH(500, "invalid_authorization_code_bad_hash", "Authorization code is invalid. Hash of authorization code does not match hash from id_token (c_hash)."), + INVALID_REGISTRATION_CLIENT_URL(500, "invalid_registration_client_url", "Registration client URL is invalid. Please check registration_client_url response parameter from IDP (http://openid.net/specs/openid-connect-registration-1_0.html#RegistrationResponse)."), + INVALID_OXD_ID(400, "invalid_oxd_id", "Invalid oxd_id. Unable to find site for oxd_id. It does not exist or removed from the server. Please use register_site command to register a site."), + INVALID_REQUEST(400, "invalid_request", "Request is invalid. It doesn't contains all required parameters or otherwise is malformed."), + INVALID_REQUEST_SCOPES_REQUIRED(400, "invalid_request", "Request is invalid. Scopes are required parameter in request."), + UNSUPPORTED_OPERATION(500, "unsupported_operation", "Operation is not supported by server error."), + INVALID_OP_HOST(400, "invalid_op_host", "Invalid op_host (empty or blank)."), + BLANK_PROTECTION_ACCESS_TOKEN(403, "blank_protection_access_token", "protection_access_token is blank. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), + INVALID_PROTECTION_ACCESS_TOKEN(403, "invalid_protection_access_token", "Invalid protection_access_token. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), + NO_CLIENT_ID_IN_INTROSPECTION_RESPONSE(500, "invalid_introspection_response", "AS returned introspection response with empty/blank client_id which is required by oxd. Please check your AS installation and make sure AS return client_id for introspection call (CE 3.1.0 or later)."), + INACTIVE_PROTECTION_ACCESS_TOKEN(403, "inactive_protection_access_token", "Inactive protection_access_token. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), + INVALID_AUTHORIZATION_REDIRECT_URI(400, "invalid_authorization_redirect_uri", "Invalid authorization_redirect_uri (empty or blank)."), + INVALID_SCOPE(400, "invalid_scope", "Invalid scope parameter (empty or blank)."), + INVALID_ACR_VALUES(400, "invalid_acr_values", "Invalid acr_values parameter (empty or blank)."), + INVALID_ALGORITHM(400, "invalid_algorithm", "Invalid algorithm provided. Valid algorithms are: " + Arrays.toString(SignatureAlgorithm.values())), + NO_CONNECT_DISCOVERY_RESPONSE(500, "no_connect_discovery_response", "Unable to fetch Connect discovery response /.well-known/openid-configuration"), + NO_REGISTRATION_ENDPOINT(500, "invalid_request", "OP does not support dynamic client registration. Please register client manually and provide client_id and client_secret to register_site command."), + NO_UMA_DISCOVERY_RESPONSE(500, "no_uma_discovery_response", "Unable to fetch UMA discovery response /.well-known/uma2-configuration"), + NO_UMA_RESOURCES_TO_PROTECT(400, "invalid_uma_request", "Resources list to protect is empty or blank. Please check it according to protocol definition at " + CoreUtils.DOC_URL), + NO_UMA_HTTP_METHOD(400, "invalid_http_method", "http_method is not specified or otherwise not GET or POST or PUT or DELETE. Please check it according to protocol definition at " + CoreUtils.DOC_URL), + NO_UMA_PATH_PARAMETER(400, "invalid_path_parameter", "path parameter is not specified or otherwise not valid"), + NO_UMA_TICKET_PARAMETER(400, "invalid_ticket_parameter", "ticket parameter is not specified or otherwise is not valid"), + NO_UMA_CLAIMS_REDIRECT_URI_PARAMETER(400, "invalid_claims_redirect_uri_parameter", "claims_redirect_uri parameter is not specified or otherwise is not valid"), + NO_UMA_RPT_PARAMETER(400, "invalid_rpt_parameter", "rpt parameter is not specified or otherwise is not valid"), + UMA_NEED_INFO(403, "need_info", "The authorization server needs additional information in order to determine whether the client is authorized to have these permissions."), + UMA_HTTP_METHOD_NOT_UNIQUE(400, "http_method_not_unique", "HTTP method defined in JSON must be unique within given PATH (but occurs more then one time)."), + UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION(400, "invalid_scope_expressioin", "Scope expression is not valid. Please check documentation and make sure expression is valid JsonLogic expression."), + UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS(400, "uma_protection_exists", "Server already has UMA Resources registered for this oxd_id. It is possible to overwrite it if provide overwrite=true for uma_rs_protect command (existing resources will be removed and new UMA Resources added)."), + FAILED_TO_GET_END_SESSION_ENDPOINT(500, "no_end_session_endpoint_at_op", "OP does not provide end_session_endpoint at /.well-known/openid-configuration."), + FAILED_TO_GET_RPT(500, "internal_error", "Failed to get RPT."), + FAILED_TO_REMOVE_SITE(500, "remove_site_failed", "Failed to remove site."),; + private final int httpStatus; private final String code; private final String description; - private ErrorResponseCode(String p_value, String p_description) { - code = p_value; - description = p_description; + ErrorResponseCode(int httpStatus, String code, String description) { + this.code = code; + this.description = description; + this.httpStatus = httpStatus; + } + + public int getHttpStatus() { + return httpStatus; } public String getDescription() { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java new file mode 100644 index 000000000..8f8447f7c --- /dev/null +++ b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java @@ -0,0 +1,18 @@ +package org.xdi.oxd.server; + +import org.xdi.oxd.common.CoreUtils; +import org.xdi.oxd.common.ErrorResponse; +import org.xdi.oxd.common.ErrorResponseCode; + +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response; + +/** + * @author Yuriy Zabrovarnyy + */ +public class HttpException extends WebApplicationException { + + public HttpException(ErrorResponseCode code) { + super(Response.status(code.getHttpStatus()).entity(CoreUtils.asJsonSilently(new ErrorResponse(code))).build()); + } +} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java index da0b9e08f..c6c6240a1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java @@ -236,7 +236,7 @@ private RegisterResponse registerClient(RegisterSiteParams params) { if (Strings.isNullOrEmpty(registrationEndpoint)) { LOG.error("This OP (" + params.getOpHost() + ") does not provide registration_endpoint. It means that oxd is not able dynamically register client. " + "Therefore it is required to obtain/register client manually on OP site and provide client_id and client_secret to oxd register_site command."); - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT); + throw new ErrorResponseException(ErrorResponseCode.NO_REGISTRATION_ENDPOINT); } final RegisterClient registerClient = new RegisterClient(registrationEndpoint); From 98108806a9f927f7d4dac64c23730b5c7196a1f8 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 4 Oct 2018 14:00:22 +0300 Subject: [PATCH 005/230] #225 : migrating server to http exception error handling --- .../org/xdi/oxd/client/CommandResponse2.java | 4 -- .../org/xdi/oxd/common/CommandResponse.java | 43 ++--------------- .../oxd/common/ErrorResponseException.java | 28 ----------- .../java/org/xdi/oxd/common/JsonTest.java | 5 +- .../java/org/xdi/oxd/server/Convertor.java | 7 ++- .../org/xdi/oxd/server/HttpException.java | 33 +++++++++++++ .../java/org/xdi/oxd/server/Processor.java | 46 +++---------------- .../org/xdi/oxd/server/op/BaseOperation.java | 19 +++----- .../oxd/server/op/CheckIdTokenOperation.java | 6 +-- ...GetAccessTokenByRefreshTokenOperation.java | 6 +-- .../server/op/GetClientTokenOperation.java | 8 ++-- .../oxd/server/op/GetLogoutUrlOperation.java | 4 +- .../server/op/GetTokensByCodeOperation.java | 12 ++--- .../oxd/server/op/RegisterSiteOperation.java | 16 +++---- .../oxd/server/op/RemoveSiteOperation.java | 5 +- .../RpGetGetClaimsGatheringUrlOperation.java | 6 +-- .../oxd/server/op/RsCheckAccessOperation.java | 5 +- .../xdi/oxd/server/op/RsProtectOperation.java | 10 ++-- .../oxd/server/op/UpdateSiteOperation.java | 4 +- .../xdi/oxd/server/op/ValidateOperation.java | 10 ++-- .../java/org/xdi/oxd/server/op/Validator.java | 22 ++++----- .../oxd/server/service/DiscoveryService.java | 8 ++-- .../oxd/server/service/UmaTokenService.java | 6 +-- .../oxd/server/service/ValidationService.java | 26 +++++------ .../xdi/oxd/server/service/RpServiceTest.java | 6 +-- 25 files changed, 137 insertions(+), 208 deletions(-) delete mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseException.java diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java b/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java index d2a87721c..785c8ca58 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java @@ -19,10 +19,6 @@ public class CommandResponse2 implements Serializable { private static final Logger LOG = LoggerFactory.getLogger(org.xdi.oxd.common.CommandResponse.class); - public static final org.xdi.oxd.common.CommandResponse INTERNAL_ERROR_RESPONSE = org.xdi.oxd.common.CommandResponse.createInternalError(); - - public static final org.xdi.oxd.common.CommandResponse OPERATION_IS_NOT_SUPPORTED = org.xdi.oxd.common.CommandResponse.createUnsupportedOperationError(); - @JsonProperty(value = "status") private ResponseStatus status; @JsonProperty(value = "data") diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java index 4dd05cfad..6a7735494 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.common; @@ -10,7 +10,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; import java.io.Serializable; /** @@ -23,12 +22,6 @@ public class CommandResponse implements Serializable { private static final Logger LOG = LoggerFactory.getLogger(CommandResponse.class); - public static final CommandResponse INTERNAL_ERROR_RESPONSE = CommandResponse.createInternalError(); - - public static final String INTERNAL_ERROR_RESPONSE_AS_STRING = createInternalErrorAsString(); - - public static final CommandResponse OPERATION_IS_NOT_SUPPORTED = CommandResponse.createUnsupportedOperationError(); - @JsonProperty(value = "status") @com.fasterxml.jackson.annotation.JsonProperty(value="status") private ResponseStatus status; @@ -91,30 +84,6 @@ public static CommandResponse createErrorResponse(ErrorResponse p_error) { return CommandResponse.error().setData(new POJONode(p_error)); } - public static CommandResponse createErrorResponse(ErrorResponseCode p_errorCode) { - final ErrorResponse error = new ErrorResponse(p_errorCode); - error.setErrorDescription(p_errorCode.getDescription()); - return CommandResponse.error().setData(new POJONode(error)); - } - - public static CommandResponse createInternalError() { - return createErrorResponse(ErrorResponseCode.INTERNAL_ERROR_UNKNOWN); - } - - public static CommandResponse createUnsupportedOperationError() { - return createErrorResponse(ErrorResponseCode.UNSUPPORTED_OPERATION); - } - - private static String createInternalErrorAsString() { - final CommandResponse response = CommandResponse.createInternalError(); - try { - return CoreUtils.asJson(response); - } catch (IOException e) { - LOG.error(e.getMessage(), e); - return ""; - } - } - /** * Returns string representation of object * @@ -122,11 +91,9 @@ private static String createInternalErrorAsString() { */ @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("CommandResponse"); - sb.append("{status=").append(status); - sb.append(", params=").append(data); - sb.append('}'); - return sb.toString(); + return "CommandResponse" + + "{status=" + status + + ", params=" + data + + '}'; } } diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseException.java b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseException.java deleted file mode 100644 index 5176e5c96..000000000 --- a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseException.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.xdi.oxd.common; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 23/05/2016 - */ - -public class ErrorResponseException extends RuntimeException { - - private final ErrorResponseCode errorResponseCode; - - public ErrorResponseException(ErrorResponseCode errorResponseCode) { - this.errorResponseCode = errorResponseCode; - } - - public ErrorResponseCode getErrorResponseCode() { - return errorResponseCode; - } - - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("ErrorResponseException"); - sb.append("{errorResponseCode=").append(errorResponseCode); - sb.append('}'); - return sb.toString(); - } -} diff --git a/oxd-common/src/test/java/org/xdi/oxd/common/JsonTest.java b/oxd-common/src/test/java/org/xdi/oxd/common/JsonTest.java index f8cb0ad43..b3c896131 100644 --- a/oxd-common/src/test/java/org/xdi/oxd/common/JsonTest.java +++ b/oxd-common/src/test/java/org/xdi/oxd/common/JsonTest.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.common; @@ -45,8 +45,7 @@ public void testCommand() throws IOException { @Test public void testErrorResponseJson() throws IOException { - final CommandResponse response = CommandResponse.createInternalError(); - final String json = CoreUtils.asJson(response); + final String json = CoreUtils.asJson(new ErrorResponse(ErrorResponseCode.INTERNAL_ERROR_UNKNOWN)); Assert.assertTrue(StringUtils.isNotBlank(json)); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Convertor.java b/oxd-server/src/main/java/org/xdi/oxd/server/Convertor.java index 93bc926ea..2dafc6dba 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Convertor.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Convertor.java @@ -9,7 +9,6 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.IParams; /** @@ -43,15 +42,15 @@ public static T asParams(Class clazz, Command command) { try { T params = CoreUtils.createJsonMapper().readValue(paramsAsString, clazz); if (params == null) { - throw new ErrorResponseException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); + throw new HttpException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); } return params; - } catch (ErrorResponseException e) { + } catch (HttpException e) { throw e; } catch (Exception e) { LOG.error(e.getMessage(), e); } LOG.error("Unable to parse string to params, string: {}", paramsAsString); - throw new ErrorResponseException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); + throw new HttpException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java index 8f8447f7c..d553b95c8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java @@ -6,13 +6,46 @@ import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; +import java.util.Objects; /** * @author Yuriy Zabrovarnyy */ public class HttpException extends WebApplicationException { + private final ErrorResponseCode code; + public HttpException(ErrorResponseCode code) { super(Response.status(code.getHttpStatus()).entity(CoreUtils.asJsonSilently(new ErrorResponse(code))).build()); + this.code = code; + } + + public ErrorResponseCode getCode() { + return code; + } + + public static HttpException internalError() { + return new HttpException(ErrorResponseCode.INTERNAL_ERROR_UNKNOWN); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + HttpException that = (HttpException) o; + return code == that.code; + } + + @Override + public int hashCode() { + + return Objects.hash(code); + } + + @Override + public String toString() { + return "HttpException{" + + "code=" + code + + "} " + super.toString(); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java index 22561a0c6..ad9e13559 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java @@ -1,23 +1,21 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server; import com.google.inject.Inject; -import org.apache.commons.lang.StringUtils; import org.jboss.resteasy.client.ClientResponseFailure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.*; +import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.CommandResponse; +import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.IParams; import org.xdi.oxd.server.op.IOperation; import org.xdi.oxd.server.op.OperationFactory; -import org.xdi.oxd.server.service.Rp; import org.xdi.oxd.server.service.ValidationService; -import org.xdi.util.Pair; import javax.ws.rs.WebApplicationException; -import java.io.IOException; /** * oxD operation processor. @@ -38,34 +36,6 @@ public Processor(ValidationService validationService) { this.validationService = validationService; } - /** - * Processed command. - * - * @param p_command command as string - * @return response as string - */ - public String process(String p_command) { - LOG.trace("Command: {}", StringUtils.remove(p_command, "client_secret")); - try { - if (StringUtils.isNotBlank(p_command)) { - final Command command = CoreUtils.createJsonMapper().readValue(p_command, Command.class); - final CommandResponse response = process(command); - if (response != null) { - final String json = CoreUtils.asJson(response); - LOG.trace("Send back response: {}", json); - return json; - } else { - LOG.error("There is no response produced by Processor."); - return null; - } - } - } catch (IOException e) { - LOG.error(e.getMessage(), e); - } - LOG.trace("No command or it's corrupted. Stop handling commands for this client."); - return CommandResponse.INTERNAL_ERROR_RESPONSE_AS_STRING; - } - public CommandResponse process(Command command) { if (command != null) { try { @@ -82,21 +52,19 @@ public CommandResponse process(Command command) { } } else { LOG.error("Operation is not supported!"); - return CommandResponse.OPERATION_IS_NOT_SUPPORTED; + throw new HttpException(ErrorResponseCode.UNSUPPORTED_OPERATION); } - } catch (ErrorResponseException e) { - LOG.error(e.getLocalizedMessage(), e); - return CommandResponse.createErrorResponse(e.getErrorResponseCode()); } catch (ClientResponseFailure e) { LOG.error(e.getLocalizedMessage(), e); throw new WebApplicationException((String) e.getResponse().getEntity(String.class), e.getResponse().getStatus()); } catch (WebApplicationException e) { + LOG.error(e.getLocalizedMessage(), e); throw e; } catch (Throwable e) { LOG.error(e.getMessage(), e); } } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + throw HttpException.internalError(); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java index 4d1b8b54f..12e7ffc7e 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java @@ -1,22 +1,20 @@ -/** - * All rights reserved -- Copyright 2015 Gluu Inc. +/* + All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; import com.google.inject.Injector; import org.codehaus.jackson.node.POJONode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.xdi.oxauth.model.crypto.OxAuthCryptoProvider; import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.HasOxdIdParams; import org.xdi.oxd.common.params.IParams; import org.xdi.oxd.common.response.IOpResponse; -import org.xdi.oxd.server.OxdServerConfiguration; import org.xdi.oxd.server.Convertor; +import org.xdi.oxd.server.HttpException; +import org.xdi.oxd.server.OxdServerConfiguration; import org.xdi.oxd.server.service.*; /** @@ -28,11 +26,6 @@ public abstract class BaseOperation implements IOperation { - /** - * Logger - */ - private static final Logger LOG = LoggerFactory.getLogger(BaseOperation.class); - private final Command command; private final Injector injector; private final Class parameterClass; @@ -115,7 +108,7 @@ public Rp getRp() { HasOxdIdParams hasOxdId = (HasOxdIdParams) params; return getRpService().getRp(hasOxdId.getOxdId()); } - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_OXD_ID); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_OXD_ID); } public ValidationService getValidationService() { @@ -139,7 +132,7 @@ public Command getCommand() { */ public CommandResponse okResponse(IOpResponse p_data) { if (p_data == null) { - return CommandResponse.createInternalError(); + throw HttpException.internalError(); } return CommandResponse.ok().setData(new POJONode(p_data)); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java index 32e9dfea9..347322f87 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java @@ -11,9 +11,9 @@ import org.xdi.oxauth.model.jwt.JwtClaimName; import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.CheckIdTokenParams; import org.xdi.oxd.common.response.CheckIdTokenResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.service.Rp; @@ -46,12 +46,12 @@ public CommandResponse execute(CheckIdTokenParams params) throws Exception { opResponse.setExpiresAt(Utils.date(jwt.getClaims().getClaimAsDate(JwtClaimName.EXPIRATION_TIME))); opResponse.setClaims(jwt.getClaims().toMap()); return okResponse(opResponse); - } catch (ErrorResponseException e) { + } catch (HttpException e) { throw e; } catch (Exception e) { LOG.error(e.getMessage(), e); } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + throw HttpException.internalError(); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java index dd3029de2..a35ac1517 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java @@ -9,9 +9,9 @@ import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.GetAccessTokenByRefreshTokenParams; import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.service.Rp; @@ -58,12 +58,12 @@ public CommandResponse execute(GetAccessTokenByRefreshTokenParams params) throws } else { LOG.error("No response from TokenClient"); } - } catch (ErrorResponseException e) { + } catch (HttpException e) { throw e; } catch (Exception e) { LOG.error(e.getMessage(), e); } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + throw HttpException.internalError(); } private String scopeAsString(GetAccessTokenByRefreshTokenParams params) throws UnsupportedEncodingException { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java index 39c175ad0..618b9bfdc 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java @@ -14,9 +14,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.GetClientTokenParams; import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import java.io.UnsupportedEncodingException; @@ -54,7 +54,7 @@ public CommandResponse execute(GetClientTokenParams params) { SignatureAlgorithm algorithm = SignatureAlgorithm.fromString(params.getAlgorithm()); if (algorithm == null) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_ALGORITHM); + throw new HttpException(ErrorResponseCode.INVALID_ALGORITHM); } TokenRequest tokenRequest = new TokenRequest(GrantType.CLIENT_CREDENTIALS); @@ -89,12 +89,12 @@ public CommandResponse execute(GetClientTokenParams params) { LOG.error("No response from TokenClient"); LOG.error("Please check AS logs for more details (oxauth.log for CE)."); } - } catch (ErrorResponseException e) { + } catch (HttpException e) { throw e; } catch (Exception e) { LOG.error(e.getMessage(), e); } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + throw HttpException.internalError(); } private String scopeAsString(GetClientTokenParams params) throws UnsupportedEncodingException { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java index a5bb513c7..dc8dc6752 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java @@ -8,9 +8,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.GetLogoutUrlParams; import org.xdi.oxd.common.response.LogoutResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.ConfigurationService; import org.xdi.oxd.server.service.Rp; @@ -58,7 +58,7 @@ public CommandResponse execute(GetLogoutUrlParams params) throws Exception { } LOG.error("Failed to get end_session_endpoint at: " + getDiscoveryService().getConnectDiscoveryUrl(site)); - throw new ErrorResponseException(ErrorResponseCode.FAILED_TO_GET_END_SESSION_ENDPOINT); + throw new HttpException(ErrorResponseCode.FAILED_TO_GET_END_SESSION_ENDPOINT); } String uri = endSessionEndpoint; diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java index b6f7dfe7e..11b1e6201 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java @@ -11,9 +11,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.GetTokensByCodeParams; import org.xdi.oxd.common.response.GetTokensByCodeResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; import java.util.HashMap; @@ -63,12 +63,12 @@ public CommandResponse execute(GetTokensByCodeParams params) throws Exception { if (Strings.isNullOrEmpty(response.getIdToken())) { LOG.error("id_token is not returned. Please check whether 'openid' scope is present for 'get_authorization_url' command"); - throw new ErrorResponseException(ErrorResponseCode.NO_ID_TOKEN_RETURNED); + throw new HttpException(ErrorResponseCode.NO_ID_TOKEN_RETURNED); } if (Strings.isNullOrEmpty(response.getAccessToken())) { LOG.error("access_token is not returned"); - throw new ErrorResponseException(ErrorResponseCode.NO_ACCESS_TOKEN_RETURNED); + throw new HttpException(ErrorResponseCode.NO_ACCESS_TOKEN_RETURNED); } final Jwt idToken = Jwt.parse(response.getIdToken()); @@ -103,13 +103,13 @@ public CommandResponse execute(GetTokensByCodeParams params) throws Exception { private void validate(GetTokensByCodeParams params) { if (Strings.isNullOrEmpty(params.getCode())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_CODE); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_CODE); } if (Strings.isNullOrEmpty(params.getState())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_STATE); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_STATE); } if (!getStateService().isStateValid(params.getState())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_STATE_NOT_VALID); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_STATE_NOT_VALID); } } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java index c6c6240a1..055c85285 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java @@ -20,9 +20,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.RegisterSiteParams; import org.xdi.oxd.common.response.RegisterSiteResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.model.UmaResource; import org.xdi.oxd.server.service.Rp; @@ -79,12 +79,12 @@ public RegisterSiteResponse execute_(RegisterSiteParams params) { public CommandResponse execute(RegisterSiteParams params) { try { return okResponse(execute_(params)); - } catch (ErrorResponseException e) { + } catch (HttpException e) { throw e; } catch (Exception e) { LOG.error(e.getMessage(), e); } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + throw HttpException.internalError(); } private void validateParametersAndFallbackIfNeeded(RegisterSiteParams params) { @@ -95,7 +95,7 @@ private void validateParametersAndFallbackIfNeeded(RegisterSiteParams params) { LOG.warn("'op_host' is not set for parameter: " + params + ". Look up at configuration file for fallback of 'op_host'"); String fallbackOpHost = fallback.getOpHost(); if (Strings.isNullOrEmpty(fallbackOpHost)) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_OP_HOST); + throw new HttpException(ErrorResponseCode.INVALID_OP_HOST); } LOG.warn("Fallback to op_host: " + fallbackOpHost + ", from configuration file."); params.setOpHost(fallbackOpHost); @@ -119,7 +119,7 @@ private void validateParametersAndFallbackIfNeeded(RegisterSiteParams params) { params.setAuthorizationRedirectUri(fallback.getAuthorizationRedirectUri()); } if (!Utils.isValidUrl(params.getAuthorizationRedirectUri())) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_AUTHORIZATION_REDIRECT_URI); + throw new HttpException(ErrorResponseCode.INVALID_AUTHORIZATION_REDIRECT_URI); } //post_logout_redirect_uri @@ -176,7 +176,7 @@ private void validateParametersAndFallbackIfNeeded(RegisterSiteParams params) { params.setScope(fallback.getScope()); } if (params.getScope() == null || params.getScope().isEmpty()) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_SCOPE); + throw new HttpException(ErrorResponseCode.INVALID_SCOPE); } // acr_values @@ -236,7 +236,7 @@ private RegisterResponse registerClient(RegisterSiteParams params) { if (Strings.isNullOrEmpty(registrationEndpoint)) { LOG.error("This OP (" + params.getOpHost() + ") does not provide registration_endpoint. It means that oxd is not able dynamically register client. " + "Therefore it is required to obtain/register client manually on OP site and provide client_id and client_secret to oxd register_site command."); - throw new ErrorResponseException(ErrorResponseCode.NO_REGISTRATION_ENDPOINT); + throw new HttpException(ErrorResponseCode.NO_REGISTRATION_ENDPOINT); } final RegisterClient registerClient = new RegisterClient(registrationEndpoint); @@ -285,7 +285,7 @@ private RegisterRequest createRegisterClientRequest(RegisterSiteParams params) { SignatureAlgorithm signatureAlgorithms = SignatureAlgorithm.fromString(params.getClientTokenEndpointAuthSigningAlg()); if (signatureAlgorithms == null) { LOG.error("Received invalid algorithm in `client_token_endpoint_auth_signing_alg` property. Value: " + params.getClientTokenEndpointAuthSigningAlg() ); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ALGORITHM); + throw new HttpException(ErrorResponseCode.INVALID_ALGORITHM); } request.setTokenEndpointAuthSigningAlg(signatureAlgorithms); rp.setTokenEndpointAuthSigningAlg(params.getClientTokenEndpointAuthSigningAlg()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java index 45f52c153..38eb3ba25 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java @@ -6,6 +6,7 @@ import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.RemoveSiteParams; import org.xdi.oxd.common.response.RemoveSiteResponse; +import org.xdi.oxd.server.HttpException; /** * @author yuriyz @@ -25,11 +26,11 @@ protected RemoveSiteOperation(Command command, Injector injector) { } @Override - public CommandResponse execute(RemoveSiteParams params) throws Exception { + public CommandResponse execute(RemoveSiteParams params) { String oxdId = getRp().getOxdId(); if (getRpService().remove(oxdId)) { return okResponse(new RemoveSiteResponse(oxdId)); } - return CommandResponse.createErrorResponse(ErrorResponseCode.FAILED_TO_REMOVE_SITE); + throw new HttpException(ErrorResponseCode.FAILED_TO_REMOVE_SITE); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java index b2c49bc87..6bd5935a1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java @@ -6,9 +6,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.RpGetClaimsGatheringUrlParams; import org.xdi.oxd.common.response.RpGetClaimsGatheringUrlResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; /** @@ -46,10 +46,10 @@ public CommandResponse execute(RpGetClaimsGatheringUrlParams params) { private void validate(RpGetClaimsGatheringUrlParams params) { if (StringUtils.isBlank(params.getTicket())) { - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_TICKET_PARAMETER); + throw new HttpException(ErrorResponseCode.NO_UMA_TICKET_PARAMETER); } if (StringUtils.isBlank(params.getClaimsRedirectUri())) { - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_CLAIMS_REDIRECT_URI_PARAMETER); + throw new HttpException(ErrorResponseCode.NO_UMA_CLAIMS_REDIRECT_URI_PARAMETER); } } } \ No newline at end of file diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java index 775203f4e..4ff6f0e48 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java @@ -17,6 +17,7 @@ import org.xdi.oxd.rs.protect.resteasy.ResourceRegistrar; import org.xdi.oxd.rs.protect.resteasy.RptPreProcessInterceptor; import org.xdi.oxd.rs.protect.resteasy.ServiceProvider; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.model.UmaResource; import org.xdi.oxd.server.service.Rp; @@ -128,10 +129,10 @@ public void clearPat() { private void validate(RsCheckAccessParams params) { if (Strings.isNullOrEmpty(params.getHttpMethod())) { - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_HTTP_METHOD); + throw new HttpException(ErrorResponseCode.NO_UMA_HTTP_METHOD); } if (Strings.isNullOrEmpty(params.getPath())) { - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_PATH_PARAMETER); + throw new HttpException(ErrorResponseCode.NO_UMA_PATH_PARAMETER); } } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java index 8b6718058..d66382000 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java @@ -15,7 +15,6 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.RsProtectParams; import org.xdi.oxd.common.response.RsProtectResponse; import org.xdi.oxd.rs.protect.Condition; @@ -24,6 +23,7 @@ import org.xdi.oxd.rs.protect.resteasy.PatProvider; import org.xdi.oxd.rs.protect.resteasy.ResourceRegistrar; import org.xdi.oxd.rs.protect.resteasy.ServiceProvider; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.model.UmaResource; import org.xdi.oxd.server.service.Rp; @@ -123,10 +123,10 @@ private void persist(ResourceRegistrar registrar, Rp site) throws IOException { private void validate(RsProtectParams params) { if (params.getResources() == null || params.getResources().isEmpty()) { - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT); + throw new HttpException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT); } if (!org.xdi.oxd.rs.protect.ResourceValidator.isHttpMethodUniqueInPath(params.getResources())) { - throw new ErrorResponseException(ErrorResponseCode.UMA_HTTP_METHOD_NOT_UNIQUE); + throw new HttpException(ErrorResponseCode.UMA_HTTP_METHOD_NOT_UNIQUE); } if (params.getResources() != null){ for (RsResource resource : params.getResources()) { @@ -138,7 +138,7 @@ private void validate(RsProtectParams params) { boolean nodeValid = JsonLogicNodeParser.isNodeValid(json); LOG.trace("Scope expression validator - Valid: " + nodeValid + ", expression: " + json); if (!nodeValid) { - throw new ErrorResponseException(ErrorResponseCode.UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION); + throw new HttpException(ErrorResponseCode.UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION); } } } @@ -151,7 +151,7 @@ private void validate(RsProtectParams params) { List existingUmaResources = rp.getUmaProtectedResources(); if (existingUmaResources != null && !existingUmaResources.isEmpty()) { if (params.getOverwrite() == null || !params.getOverwrite()) { - throw new ErrorResponseException(ErrorResponseCode.UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS); + throw new HttpException(ErrorResponseCode.UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS); } else { // remove existing resources, overwrite=true UmaMetadata discovery = getDiscoveryService().getUmaDiscoveryByOxdId(params.getOxdId()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java index 804c84f21..e3e69ddfe 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java @@ -14,9 +14,9 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.UpdateSiteParams; import org.xdi.oxd.common.response.UpdateSiteResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; import javax.ws.rs.HttpMethod; @@ -70,7 +70,7 @@ private void persistRp(Rp rp, UpdateSiteParams params) { private void updateRegisteredClient(Rp rp, UpdateSiteParams params) { if (StringUtils.isBlank(rp.getClientRegistrationClientUri())) { LOG.error("Registration client url is blank."); - throw new ErrorResponseException(ErrorResponseCode.INVALID_REGISTRATION_CLIENT_URL); + throw new HttpException(ErrorResponseCode.INVALID_REGISTRATION_CLIENT_URL); } final RegisterClient registerClient = new RegisterClient(rp.getClientRegistrationClientUri()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java index ab45535d2..3de081545 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java @@ -7,8 +7,8 @@ import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.ValidateParams; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; /** @@ -47,16 +47,16 @@ public CommandResponse execute(ValidateParams params) throws Exception { private void validateParams(ValidateParams params) { if (Strings.isNullOrEmpty(params.getCode())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_CODE); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_CODE); } if (Strings.isNullOrEmpty(params.getState())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_STATE); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_STATE); } if (!getStateService().isStateValid(params.getState())) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_STATE_NOT_VALID); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_STATE_NOT_VALID); } if (!Strings.isNullOrEmpty(params.getIdToken())) { - throw new ErrorResponseException(ErrorResponseCode.NO_ID_TOKEN_PARAM); + throw new HttpException(ErrorResponseCode.NO_ID_TOKEN_PARAM); } } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/Validator.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/Validator.java index 7c82958d5..25e47d009 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/Validator.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/Validator.java @@ -12,7 +12,7 @@ import org.xdi.oxauth.model.jwt.JwtClaimName; import org.xdi.oxauth.model.jwt.JwtHeaderName; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.PublicOpKeyService; import org.xdi.oxd.server.service.StateService; @@ -52,7 +52,7 @@ public void validateAccessToken(String accessToken) { } if (!rsaSigner.validateAccessToken(accessToken, idToken)) { LOG.trace("Hash from id_token does not match hash of the access_token (at_hash). access_token:" + accessToken + ", idToken: " + idToken + ", at_hash:" + atHash); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ACCESS_TOKEN_BAD_HASH); + throw new HttpException(ErrorResponseCode.INVALID_ACCESS_TOKEN_BAD_HASH); } } } @@ -60,7 +60,7 @@ public void validateAccessToken(String accessToken) { public void validateAuthorizationCode(String code) { if (!Strings.isNullOrEmpty(code)) { if (!rsaSigner.validateAuthorizationCode(code, idToken)) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_AUTHORIZATION_CODE_BAD_HASH); + throw new HttpException(ErrorResponseCode.INVALID_AUTHORIZATION_CODE_BAD_HASH); } } } @@ -78,7 +78,7 @@ public static RSASigner createRSASigner(Jwt jwt, OpenIdConfigurationResponse dis public void validateNonce(StateService stateService) { final String nonceFromToken = idToken.getClaims().getClaimAsString(JwtClaimName.NONCE); if (!stateService.isNonceValid(nonceFromToken)) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_NONCE); + throw new HttpException(ErrorResponseCode.INVALID_NONCE); } } @@ -103,7 +103,7 @@ public void validateIdToken(String nonce, String clientId) { if (!Strings.isNullOrEmpty(nonce) && !nonceFromToken.endsWith(nonce)) { LOG.error("ID Token has invalid nonce. Expected nonce: " + nonce + ", nonce from token is: " + nonceFromToken); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_NONCE); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_NONCE); } if (!clientId.equalsIgnoreCase(audienceFromToken)) { @@ -111,7 +111,7 @@ public void validateIdToken(String nonce, String clientId) { if (audAsList != null && audAsList.size() == 1) { if (!clientId.equalsIgnoreCase(audAsList.get(0))) { LOG.error("ID Token has invalid audience (string list). Expected audience: " + clientId + ", audience from token is: " + audAsList); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE); } } @@ -119,7 +119,7 @@ public void validateIdToken(String nonce, String clientId) { boolean equalsWithSingleValuedArray = ("[\"" + clientId + "\"]").equalsIgnoreCase(audienceFromToken); if (!equalsWithSingleValuedArray) { LOG.error("ID Token has invalid audience (single valued array). Expected audience: " + clientId + ", audience from token is: " + audienceFromToken); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_AUDIENCE); } } @@ -127,13 +127,13 @@ public void validateIdToken(String nonce, String clientId) { final Date now = new Date(); if (now.after(expiresAt)) { LOG.error("ID Token is expired. (It is after " + now + ")."); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_EXPIRED); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_EXPIRED); } // 1. validate issuer if (!issuer.equals(discoveryResponse.getIssuer())) { LOG.error("ID Token issuer is invalid. Token issuer: " + issuer + ", discovery issuer: " + discoveryResponse.getIssuer()); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_ISSUER); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_ISSUER); } // 2. validate signature @@ -149,14 +149,14 @@ public void validateIdToken(String nonce, String clientId) { if (!signature) { LOG.error("ID Token signature is invalid."); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_SIGNATURE); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_BAD_SIGNATURE); } else { this.rsaSigner = signerWithRefreshedKey; } } } catch (Exception e) { LOG.error(e.getMessage(), e); - throw new ErrorResponseException(ErrorResponseCode.INVALID_ID_TOKEN_UNKNOWN); + throw new HttpException(ErrorResponseCode.INVALID_ID_TOKEN_UNKNOWN); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/DiscoveryService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/DiscoveryService.java index 3f2c71711..e8266711d 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/DiscoveryService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/DiscoveryService.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.service; @@ -12,7 +12,7 @@ import org.xdi.oxauth.client.uma.UmaClientFactory; import org.xdi.oxauth.model.uma.UmaMetadata; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; +import org.xdi.oxd.server.HttpException; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; @@ -79,7 +79,7 @@ public OpenIdConfigurationResponse getConnectDiscoveryResponse(String opHost, St LOG.error(e.getMessage(), e); } LOG.error("Unable to fetch discovery information for op_host: {}", opHost); - throw new ErrorResponseException(ErrorResponseCode.NO_CONNECT_DISCOVERY_RESPONSE); + throw new HttpException(ErrorResponseCode.NO_CONNECT_DISCOVERY_RESPONSE); } public UmaMetadata getUmaDiscoveryByOxdId(String oxdId) { @@ -107,7 +107,7 @@ public UmaMetadata getUmaDiscovery(String opHost, String opDiscoveryPath) { LOG.error(e.getMessage(), e); } LOG.error("Unable to fetch UMA discovery information for op_host: {}", opHost); - throw new ErrorResponseException(ErrorResponseCode.NO_UMA_DISCOVERY_RESPONSE); + throw new HttpException(ErrorResponseCode.NO_UMA_DISCOVERY_RESPONSE); } public String getConnectDiscoveryUrl(Rp rp) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/UmaTokenService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/UmaTokenService.java index 9bbd4d723..3243eadf8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/UmaTokenService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/UmaTokenService.java @@ -18,10 +18,10 @@ import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.introspection.CorrectRptIntrospectionResponse; import org.xdi.oxd.common.params.RpGetRptParams; import org.xdi.oxd.common.response.RpGetRptResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.OxdServerConfiguration; import org.xdi.oxd.server.ServerLauncher; import org.xdi.oxd.server.Utils; @@ -121,7 +121,7 @@ public RpGetRptResponse getRpt(RpGetRptParams params) throws UnsupportedEncoding } LOG.error("Failed to get RPT for rp: " + rp); - throw new ErrorResponseException(ErrorResponseCode.FAILED_TO_GET_RPT); + throw new HttpException(ErrorResponseCode.FAILED_TO_GET_RPT); } public Pat getPat(String oxdId) { @@ -247,7 +247,7 @@ private UmaToken obtainTokenWithUserCredentials(OpenIdConfigurationResponse disc final String scope = response1.getScope(); final String authorizationCode = response1.getCode(); if (!state.equals(response1.getState())) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_STATE); + throw new HttpException(ErrorResponseCode.INVALID_STATE); } if (Util.allNotBlank(authorizationCode)) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/ValidationService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/ValidationService.java index 444ab26f8..b0761b72a 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/ValidationService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/ValidationService.java @@ -6,8 +6,8 @@ import org.slf4j.LoggerFactory; import org.xdi.oxauth.model.common.IntrospectionResponse; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; import org.xdi.oxd.common.params.*; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.OxdServerConfiguration; import org.xdi.oxd.server.ServerLauncher; import org.xdi.util.Pair; @@ -20,21 +20,21 @@ public class ValidationService { private static final Logger LOG = LoggerFactory.getLogger(ValidationService.class); - public void notNull(IParams params) { + private void notNull(IParams params) { if (params == null) { - throw new ErrorResponseException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); + throw new HttpException(ErrorResponseCode.INTERNAL_ERROR_NO_PARAMS); } } public void notBlankOxdId(String oxdId) { if (Strings.isNullOrEmpty(oxdId)) { - throw new ErrorResponseException(ErrorResponseCode.BAD_REQUEST_NO_OXD_ID); + throw new HttpException(ErrorResponseCode.BAD_REQUEST_NO_OXD_ID); } } public void notBlankOpHost(String opHost) { if (Strings.isNullOrEmpty(opHost)) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_OP_HOST); + throw new HttpException(ErrorResponseCode.INVALID_OP_HOST); } } @@ -57,7 +57,7 @@ public Pair validate(IParams params) { return new Pair<>(rp, false); } } - } catch (ErrorResponseException e) { + } catch (HttpException e) { // ignore } catch (Exception e) { LOG.error("Failed to identify RP. Message: " + e.getMessage(), e); @@ -101,7 +101,7 @@ private boolean validate(HasProtectionAccessTokenParams params) { final String accessToken = params.getProtectionAccessToken(); if (StringUtils.isBlank(accessToken)) { - throw new ErrorResponseException(ErrorResponseCode.BLANK_PROTECTION_ACCESS_TOKEN); + throw new HttpException(ErrorResponseCode.BLANK_PROTECTION_ACCESS_TOKEN); } if (params instanceof RegisterSiteParams) { return false; // skip validation for site registration because we have to associate oxd_id with client_id, validation is performed inside operation @@ -115,21 +115,21 @@ private boolean validate(HasProtectionAccessTokenParams params) { LOG.trace("access_token: " + accessToken + ", introspection: " + introspectionResponse + ", clientId: " + rp.getClientId()); if (StringUtils.isBlank(introspectionResponse.getClientId())) { - throw new ErrorResponseException(ErrorResponseCode.NO_CLIENT_ID_IN_INTROSPECTION_RESPONSE); + throw new HttpException(ErrorResponseCode.NO_CLIENT_ID_IN_INTROSPECTION_RESPONSE); } if (!IntrospectionService.getScopes(introspectionResponse).contains("oxd")) { - throw new ErrorResponseException(ErrorResponseCode.PROTECTION_ACCESS_TOKEN_INSUFFICIENT_SCOPE); + throw new HttpException(ErrorResponseCode.PROTECTION_ACCESS_TOKEN_INSUFFICIENT_SCOPE); } if (introspectionResponse.getClientId().equals(rp.getClientId())) { return true; } - throw new ErrorResponseException(ErrorResponseCode.INVALID_PROTECTION_ACCESS_TOKEN); + throw new HttpException(ErrorResponseCode.INVALID_PROTECTION_ACCESS_TOKEN); } public IntrospectionResponse introspect(String accessToken, String oxdId) { if (StringUtils.isBlank(accessToken)) { - throw new ErrorResponseException(ErrorResponseCode.BLANK_PROTECTION_ACCESS_TOKEN); + throw new HttpException(ErrorResponseCode.BLANK_PROTECTION_ACCESS_TOKEN); } final RpService rpService = ServerLauncher.getInjector().getInstance(RpService.class); @@ -142,7 +142,7 @@ public IntrospectionResponse introspect(String accessToken, String oxdId) { if (!response.isActive()) { LOG.debug("access_token is not active."); - throw new ErrorResponseException(ErrorResponseCode.INACTIVE_PROTECTION_ACCESS_TOKEN); + throw new HttpException(ErrorResponseCode.INACTIVE_PROTECTION_ACCESS_TOKEN); } return response; } @@ -154,7 +154,7 @@ public void validate(HasOxdIdParams params) { public Rp validate(Rp rp) { if (rp == null) { - throw new ErrorResponseException(ErrorResponseCode.INVALID_OXD_ID); + throw new HttpException(ErrorResponseCode.INVALID_OXD_ID); } notBlankOxdId(rp.getOxdId()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/service/RpServiceTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/service/RpServiceTest.java index 8229a54a6..63c8b8403 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/service/RpServiceTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/service/RpServiceTest.java @@ -3,7 +3,7 @@ import com.google.inject.Inject; import org.testng.annotations.*; import org.xdi.oxd.common.ErrorResponseCode; -import org.xdi.oxd.common.ErrorResponseException; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.guice.GuiceModule; import org.xdi.oxd.server.persistence.PersistenceService; @@ -86,8 +86,8 @@ public void remove() throws Exception { try { service.getRp(rp.getOxdId()); throw new AssertionError("RP is not removed."); - } catch (ErrorResponseException e) { - assertEquals(e.getErrorResponseCode(), ErrorResponseCode.INVALID_OXD_ID); + } catch (HttpException e) { + assertEquals(e.getCode(), ErrorResponseCode.INVALID_OXD_ID); } } From 062a8921524a1502867330b2b34e2c043d1423ec Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 4 Oct 2018 14:17:15 +0300 Subject: [PATCH 006/230] #225 : adapted tests according to new error handling --- .../io/swagger/client/api/RemoveSiteTest.java | 19 ++++++++----------- .../java/io/swagger/client/api/Tester.java | 11 +++++++++++ .../org/xdi/oxd/server/RsProtectTest.java | 14 ++++++++++---- .../java/org/xdi/oxd/server/TestUtils.java | 10 ++++++++++ 4 files changed, 39 insertions(+), 15 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java index 75bdb31af..735b389af 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java @@ -1,6 +1,6 @@ package io.swagger.client.api; -import io.swagger.client.ApiResponse; +import io.swagger.client.ApiException; import io.swagger.client.model.RegisterSiteResponseData; import io.swagger.client.model.RemoveSiteParams; import io.swagger.client.model.RemoveSiteResponse; @@ -37,15 +37,12 @@ public void testRemoveSiteWithInvalidOxdId() throws Exception { RemoveSiteParams params = new RemoveSiteParams(); params.setOxdId(someRandomId); - ApiResponse apiResponse = api.removeSiteWithHttpInfo(Tester.getAuthorization(), params); - - assertEquals(apiResponse.getStatusCode(), 200); // todo 404 - assertTrue("error".equalsIgnoreCase(apiResponse.getData().getStatus())); - assertNotNull(apiResponse.getData()); - assertNotNull(apiResponse.getData().getData()); - assertEquals(apiResponse.getData().getData().getError(), ErrorResponseCode.INVALID_OXD_ID.getCode()); - + try { + api.removeSite(Tester.getAuthorization(), params); + } catch (ApiException e) { + assertEquals(e.getCode(), 400); + assertEquals(Tester.asError(e).getError(), ErrorResponseCode.INVALID_OXD_ID.getCode()); + } + throw new AssertionError("Expected 400 error but got successful result."); } - - } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java index 086465437..548e0256a 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java @@ -8,7 +8,10 @@ import io.swagger.client.model.GetClientTokenParams; import io.swagger.client.model.GetClientTokenResponseData; import io.swagger.client.model.RegisterSiteResponseData; +import org.xdi.oxd.common.CoreUtils; +import org.xdi.oxd.common.ErrorResponse; +import java.io.IOException; import java.util.List; import java.util.concurrent.TimeUnit; @@ -105,4 +108,12 @@ public static RegisterSiteResponseData getSetupData() { public static Boolean isTokenProtectionEnabled() { return isTokenProtectionEnabled; } + + public static ErrorResponse asError(String entity) throws IOException { + return CoreUtils.createJsonMapper().readValue(entity, ErrorResponse.class); + } + + public static ErrorResponse asError(ApiException e) throws IOException { + return asError(e.getResponseBody()); + } } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java index dd0757c05..566dec887 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java @@ -7,13 +7,13 @@ import org.xdi.oxd.client.ClientInterface; import org.xdi.oxd.client.RsProtectParams2; import org.xdi.oxd.common.CoreUtils; -import org.xdi.oxd.common.ErrorResponse; import org.xdi.oxd.common.params.RsCheckAccessParams; import org.xdi.oxd.common.response.RegisterSiteResponse; import org.xdi.oxd.common.response.RsCheckAccessResponse; import org.xdi.oxd.common.response.RsProtectResponse; import org.xdi.oxd.rs.protect.RsResource; +import javax.ws.rs.BadRequestException; import java.io.IOException; import java.util.List; @@ -53,9 +53,15 @@ public void overwriteFalse(String host, String redirectUrl, String opHost, Strin params.setOxdId(site.getOxdId()); params.setResources(Jackson2.createJsonMapper().readTree(CoreUtils.asJsonSilently(resources))); - ErrorResponse errorResponse = client.umaRsProtect(Tester.getAuthorization(), params).dataAsResponse(ErrorResponse.class); - assertNotNull(errorResponse); - assertEquals(errorResponse.getError(), "uma_protection_exists"); + try { + client.umaRsProtect(Tester.getAuthorization(), params); + } catch (BadRequestException e) { + assertEquals("uma_protection_exists", TestUtils.asError(e).getError()); + return; + } + + throw new AssertionError("Expected 400 (bad request) but got successful result."); + } @Parameters({"host", "redirectUrl", "opHost", "rsProtect"}) diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java b/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java index 3035dd8f5..9aa72a91f 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java @@ -1,7 +1,11 @@ package org.xdi.oxd.server; import org.apache.commons.lang.StringUtils; +import org.xdi.oxd.common.CoreUtils; +import org.xdi.oxd.common.ErrorResponse; +import javax.ws.rs.WebApplicationException; +import java.io.IOException; import java.util.List; import static junit.framework.Assert.assertTrue; @@ -23,4 +27,10 @@ public static void notEmpty(String str) { public static void notEmpty(List str) { assertTrue(str != null && !str.isEmpty() && StringUtils.isNotBlank(str.get(0))); } + + public static ErrorResponse asError(WebApplicationException e) throws IOException { + final Object entity = e.getResponse().getEntity(); + System.out.println(entity); + return CoreUtils.createJsonMapper().readValue((String) entity, ErrorResponse.class); + } } From 33e22bebc3bcf2e51caa2baaf8813a9bb620220c Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 4 Oct 2018 14:22:43 +0300 Subject: [PATCH 007/230] #225 : make sure media type is set for HttpException, so we can correctly pass it to the client. --- oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java index d553b95c8..8e0e9f145 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/HttpException.java @@ -5,6 +5,7 @@ import org.xdi.oxd.common.ErrorResponseCode; import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.Objects; @@ -16,7 +17,7 @@ public class HttpException extends WebApplicationException { private final ErrorResponseCode code; public HttpException(ErrorResponseCode code) { - super(Response.status(code.getHttpStatus()).entity(CoreUtils.asJsonSilently(new ErrorResponse(code))).build()); + super(Response.status(code.getHttpStatus()).type(MediaType.APPLICATION_JSON_TYPE).entity(CoreUtils.asJsonSilently(new ErrorResponse(code))).build()); this.code = code; } From a46d75b3842c2274fd1fd3cbd9a0d7e8f313ee3d Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 4 Oct 2018 16:45:46 +0300 Subject: [PATCH 008/230] #225 : fixing tests --- .../io/swagger/client/api/RemoveSiteTest.java | 1 + .../test/java/org/xdi/oxd/server/Base.java | 22 +++++++++++++++++++ .../org/xdi/oxd/server/RsProtectTest.java | 1 - .../java/org/xdi/oxd/server/TestUtils.java | 14 ++++++++++-- .../src/test/resources/oxd-server-dev.yml | 4 ++-- 5 files changed, 37 insertions(+), 5 deletions(-) create mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/Base.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java index 735b389af..47552ef0d 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java @@ -42,6 +42,7 @@ public void testRemoveSiteWithInvalidOxdId() throws Exception { } catch (ApiException e) { assertEquals(e.getCode(), 400); assertEquals(Tester.asError(e).getError(), ErrorResponseCode.INVALID_OXD_ID.getCode()); + return; } throw new AssertionError("Expected 400 error but got successful result."); } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/Base.java b/oxd-server/src/test/java/org/xdi/oxd/server/Base.java new file mode 100644 index 000000000..b443de146 --- /dev/null +++ b/oxd-server/src/test/java/org/xdi/oxd/server/Base.java @@ -0,0 +1,22 @@ +package org.xdi.oxd.server; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Parameters; + +/** + * @author Yuriy Zabrovarnyy + */ +public class Base { + + @Parameters({"host", "opHost", "redirectUrl"}) + @BeforeClass + public static void beforeClass(String host, String opHost, String redirectUrl) { + SetUpTest.beforeSuite(host, opHost, redirectUrl); + } + + @AfterClass + public static void afterClass() { + SetUpTest.afterSuite(); + } +} diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java index 566dec887..2b8180728 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java @@ -61,7 +61,6 @@ public void overwriteFalse(String host, String redirectUrl, String opHost, Strin } throw new AssertionError("Expected 400 (bad request) but got successful result."); - } @Parameters({"host", "redirectUrl", "opHost", "rsProtect"}) diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java b/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java index 9aa72a91f..7e78837ba 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/TestUtils.java @@ -1,11 +1,13 @@ package org.xdi.oxd.server; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.ErrorResponse; import javax.ws.rs.WebApplicationException; import java.io.IOException; +import java.io.InputStream; import java.util.List; import static junit.framework.Assert.assertTrue; @@ -30,7 +32,15 @@ public static void notEmpty(List str) { public static ErrorResponse asError(WebApplicationException e) throws IOException { final Object entity = e.getResponse().getEntity(); - System.out.println(entity); - return CoreUtils.createJsonMapper().readValue((String) entity, ErrorResponse.class); + String entityAsString = null; + if (entity instanceof String) { + entityAsString = (String) entity; + } else if (entity instanceof InputStream) { + entityAsString = IOUtils.toString((InputStream) entity, "UTF-8"); + } else { + throw new RuntimeException("Failed to identify type of the entity"); + } + System.out.println(entityAsString); + return CoreUtils.createJsonMapper().readValue(entityAsString, ErrorResponse.class); } } diff --git a/oxd-server/src/test/resources/oxd-server-dev.yml b/oxd-server/src/test/resources/oxd-server-dev.yml index 8cfa761b8..cc1050885 100644 --- a/oxd-server/src/test/resources/oxd-server-dev.yml +++ b/oxd-server/src/test/resources/oxd-server-dev.yml @@ -30,13 +30,13 @@ server: port: 8084 - type: https port: 8443 - keyStorePath: C:\U\projects\g\oxd\oxd-server\src\test\resources\oxd-server.keystore + keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore keyStorePassword: example validateCerts: false adminConnectors: - type: https port: 8444 - keyStorePath: C:\U\projects\g\oxd\oxd-server\src\test\resources\oxd-server.keystore + keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore keyStorePassword: example validateCerts: false From 4bb50e040fcee94cafc194d2b7a0f9b123d9fb19 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 4 Oct 2018 16:53:24 +0300 Subject: [PATCH 009/230] #225 : clean up --- .../client/api/IntrospectAccessTokenTest.java | 11 +-- .../oxd/server/IntrospectAccessTokenTest.java | 13 +--- .../xdi/oxd/server/kong/KongApiService.java | 44 ----------- .../org/xdi/oxd/server/kong/KongClient.java | 22 ------ .../org/xdi/oxd/server/kong/KongTest.java | 77 ------------------- .../xdi/oxd/server/kong/MockBinService.java | 20 ----- 6 files changed, 7 insertions(+), 180 deletions(-) delete mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/kong/KongApiService.java delete mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/kong/KongClient.java delete mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/kong/KongTest.java delete mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/kong/MockBinService.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index a64f94399..c9d0b9c70 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -75,7 +75,6 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep IntrospectAccessTokenResponseData responseData = apiIatResponse.getData().getData(); assertNotNull(responseData); - // verify client is NOT active assertFalse(responseData.isActive()); } @@ -92,12 +91,10 @@ public void testWithInvalidAuthorization(String opHost, String redirectUrl) thro introspectParams.setOxdId(setupResponse.getOxdId()); introspectParams.setAccessToken(tokenResponseData.getAccessToken()); - final String invalidAuthString = "Bearer " + "NotAuthorized"; - final ApiResponse introApiResponse = - client.introspectAccessTokenWithHttpInfo(invalidAuthString, introspectParams); + final String invalidAuthString = "Bearer NotAuthorized"; + final ApiResponse introApiResponse = client.introspectAccessTokenWithHttpInfo(invalidAuthString, introspectParams); - //Fixme: Status code should be 401 - assertTrue(introApiResponse.getStatusCode() == 200); + assertEquals(403,introApiResponse.getStatusCode()); IntrospectAccessTokenResponseData responseData = introApiResponse.getData().getData(); assertNotNull(responseData); @@ -117,6 +114,4 @@ private static GetClientTokenResponseData getGetClientTokenResponseData(String o assertNotNull(clientTokenResponse); return clientTokenResponse.getData(); } - - } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java index 9c1cc60fd..36f422a60 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java @@ -1,7 +1,6 @@ package org.xdi.oxd.server; import com.google.common.collect.Lists; -import junit.framework.Assert; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.xdi.oxauth.model.common.IntrospectionResponse; @@ -44,15 +43,11 @@ public void introspectAccessToken(String host, String opHost, String redirectUrl introspectParams.setAccessToken(tokenResponse.getAccessToken()); IntrospectionResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), introspectParams).dataAsResponse(IntrospectionResponse.class); + assertNotNull(introspectionResponse); assertTrue(introspectionResponse.isActive()); - - final Integer issuedAt = introspectionResponse.getIssuedAt(); - assertNotNull(issuedAt); - Integer expiresAt = introspectionResponse.getExpiresAt(); - assertNotNull(expiresAt); - assertTrue(expiresAt >= issuedAt); - //todo : add check for nbf when ready - + assertNotNull(introspectionResponse.getIssuedAt()); + assertNotNull(introspectionResponse.getExpiresAt()); + assertTrue(introspectionResponse.getExpiresAt() >= introspectionResponse.getIssuedAt()); } } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongApiService.java b/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongApiService.java deleted file mode 100644 index 800c6e54e..000000000 --- a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongApiService.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.xdi.oxd.server.kong; - -import org.codehaus.jackson.JsonNode; -import org.jboss.resteasy.client.ClientResponse; - -import javax.ws.rs.*; - -/** - * Created by yuriy on 17.10.16. - */ - -public interface KongApiService { - - @POST - @Consumes({"application/x-www-form-urlencoded"}) - @Produces({"application/json"}) - ClientResponse addApi(@FormParam("name") String name, - @FormParam("request_host") String requestHost, - @FormParam("request_path") String requestPath, - @FormParam("strip_request_path") Boolean stripRequestPath, - @FormParam("preserve_host") Boolean preserveHost, - @FormParam("upstream_url") String upstreamUrl); - - @GET - @Produces({"application/json"}) - ClientResponse getApis(); - - @Path("{apiId}") - @DELETE - ClientResponse deleteApi(@PathParam("apiId") String apiId); - - @POST - @Path("{apiId}/plugins/") - @Consumes({"application/x-www-form-urlencoded"}) - @Produces({"application/json"}) - ClientResponse addKongUmaRsPlugin(@PathParam("apiId") String apiId, - @FormParam("name") String name, - @FormParam("config.oxd_host") String oxdHost, - @FormParam("config.oxd_port") String oxdPort, - @FormParam("config.uma_server_host") String umaServerHost, - @FormParam("config.protection_document") String protectionDocumentJson - ); - -} diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongClient.java b/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongClient.java deleted file mode 100644 index 57e9b1e58..000000000 --- a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongClient.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.xdi.oxd.server.kong; - -import org.jboss.resteasy.client.ProxyFactory; - -/** - * Created by yuriy on 17.10.16. - */ -public class KongClient { - - public static final String API = "/apis"; - - private KongClient() { - } - - public static KongApiService createApiService(String url) { - return ProxyFactory.create(KongApiService.class, url + API); - } - - public static MockBinService createMockBinService(String url) { - return ProxyFactory.create(MockBinService.class, url); - } -} diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongTest.java deleted file mode 100644 index c4d4a45a0..000000000 --- a/oxd-server/src/test/java/org/xdi/oxd/server/kong/KongTest.java +++ /dev/null @@ -1,77 +0,0 @@ -package org.xdi.oxd.server.kong; - -import com.google.common.base.Strings; -import org.codehaus.jackson.JsonNode; -import org.jboss.resteasy.client.ClientResponse; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Parameters; -import org.testng.annotations.Test; - -import javax.ws.rs.core.Response; -import java.io.IOException; - -import static junit.framework.Assert.assertTrue; - -/** - * Created by yuriy on 16.10.16. - */ -public class KongTest { - - private static String apiId; - - @Parameters({"kongAdminUrl", "kongApiRequestHost", "kongApiUpstreamUrl"}) - @BeforeClass - public void setup(String kongAdminUrl, String kongApiRequestHost, String kongApiUpstreamUrl) { - KongApiService apiService = KongClient.createApiService(kongAdminUrl); - ClientResponse addResponse = apiService.addApi(kongApiRequestHost, kongApiRequestHost, null, false, false, kongApiUpstreamUrl); - System.out.println("POST /apis status: " + addResponse.getStatus() + ", entity: " + addResponse.getEntity()); - - apiId = addResponse.getEntity().get("id").asText(); - assertTrue(!Strings.isNullOrEmpty(apiId)); - } - - @Parameters({"kongAdminUrl", "kongApiRequestHost", "kongApiUpstreamUrl"}) - @AfterClass - public void cleanup(String kongAdminUrl, String kongApiRequestHost, String kongApiUpstreamUrl) { - KongApiService apiService = KongClient.createApiService(kongAdminUrl); - ClientResponse deleteResponse = apiService.deleteApi(apiId); - System.out.println("DELETE /apis status: " + deleteResponse.getStatus() + ", entity: " + deleteResponse.getEntity()); - - assertTrue(deleteResponse.getStatus() == Response.Status.NO_CONTENT.getStatusCode()); - } - - @Parameters({"kongAdminUrl", "kongApiRequestHost", "kongProxyUrl", "protectionDocument", - "oxdHost", "oxdPort", "opHost", "scope", "redirectUrl"}) - @Test - public void test(String kongAdminUrl, String kongApiRequestHost, String kongProxyUrl, String protectionDocument, - String oxdHost, int oxdPort, String opHost, String scope, String redirectUrl) throws IOException { - - // 1. call without protection - MockBinService mockBinService = KongClient.createMockBinService(kongProxyUrl); - ClientResponse mockResponse = mockBinService.status200Hello(kongApiRequestHost, ""); - System.out.println("GET /status/200 status: " + mockResponse.getStatus() + ", entity: " + mockResponse.getEntity()); - assertTrue(mockResponse.getStatus() == Response.Status.OK.getStatusCode()); - - // 2. protect with kong-uma-rs - KongApiService apiService = KongClient.createApiService(kongAdminUrl); - ClientResponse addPluginResponse = apiService.addKongUmaRsPlugin(apiId, "kong-uma-rs", oxdHost, Integer.toString(oxdPort), opHost, protectionDocument); - System.out.println("POST /{api}/plugins/ status: " + addPluginResponse.getStatus() + ", entity: " + addPluginResponse.getEntity()); - assertTrue(addPluginResponse.getStatus() == Response.Status.CREATED.getStatusCode()); - - // 3. call api (must be unauthorized) - mockResponse = mockBinService.status200Hello(kongApiRequestHost, ""); - System.out.println("GET /status/200 status: " + mockResponse.getStatus() + ", entity: " + mockResponse.getEntity()); - assertTrue(mockResponse.getStatus() == Response.Status.UNAUTHORIZED.getStatusCode()); - - // todo - Upgrade kong. Kong supports UMA 1.0.1 (it does not support UMA 2). - // 4. obtain token with correct scope - String token = "";//getToken(oxdHost, oxdPort, opHost, redirectUrl, scope); -// System.out.println("Token: " + token); - - // 5. call api (must be unauthorized) - mockResponse = mockBinService.status200Hello(kongApiRequestHost, "Bearer " + token); - System.out.println("GET /status/200 status: " + mockResponse.getStatus() + ", entity: " + mockResponse.getEntity()); - assertTrue(mockResponse.getStatus() == Response.Status.OK.getStatusCode()); - } -} diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/kong/MockBinService.java b/oxd-server/src/test/java/org/xdi/oxd/server/kong/MockBinService.java deleted file mode 100644 index 57f5e2211..000000000 --- a/oxd-server/src/test/java/org/xdi/oxd/server/kong/MockBinService.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.xdi.oxd.server.kong; - -import org.codehaus.jackson.JsonNode; -import org.jboss.resteasy.client.ClientResponse; - -import javax.ws.rs.GET; -import javax.ws.rs.HeaderParam; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; - -/** - * Created by yuriy on 18.10.16. - */ -public interface MockBinService { - - @Path("/status/200/hello") - @GET - @Produces({"application/json"}) - ClientResponse status200Hello(@HeaderParam("Host") String host, @HeaderParam("Authorization") String authorization); -} From d371239f6db367eecefd2ebd86c7427e1784a49f Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 20:29:44 +0400 Subject: [PATCH 010/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index ae738f19e..0d9fc34d9 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -1,6 +1,6 @@ -%define name1 oxd-server -Name: oxd-server -Version: 3.1.4 +%define name1 oxd-server-3.1.4 +Name: oxd-server-3.1.4 +Version: 1 Release: 1.centos6 Summary: plugins for OpenID and UMA Group: System Environment/Daemons @@ -11,7 +11,7 @@ Source1: oxd-server.init.d Source2: oxd-https-extension Source3: oxd-server-default BuildArch: noarch -Conflicts: oxd-server +Conflicts: oxd-server-3.1.4 %description oxd - OpenID Connect and UMA plugins for @@ -55,7 +55,7 @@ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. -cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server +cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-3.1.4 %clean rm -rf $RPM_BUILD_ROOT @@ -72,18 +72,18 @@ if [ $? -ne 0 ]; then /usr/sbin/usermod -a -G gluu jetty fi -chown root:root /etc/default/oxd-server 2>&1 -chown jetty:jetty -R /opt/oxd-server 2>&1 -chmod 644 /etc/default/oxd-server 2>&1 +chown root:root /etc/default/oxd-server-3.1.4 2>&1 +chown jetty:jetty -R /opt/oxd-server-3.1.4 2>&1 +chmod 644 /etc/default/oxd-server-3.1.4 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x “/etc/init.d/oxd-server” ] || [ -e “/etc/init/oxd-server.conf” ]; then -service oxd-server stop || exit $? +if [ -x “/etc/init.d/oxd-server-3.1.4” ] || [ -e “/etc/init/oxd-server.conf” ]; then +service oxd-server-3.1.4 stop || exit $? fi -chkconfig --del oxd-server +chkconfig --del oxd-server-3.1.4 %files %defattr(-,root,root,-) @@ -93,7 +93,7 @@ chkconfig --del oxd-server /etc/init.d/oxd-https-extension %{_initddir}/%{name1} %{_initddir}/oxd-https-extension -/etc/default/oxd-server +/etc/default/oxd-server-3.1.4 /etc/oxd/* /var/log/oxd-server From 94d56345480cde5aca76247d0ad510c0da752139 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 21:19:23 +0400 Subject: [PATCH 011/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 0d9fc34d9..640eb54c4 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -6,7 +6,7 @@ Summary: plugins for OpenID and UMA Group: System Environment/Daemons License: MIT URL: http://www.gluu.org -Source0: %{name}-%{version}.tar.gz +Source0: %{name}.tar.gz Source1: oxd-server.init.d Source2: oxd-https-extension Source3: oxd-server-default From 0e4628c81a30df36ddf45831e01fd12ca4b62a41 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 21:50:27 +0400 Subject: [PATCH 012/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 640eb54c4..865b55be2 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -18,7 +18,7 @@ oxd - OpenID Connect and UMA plugins for Apache and nginx web containers %prep -%setup -qn %{name}-%{version} +%setup -qn %{name} %build #mvn clean package -U -Dmaven.test.skip=true From 0a81273afb662036d3a93cd0bc5deec0cc4d7836 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 22:09:16 +0400 Subject: [PATCH 013/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 865b55be2..afa4725ff 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -54,7 +54,7 @@ install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/%{name1}/lib/ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ -cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. +cp -a %{buildroot}/opt/oxd-server-3.1.4/conf/* %{buildroot}/etc/oxd/oxd-server/. cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-3.1.4 %clean From 39b6d9cc272fb7061d0ce6e6c314e6966c73538f Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 22:31:51 +0400 Subject: [PATCH 014/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index afa4725ff..167b2a533 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -38,7 +38,7 @@ install -m 755 %SOURCE1 %{buildroot}/etc/init.d/%{name1} install -m 755 %SOURCE2 %{buildroot}/etc/init.d/oxd-https-extension install -m 755 %SOURCE1 %{buildroot}/%{_initddir}/%{name1} install -m 755 %SOURCE2 %{buildroot}/%{_initddir}/oxd-https-extension -install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server +install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server-3.1.4 install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/%{name1}/bin install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/%{name1}/bin install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/%{name1}/conf/ From 0222721b19eee2da728401446f662254b60b0c35 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 23:22:16 +0400 Subject: [PATCH 015/230] Update changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index b94c795fe..1a1559a97 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -oxd-server (3.1.4-1~trusty+Ub14.04) trusty; urgency=low +oxd-server-3.1.4 (1-1~trusty+Ub14.04) trusty; urgency=low * Initial release (Closes: #1232) From 70b6bb5012604aefa14acc87600bee219aaf88ce Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 23:22:42 +0400 Subject: [PATCH 016/230] Update control --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index 1e8d1f4a8..de6c3f207 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: oxd-server +Source: oxd-server-3.1.4 Section: java Priority: optional Maintainer: Adrian Alves @@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 8.0.0), Standards-Version: 3.9.5 Homepage: http://www.gluu.org -Package: oxd-server +Package: oxd-server-3.1.4 Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, From 1f551ab278fa57176c693518bdf3b98550de7eff Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 23:23:52 +0400 Subject: [PATCH 017/230] Update oxd-server-default --- debian/oxd-server-default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-server-default b/debian/oxd-server-default index 1ddf941db..d8d49828d 100755 --- a/debian/oxd-server-default +++ b/debian/oxd-server-default @@ -2,7 +2,7 @@ JAVA_HOME=/opt/jre JAVA=$JAVA_HOME/bin/java OXD_LOGS=/var/log/oxd-server -OXD_HOME=/opt/oxd-server +OXD_HOME=/opt/oxd-server-3.1.4 CONF=/etc/oxd/oxd-server LIB=$OXD_HOME/lib From 900cc032507c8835619462f522c4db8041a5363a Mon Sep 17 00:00:00 2001 From: David Date: Thu, 4 Oct 2018 23:30:10 +0400 Subject: [PATCH 018/230] Update oxd-server-default --- debian/oxd-server-default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-server-default b/debian/oxd-server-default index d8d49828d..1ddf941db 100755 --- a/debian/oxd-server-default +++ b/debian/oxd-server-default @@ -2,7 +2,7 @@ JAVA_HOME=/opt/jre JAVA=$JAVA_HOME/bin/java OXD_LOGS=/var/log/oxd-server -OXD_HOME=/opt/oxd-server-3.1.4 +OXD_HOME=/opt/oxd-server CONF=/etc/oxd/oxd-server LIB=$OXD_HOME/lib From c8e99d0e9fbd5a58ca4d50bd734272b755873d00 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 01:02:17 +0400 Subject: [PATCH 019/230] Update rules --- debian/rules | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/debian/rules b/debian/rules index 434d4fe21..3814ec3e0 100755 --- a/debian/rules +++ b/debian/rules @@ -18,31 +18,31 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server/opt/oxd-server/conf/ - mkdir -p debian/oxd-server/opt/oxd-server/bin/ - mkdir -p debian/oxd-server/opt/oxd-server/lib/ - mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar - cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ - mkdir -p debian/oxd-server/var/log/ - mkdir -p debian/oxd-server/etc/oxd/oxd-server/ - mkdir -p debian/oxd-server/etc/default/ - cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. - #cp -a logs/oxd-server.log debian/oxd-server/var/log/ - cp -a debian/oxd-server-default debian/oxd-server/etc/default/oxd-server - cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension - rm -rf debian/oxd-server/opt/oxd-server/conf + mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/conf/ + mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/bin/ + mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/lib/ + mkdir -p debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ + cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server-3.1.4/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server-3.1.4/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/log4j.xml debian/oxd-server-3.1.4/opt/oxd-server/conf/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server-3.1.4/opt/oxd-server/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server-3.1.4/opt/oxd-server/bin/ + cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server-3.1.4/opt/oxd-server/lib/ + cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/oxd-https.keystore debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ + cp oxd-https-extension/oxd-https.yml debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server-3.1.4/opt/oxd-server/lib/ + mkdir -p debian/oxd-server-3.1.4/var/log/ + mkdir -p debian/oxd-server-3.1.4/etc/oxd/oxd-server/ + mkdir -p debian/oxd-server-3.1.4/etc/default/ + cp -a debian/oxd-server-3.1.4/opt/oxd-server/conf/* debian/oxd-server-3.1.4/etc/oxd/oxd-server/. + #cp -a logs/oxd-server.log debian/oxd-server-3.1.4/var/log/ + cp -a debian/oxd-server-default debian/oxd-server-3.1.4/etc/default/oxd-server + cp -a debian/oxd-https-extension-default debian/oxd-server-3.1.4/etc/default/oxd-https-extension + rm -rf debian/oxd-server-3.1.4/opt/oxd-server/conf override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh - chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server/etc/default/oxd-server + chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/oxd-start.sh + chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/lsox.sh + chmod 644 debian/oxd-server-3.1.4/etc/default/oxd-server From 6e483d2e1b226e96f16876e8d79e4bda6e588f65 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 01:29:33 +0400 Subject: [PATCH 020/230] Create oxd-server-3.1.4.init --- oxd-server-3.1.4.init | 528 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 528 insertions(+) create mode 100644 oxd-server-3.1.4.init diff --git a/oxd-server-3.1.4.init b/oxd-server-3.1.4.init new file mode 100644 index 000000000..16228d6eb --- /dev/null +++ b/oxd-server-3.1.4.init @@ -0,0 +1,528 @@ +#!/usr/bin/env bash + +# LSB Tags +### BEGIN INIT INFO +# Provides: oxd-server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: oxd-server start script. +# Description: Start oxd server. +### END INIT INFO + +# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: oxd server +# processname: oxd-server +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# The files will be checked for existence before being passed to oxd-server. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# OXD_HOME +# Where oxd is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# +# OXD_BASE +# Where your oxd server base directory is. If not set, the value from +# $OXD_HOME will be used. +# +# OXD_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run OXD_BASE and /tmp +# if not set. +# +# OXD_PID +# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid +# +# OXD_ARGS +# The default arguments to pass to oxd-server. +# +# OXD_USER +# if set, then used as a username to run the server as +# +# OXD_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when OXD_USER does not +# have shell access, e.g. /bin/false +# + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# oxd-server's hallmark +################################################## +OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" + + +################################################## +# Try to determine OXD_HOME if not set +################################################## +if [ -z "$OXD_HOME" ] +then + OXD_SH=$0 + case "$OXD_SH" in + /*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*) OXD_HOME=.. ;; + */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; + */*) OXD_HOME=. ;; + *) OXD_HOME=.. ;; + esac + + if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] + then + OXD_HOME= + fi +fi + + +################################################## +# No OXD_HOME yet? We're out of luck! +################################################## +if [ -z "$OXD_HOME" ]; then + echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$OXD_HOME" +OXD_HOME=$PWD + + +################################################## +# Set OXD_BASE +################################################## +if [ -z "$OXD_BASE" ]; then + OXD_BASE=$OXD_HOME +fi + +cd "$OXD_BASE" +OXD_BASE=$PWD + + +##################################################### +# Check that oxd server is where we think it is +##################################################### +if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" + echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$OXD_RUN" ] +then + OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$OXD_PID" ] +then + OXD_PID="$OXD_RUN/${NAME}.pid" +fi + +if [ -z "$OXD_STATE" ] +then + OXD_STATE=$OXD_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; +esac + + +OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if OXD_LOGS is defined +##################################################### +if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] +then + OXD_LOGS=$OXD_BASE/logs +fi +if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] +then + OXD_LOGS=$OXD_HOME/logs +fi +if [ "$OXD_LOGS" ] +then + + case "`uname`" in + CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add oxd server properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +OXD_HOME="`cygpath -w $OXD_HOME`" +OXD_BASE="`cygpath -w $OXD_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the oxd server will be started +##################################################### + +OXD_START="org.xdi.oxd.server.ServerLauncher" + +case "`uname`" in +CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID = $OXD_PID" + echo "OXD_START = $OXD_START" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi + +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + echo -n "Starting oxd server: " + + if (( NO_START )); then + echo "Not starting ${NAME} - NO_START=1"; + exit + fi + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + + start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + else + + if running $OXD_PID + then + echo "Already Running $(cat $OXD_PID)!" + exit 1 + fi + + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID" + chown "$OXD_USER" "$OXD_PID" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID" + fi + + fi + + if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null + then + if started "$OXD_STATE" "$OXD_PID" + then + echo "OK `date`" + else + echo "FAILED `date`" + exit 1 + fi + else + echo "ok `date`" + fi + + ;; + + stop) + echo -n "Stopping oxd server: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID" ] ; then + echo "ERROR: no pid found at $OXD_PID" + exit 1 + fi + + PID=$(cat "$OXD_PID" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID" + rm -f "$OXD_STATE" + echo OK + + ;; + + restart) + OXD_SH=$0 + > "$OXD_STATE" + + "$OXD_SH" stop "$@" + "$OXD_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running oxd server: " + + if running "$OXD_PID" + then + echo Already Running $(cat "$OXD_PID")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + if running "$OXD_PID" + then + echo "oxd server running pid=$(< "$OXD_PID")" + else + echo "oxd server NOT running" + fi + echo + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID = $OXD_PID" + echo "OXD_START = $OXD_START" + echo "OXD_LOGS = $OXD_LOGS" + echo "OXD_STATE = $OXD_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$OXD_PID" + then + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 From 8748d207f67ad85f9018f6af9a72141963693404 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 5 Oct 2018 10:08:51 +0300 Subject: [PATCH 021/230] #240 : removed `server_name` configuration property https://github.com/GluuFederation/oxd/issues/240 --- .../org/xdi/oxd/server/Configuration.java | 57 +---- .../java/org/xdi/oxd/server/Processor.java | 10 +- .../org/xdi/oxd/server/guice/GuiceModule.java | 5 +- .../xdi/oxd/server/license/LicenseFile.java | 184 --------------- .../license/LicenseFileUpdateService.java | 126 ---------- .../oxd/server/license/LicenseService.java | 221 ------------------ .../server/license/MacAddressProvider.java | 74 ------ .../org/xdi/oxd/server/op/BaseOperation.java | 7 +- .../oxd/server/op/LicenseStatusOperation.java | 23 +- .../server/service/ConfigurationService.java | 7 +- .../xdi/oxd/server/service/SocketService.java | 21 +- .../xdi/oxd/server/service/TimeService.java | 52 ----- oxd-server/src/main/resources/oxd-conf.json | 5 - .../test/resources/oxd-conf-test-h2-conf.json | 5 - .../test/resources/oxd-conf-test-redis.json | 5 - .../src/test/resources/oxd-conf-test.json | 5 - 16 files changed, 9 insertions(+), 798 deletions(-) delete mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFile.java delete mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFileUpdateService.java delete mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseService.java delete mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/license/MacAddressProvider.java delete mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/service/TimeService.java diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Configuration.java b/oxd-server/src/main/java/org/xdi/oxd/server/Configuration.java index f0eb51e42..d9c0ace80 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Configuration.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Configuration.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server; @@ -23,8 +23,6 @@ public class Configuration { private String registerClientAppType = "web"; // @JsonProperty(value = "register_client_response_types") private String registerClientResponesType = "code"; - @JsonProperty(value = "server_name") - private String serverName; @JsonProperty(value = "localhost_only") private Boolean localhostOnly; @JsonProperty(value = "use_client_authentication_for_pat") @@ -41,14 +39,6 @@ public class Configuration { private String cryptProviderKeyStorePassword; @JsonProperty(value = "crypt_provider_dn_name") private String cryptProviderDnName; - @JsonProperty(value = "license_id") - private String licenseId; - @JsonProperty(value = "public_key") - private String publicKey; - @JsonProperty(value = "public_password") - private String publicPassword; - @JsonProperty(value = "license_password") - private String licensePassword; @JsonProperty(value = "support-google-logout") private Boolean supportGoogleLogout = true; @JsonProperty(value = "state_expiration_in_minutes") @@ -100,14 +90,6 @@ public void setMigrationSourceFolderPath(String migrationSourceFolderPath) { this.migrationSourceFolderPath = migrationSourceFolderPath; } - public String getServerName() { - return serverName; - } - - public void setServerName(String serverName) { - this.serverName = serverName; - } - public Boolean getUma2AuthRegisterClaimsGatheringEndpointAsRedirectUriOfClient() { return uma2AuthRegisterClaimsGatheringEndpointAsRedirectUriOfClient; } @@ -164,38 +146,6 @@ public void setKeyStorePassword(String keyStorePassword) { this.keyStorePassword = keyStorePassword; } - public String getLicenseId() { - return licenseId; - } - - public String getLicensePassword() { - return licensePassword; - } - - public void setLicensePassword(String licensePassword) { - this.licensePassword = licensePassword; - } - - public String getPublicKey() { - return publicKey; - } - - public void setPublicKey(String publicKey) { - this.publicKey = publicKey; - } - - public String getPublicPassword() { - return publicPassword; - } - - public void setPublicPassword(String publicPassword) { - this.publicPassword = publicPassword; - } - - public void setLicenseId(String licenseId) { - this.licenseId = licenseId; - } - public String getKeyStorePath() { return keyStorePath; } @@ -283,7 +233,6 @@ public String toString() { ", timeOutInSeconds=" + timeOutInSeconds + ", registerClientAppType='" + registerClientAppType + '\'' + ", registerClientResponesType='" + registerClientResponesType + '\'' + - ", serverName='" + serverName + '\'' + ", localhostOnly=" + localhostOnly + ", useClientAuthenticationForPat=" + useClientAuthenticationForPat + ", trustAllCerts=" + trustAllCerts + @@ -292,10 +241,6 @@ public String toString() { ", cryptProviderKeyStorePath='" + cryptProviderKeyStorePath + '\'' + ", cryptProviderKeyStorePassword='" + cryptProviderKeyStorePassword + '\'' + ", cryptProviderDnName='" + cryptProviderDnName + '\'' + - ", licenseId='" + licenseId + '\'' + - ", publicKey='" + publicKey + '\'' + - ", publicPassword='" + publicPassword + '\'' + - ", licensePassword='" + licensePassword + '\'' + ", supportGoogleLogout=" + supportGoogleLogout + ", stateExpirationInMinutes=" + stateExpirationInMinutes + ", nonceExpirationInMinutes=" + nonceExpirationInMinutes + diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java index 365b3c37f..dae8735f0 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server; @@ -10,12 +10,9 @@ import org.slf4j.LoggerFactory; import org.xdi.oxd.common.*; import org.xdi.oxd.common.params.IParams; -import org.xdi.oxd.server.license.LicenseService; import org.xdi.oxd.server.op.IOperation; import org.xdi.oxd.server.op.OperationFactory; -import org.xdi.oxd.server.service.Rp; import org.xdi.oxd.server.service.ValidationService; -import org.xdi.util.Pair; import java.io.IOException; @@ -72,13 +69,10 @@ public CommandResponse process(Command command) { final IOperation operation = (IOperation) OperationFactory.create(command, ServerLauncher.getInjector()); if (operation != null) { IParams iParams = Convertor.asParams(operation.getParameterClass(), command); - Pair rpWithIsClientLocalPair = validationService.validate(iParams); + validationService.validate(iParams); CommandResponse operationResponse = operation.execute(iParams); if (operationResponse != null) { - if (operationResponse.getStatus() == ResponseStatus.OK && rpWithIsClientLocalPair != null) { // report usage only of operation is ok - ServerLauncher.getInjector().getInstance(LicenseService.class).notifyClientUsed(rpWithIsClientLocalPair.getFirst(), rpWithIsClientLocalPair.getSecond()); - } return operationResponse; } else { LOG.error("No response from operation. Command: " + command); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/guice/GuiceModule.java b/oxd-server/src/main/java/org/xdi/oxd/server/guice/GuiceModule.java index d18f42503..e3cb7908c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/guice/GuiceModule.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/guice/GuiceModule.java @@ -6,11 +6,10 @@ import com.google.inject.AbstractModule; import com.google.inject.Singleton; import org.xdi.oxd.server.Configuration; -import org.xdi.oxd.server.license.LicenseService; import org.xdi.oxd.server.persistence.H2PersistenceProvider; -import org.xdi.oxd.server.persistence.SqlPersistenceProvider; import org.xdi.oxd.server.persistence.PersistenceService; import org.xdi.oxd.server.persistence.PersistenceServiceImpl; +import org.xdi.oxd.server.persistence.SqlPersistenceProvider; import org.xdi.oxd.server.service.*; /** @@ -22,7 +21,6 @@ public class GuiceModule extends AbstractModule { @Override protected void configure() { - bind(LicenseService.class).in(Singleton.class); bind(ConfigurationService.class).in(Singleton.class); bind(SocketService.class).in(Singleton.class); bind(PublicOpKeyService.class).in(Singleton.class); @@ -34,7 +32,6 @@ protected void configure() { bind(MigrationService.class).in(Singleton.class); bind(DiscoveryService.class).in(Singleton.class); bind(ValidationService.class).in(Singleton.class); - bind(TimeService.class).in(Singleton.class); bind(StateService.class).in(Singleton.class); bind(Configuration.class).toProvider(ConfigurationService.class); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFile.java b/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFile.java deleted file mode 100644 index 60f8232fb..000000000 --- a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFile.java +++ /dev/null @@ -1,184 +0,0 @@ -/** - * All rights reserved -- Copyright 2015 Gluu Inc. - */ -package org.xdi.oxd.server.license; - -import com.google.common.base.Optional; -import com.google.common.base.Strings; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.codehaus.jackson.annotate.JsonIgnore; -import org.codehaus.jackson.annotate.JsonIgnoreProperties; -import org.codehaus.jackson.annotate.JsonProperty; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.CoreUtils; -import org.xdi.oxd.license.client.Jackson; - -import java.io.*; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 12/10/2014 - */ -@JsonIgnoreProperties(ignoreUnknown = true) -public class LicenseFile implements Serializable { - - public static final String LICENSE_FILE_NAME = ".oxd-license"; - - public static final String LICENSE_FILE_PATH = LICENSE_FILE_NAME; - - private static final Logger LOG = LoggerFactory.getLogger(LicenseFile.class); - - public static class MacAddress { - private static String MAC_ADDRESS = null; - - public static synchronized String getMacAddress() { - return MAC_ADDRESS; - } - - public static synchronized void setMacAddress(String macAddress) { - LOG.trace("MAC ADDRESS set to : " + macAddress); - MacAddress.MAC_ADDRESS = macAddress; - } - } - - @JsonProperty(value = "encoded_license") - private String encodedLicense; - @JsonProperty(value = "mac_address") - private String macAddress; - @JsonProperty(value = "license_id") - private String licenseId; - - @JsonIgnore - private long lastModified; - - public LicenseFile() { - } - - public LicenseFile(String encodedLicense, String macAddress, String licenseId) { - this.encodedLicense = encodedLicense; - this.macAddress = macAddress; - this.licenseId = licenseId; - } - - public String getEncodedLicense() { - return encodedLicense; - } - - public void setEncodedLicense(String encodedLicense) { - this.encodedLicense = encodedLicense; - } - - public String getMacAddress() { - return macAddress; - } - - public void setMacAddress(String macAddress) { - this.macAddress = macAddress; - } - - public long getLastModified() { - return lastModified; - } - - public void setLastModified(long lastModified) { - this.lastModified = lastModified; - } - - public String getLicenseId() { - return licenseId; - } - - public void setLicenseId(String licenseId) { - this.licenseId = licenseId; - } - - private static LicenseFile create(InputStream p_stream) { - try { - try { - LicenseFile licenseFile = CoreUtils.createJsonMapper().readValue(p_stream, LicenseFile.class); - if (licenseFile != null) { - if (!Strings.isNullOrEmpty(licenseFile.getMacAddress())) { - LicenseFile.MacAddress.setMacAddress(licenseFile.getMacAddress()); - } - return licenseFile; - } - } catch (Exception e) { - if (e.getMessage().startsWith("No content to map to Object")) { // quick trick to make it less verbose for empty file - LOG.error(e.getMessage()); - } else { - LOG.error(e.getMessage(), e); - } - } - return null; - } catch (Exception e) { - LOG.error(e.getMessage(), e); - return null; - } - } - - public static Optional load() { - InputStream inputStream = null; - try { - File file = getLicenseFile(); - inputStream = new FileInputStream(file); - LicenseFile licenseFile = create(inputStream); - if (licenseFile != null) { - licenseFile.setLastModified(file.lastModified()); - return Optional.of(licenseFile); - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } finally { - IOUtils.closeQuietly(inputStream); - } - return Optional.absent(); - } - - public static File getLicenseFile() throws IOException { - File file = new File(LICENSE_FILE_PATH); - if (!file.exists()) { - final boolean fileCreated = file.createNewFile(); - if (!fileCreated) { - throw new RuntimeException("Failed to create license file, path:" + file.getAbsolutePath()); - } - } - LOG.debug("License file location: " + file.getAbsolutePath()); - return file; - } - - public static boolean deleteContent() { - try { - final File file = getLicenseFile(); - if (file != null && file.exists()) { - FileUtils.write(file, ""); - LOG.info("Dropped content of license file"); - return true; - } else { - LOG.error("License file does not exist."); - } - } catch (IOException e) { - LOG.error("Failed to remove content of license file.", e); - } - return false; - } - - - public static boolean delete() throws IOException { - return getLicenseFile().delete(); - } - - public static boolean deleteSilently() { - try { - return delete(); - } catch (IOException e) { - LOG.error("Failed to delete license file.", e); - return false; - } - } - - public String asJson() { - return Jackson.asJsonSilently(this); - } -} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFileUpdateService.java b/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFileUpdateService.java deleted file mode 100644 index a40215f93..000000000 --- a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseFileUpdateService.java +++ /dev/null @@ -1,126 +0,0 @@ -/** - * All rights reserved -- Copyright 2015 Gluu Inc. - */ -package org.xdi.oxd.server.license; - -import com.google.common.base.Optional; -import com.google.common.base.Strings; -import org.apache.commons.io.FileUtils; -import org.jboss.resteasy.client.ClientResponseFailure; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.CoreUtils; -import org.xdi.oxd.license.client.GenerateWS; -import org.xdi.oxd.license.client.LicenseClient; -import org.xdi.oxd.license.client.data.LicenseResponse; -import org.xdi.oxd.server.Configuration; -import org.xdi.oxd.server.ShutdownException; -import org.xdi.oxd.server.service.HttpService; - -import java.io.File; -import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 12/10/2014 - */ - -public class LicenseFileUpdateService { - - private static final Logger LOG = LoggerFactory.getLogger(LicenseFileUpdateService.class); - - public static final String LICENSE_SERVER_ENDPOINT = "https://license.gluu.org/oxLicense"; - - private static final int ONE_HOUR_AS_MILLIS = 3600000; - private static final int _24_HOURS_AS_MILLIS = 24 * ONE_HOUR_AS_MILLIS; - public static final int RETRY_LIMIT = 3; - - private final Configuration conf; - private final HttpService httpService; - private AtomicInteger retry = new AtomicInteger(); - - LicenseFileUpdateService(Configuration conf, HttpService httpService) { - this.conf = conf; - this.httpService = httpService; - } - - public void start(Optional licenseFile) { - if (!licenseFile.isPresent() || !lastModifiedLessThan12HoursAgo(licenseFile.get().getLastModified())) { - updateLicenseFromServer(); - } - scheduleUpdatePinger(); - } - - private boolean lastModifiedLessThan12HoursAgo(long lastModified) { - long diff = System.currentTimeMillis() - lastModified; - return diff < _24_HOURS_AS_MILLIS; - } - - private void scheduleUpdatePinger() { - newExecutor().scheduleAtFixedRate(new Runnable() { - @Override - public void run() { - updateLicenseFromServer(); - } - }, 24, 24, TimeUnit.HOURS); - } - - private ScheduledExecutorService newExecutor() { - return Executors.newSingleThreadScheduledExecutor(CoreUtils.daemonThreadFactory()); - } - - public void updateLicenseFromServer() { - try { - final GenerateWS generateWS = LicenseClient.generateWs(LICENSE_SERVER_ENDPOINT, httpService.getClientExecutor()); - - final String macAddress = MacAddressProvider.macAddress(); - LOG.trace("Updating license, license_id: " + conf.getLicenseId() + ", retry: " + retry + " ... Mac address: " + macAddress); - - final List generatedLicenses = generateWS.generatePost(conf.getLicenseId(), macAddress); - if (generatedLicenses != null && !generatedLicenses.isEmpty() && !Strings.isNullOrEmpty(generatedLicenses.get(0).getEncodedLicense())) { - final File file = LicenseFile.getLicenseFile(); - if (file != null) { - final String json = new LicenseFile(generatedLicenses.get(0).getEncodedLicense(), macAddress, conf.getLicenseId()).asJson(); - FileUtils.write(file, json); - - retry.set(0); - LOG.info("License file updated successfully. Mac address: " + macAddress); - return; - } - } else { - retry.set(0); - LOG.info("No license update, licenseId: " + conf.getLicenseId()); - return; - } - } catch (ClientResponseFailure e) { - LOG.error(e.getMessage() + ", " + e.getResponse().getEntity(String.class), e); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - LOG.trace("Failed to update license file by licenseId: " + conf.getLicenseId()); - - retry.incrementAndGet(); - - if (isRetryLimitExceeded()) { - LicenseFile.deleteSilently(); - throw new ShutdownException("Shutdown server after trying to update license. Retry count: " + retry.get()); - } - - newExecutor().schedule(new Runnable() { - @Override - public void run() { - updateLicenseFromServer(); - } - }, 3, TimeUnit.HOURS); - } - - public boolean isRetryLimitExceeded() { - return retry.get() > RETRY_LIMIT; - } - - -} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseService.java b/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseService.java deleted file mode 100644 index f803f8cfb..000000000 --- a/oxd-server/src/main/java/org/xdi/oxd/server/license/LicenseService.java +++ /dev/null @@ -1,221 +0,0 @@ -/** - * All rights reserved -- Copyright 2015 Gluu Inc. - */ -package org.xdi.oxd.server.license; - -import com.google.common.base.Optional; -import com.google.common.base.Strings; -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import com.google.inject.Inject; -import org.apache.commons.lang.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.CoreUtils; -import org.xdi.oxd.license.client.LicenseClient; -import org.xdi.oxd.license.client.js.AppMetadata; -import org.xdi.oxd.license.client.js.LicenseMetadata; -import org.xdi.oxd.license.client.js.Product; -import org.xdi.oxd.license.client.js.StatisticUpdateRequest; -import org.xdi.oxd.license.validator.LicenseContent; -import org.xdi.oxd.license.validator.LicenseValidator; -import org.xdi.oxd.server.Configuration; -import org.xdi.oxd.server.ServerLauncher; -import org.xdi.oxd.server.ShutdownException; -import org.xdi.oxd.server.Utils; -import org.xdi.oxd.server.service.HttpService; -import org.xdi.oxd.server.service.Rp; -import org.xdi.oxd.server.service.TimeService; - -import javax.ws.rs.core.Response; -import java.util.Date; -import java.util.Properties; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 12/10/2014 - */ - -public class LicenseService { - - private static final Logger LOG = LoggerFactory.getLogger(LicenseService.class); - - private final Configuration conf; - private final LicenseFileUpdateService updateService; - private final TimeService timeService; - private final HttpService httpService; - - private volatile LicenseMetadata metadata = new LicenseMetadata(); - private volatile boolean licenseValid = true; - -// private final Cache clientUpdateCache = CacheBuilder.newBuilder() -// .maximumSize(100000) -// .expireAfterWrite(24, TimeUnit.HOURS) -// .build(); - - @Inject - public LicenseService(Configuration conf, HttpService httpService, TimeService timeService) { - this.conf = conf; - this.timeService = timeService; - this.updateService = new LicenseFileUpdateService(conf, httpService); - this.httpService = httpService; - } - - public void start() { -// validateConfiguration(); -// -// Optional licenseFile = LicenseFile.load(); -// -// // before license update, check existing license and make sure autoupdate=true, otherwise skip update -// if (validateLicense() && metadata != null && metadata.getAutoupdate() != null && -// !metadata.getAutoupdate()) { -// licenseValid = true; -// schedulePeriodicValidation(Utils.hoursDiff(new Date(), metadata.getExpirationDate())); -// return; // skip update procedure, autoupdate=false ! -// } -// -// this.updateService.start(licenseFile); -// -// licenseValid = validateLicense(); -// if (licenseValid) { -// schedulePeriodicValidation(1); -// } else { -// throw new ShutdownException("Failed to validate license, shutdown server ... "); -// } - } - -// private void validateConfiguration() { -// if (Strings.isNullOrEmpty(conf.getLicenseId())) { -// throw new ShutdownException("Unable to validate license. license_id is not set in oxd configuration."); -// } -// if (Strings.isNullOrEmpty(conf.getPublicKey())) { -// throw new ShutdownException("Unable to validate license. public_key is not set in oxd configuration."); -// } -// if (Strings.isNullOrEmpty(conf.getPublicPassword())) { -// throw new ShutdownException("Unable to validate license. public_password is not set in oxd configuration."); -// } -// } - - public LicenseMetadata getMetadata() { - return metadata; - } - - public boolean isLicenseValid() { - return true; - //return licenseValid && !updateService.isRetryLimitExceeded(); - } - -// private boolean validateLicense() { -// try { -// LOG.trace("Validating license ..."); -// -// metadata = null; -// licenseValid = false; -// -// Optional licenseFile = LicenseFile.load(); -// if (!licenseFile.isPresent() || Strings.isNullOrEmpty(licenseFile.get().getEncodedLicense())) { -// LOG.error("Failed to load license file : " + LicenseFile.getLicenseFile().getAbsolutePath()); -// return false; -// } -// -// if (StringUtils.isBlank(licenseFile.get().getLicenseId()) || !licenseFile.get().getLicenseId().equals(conf.getLicenseId())) { -// LOG.info(String.format("Deleting license file ... license id in file (%s) does not match license id from oxd-conf.json (%s)", licenseFile.get().getLicenseId(), conf.getLicenseId())); -// LicenseFile.deleteContent(); -// this.updateService.updateLicenseFromServer(); -// licenseFile = LicenseFile.load(); -// } -// -// LicenseContent licenseContent = LicenseValidator.validate( -// conf.getPublicKey(), -// conf.getPublicPassword(), -// conf.getLicensePassword(), -// licenseFile.get().getEncodedLicense(), -// Product.OXD, -// timeService.getCurrentLicenseServerTime() -// ); -// -// metadata = licenseContent.getMetadata(); -// licenseValid = true; -// -// LOG.trace("License is validated successfully."); -// LOG.trace("License data: " + metadata); -// return true; -// } catch (Exception e) { -// LOG.error(e.getMessage(), e); -// } -// return false; -// } -// -// private void schedulePeriodicValidation(int initialDelayInHours) { -// final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(CoreUtils.daemonThreadFactory()); -// executorService.scheduleAtFixedRate(new Runnable() { -// @Override -// public void run() { -// licenseValid = validateLicense(); -// } -// }, initialDelayInHours, 24, TimeUnit.HOURS); -// } - - public void notifyClientUsed(final Rp rp, final boolean isClientLocal) { -// CoreUtils.createExecutor().execute(new Runnable() { -// @Override -// public void run() { -// if (shouldNotifyAboutClientUsage(rp)) { -// notifyClientUsedImpl(rp, isClientLocal); -// } -// } -// }); - } - -// private boolean shouldNotifyAboutClientUsage(Rp rp) { -// boolean hasInCache = clientUpdateCache.getIfPresent(rp.getClientId()) != null; -// if (hasInCache) { -// return false; // skip update, client was updated already -// } -// clientUpdateCache.put(rp.getClientId(), rp); -// return true; -// } -// -// private void notifyClientUsedImpl(Rp rp, boolean isClientLocal) { -// try { -// String licenseId = conf.getLicenseId(); -// String clientId = rp.getClientId(); -// String oxdId = rp.getOxdId(); -// String clientName = rp.getClientName(); -// String macAddress = MacAddressProvider.macAddress(); -// -// StatisticUpdateRequest request = StatisticUpdateRequest.clientUpdate( -// licenseId, clientId, oxdId, clientName, macAddress, isClientLocal); -// request.setAppMetadata(appMetadata(rp.getOxdRpProgrammingLanguage(), conf.getServerName())); -// LOG.trace("Updating statistic ... , request: " + request); -// Response response = LicenseClient.statisticWs(LicenseFileUpdateService.LICENSE_SERVER_ENDPOINT, httpService.getClientExecutor()).update(request); -// if (response.getStatus() == 200) { -// LOG.trace("Updated statistic. oxdId: " + oxdId + ", response: " + response); -// } else { -// throw new RuntimeException("Failed to update statistic, rp: " + rp); -// } -// } catch (Exception e) { -// LOG.error("Failed to update statistic. Message: " + e.getMessage(), e); -// } -// } -// -// private static AppMetadata appMetadata(String programmingLanguage, String serverName) { -// AppMetadata appMetadata = new AppMetadata(); -// appMetadata.setAppName("oxd"); -// appMetadata.setAppVersion("3.1.3"); -// appMetadata.setProgrammingLanguage(programmingLanguage); -// -// Properties buildProperties = ServerLauncher.buildProperties(); -// if (buildProperties != null) { -// for (String key : buildProperties.stringPropertyNames()) { -// appMetadata.getData().put(key, buildProperties.getProperty(key)); -// } -// } -// appMetadata.getData().put("server_name", serverName); -// -// return appMetadata; -// } -} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/license/MacAddressProvider.java b/oxd-server/src/main/java/org/xdi/oxd/server/license/MacAddressProvider.java deleted file mode 100644 index 6a4c89f15..000000000 --- a/oxd-server/src/main/java/org/xdi/oxd/server/license/MacAddressProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.xdi.oxd.server.license; - -import com.google.common.base.Strings; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.util.Collections; -import java.util.UUID; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 15/11/2016 - */ - -public class MacAddressProvider { - - private static final Logger LOG = LoggerFactory.getLogger(MacAddressProvider.class); - - private static class Holder { - private static final String MAC_ADDRESS = obtainMacAddress(); - } - - private MacAddressProvider() { - } - - public static String macAddress() { - return Holder.MAC_ADDRESS; - } - - private static String obtainMacAddress() { - String macAddressFromFile = LicenseFile.MacAddress.getMacAddress(); - if (!Strings.isNullOrEmpty(macAddressFromFile)) { - LOG.trace("Mac address fetched from file: " + macAddressFromFile); - return macAddressFromFile; - } - try { - InetAddress ip = InetAddress.getLocalHost(); - LOG.trace("Generating new mac address ... ip: " + ip); - NetworkInterface network = NetworkInterface.getByInetAddress(ip); - if (network != null) { - byte[] mac = network.getHardwareAddress(); - if (mac != null && mac.length > 0) { - return macAsString(mac); - } - } else { - LOG.error("Failed to obtain network interface."); - } - - for (NetworkInterface networkInterface : Collections.list(NetworkInterface.getNetworkInterfaces())) { - byte[] mac = networkInterface.getHardwareAddress(); - - if (mac != null && mac.length > 0) { - return macAsString(mac); - } - } - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - - String uuid = UUID.randomUUID().toString(); - LOG.debug("Generated fallback UUID instead of mac address:" + uuid); - return uuid; - } - - private static String macAsString(byte[] mac) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < mac.length; i++) { - sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : "")); - } - return sb.toString(); - } -} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java index e41b3f0fc..3c451aeaa 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -17,7 +17,6 @@ import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.Configuration; import org.xdi.oxd.server.Convertor; -import org.xdi.oxd.server.license.LicenseService; import org.xdi.oxd.server.service.*; /** @@ -89,10 +88,6 @@ public StateService getStateService() { return getInstance(StateService.class); } - public LicenseService getLicenseService() { - return getInstance(LicenseService.class); - } - public DiscoveryService getDiscoveryService() { return getInstance(DiscoveryService.class); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/LicenseStatusOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/LicenseStatusOperation.java index 00265d922..516903956 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/LicenseStatusOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/LicenseStatusOperation.java @@ -4,14 +4,9 @@ package org.xdi.oxd.server.op; import com.google.inject.Injector; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.xdi.oxd.common.Command; import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.EmptyParams; -import org.xdi.oxd.common.response.LicenseStatusOpResponse; -import org.xdi.oxd.license.client.js.LicenseMetadata; -import org.xdi.oxd.server.license.LicenseService; /** * @author Yuriy Zabrovarnyy @@ -20,28 +15,12 @@ public class LicenseStatusOperation extends BaseOperation { - private static final Logger LOG = LoggerFactory.getLogger(LicenseStatusOperation.class); - protected LicenseStatusOperation(Command command, final Injector injector) { super(command, injector, EmptyParams.class); } @Override public CommandResponse execute(EmptyParams params) { - try { - final LicenseService licenseService = getInjector().getInstance(LicenseService.class); - final LicenseStatusOpResponse opResponse = new LicenseStatusOpResponse(); - opResponse.setValid(licenseService.isLicenseValid()); - - if (licenseService.isLicenseValid()) { - final LicenseMetadata metadata = licenseService.getMetadata(); - opResponse.setName(metadata.getLicenseName()); - } - - return okResponse(opResponse); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - return CommandResponse.INTERNAL_ERROR_RESPONSE; + return CommandResponse.OPERATION_IS_NOT_SUPPORTED; } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java index 40265bd42..38ae86e3b 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java @@ -37,7 +37,7 @@ public class ConfigurationService implements Provider { /** * Configuration file name. */ - public static final String FILE_NAME = Utils.isTestMode() ? TEST_FILE_NAME : "oxd-conf.json"; + private static final String FILE_NAME = Utils.isTestMode() ? TEST_FILE_NAME : "oxd-conf.json"; private Configuration configuration = null; private Rp defaultRp = null; @@ -70,11 +70,6 @@ public String getConfDirectoryPath() { public void load() { loadImpl(); Preconditions.checkNotNull(configuration, "Failed to load configuration."); - - if (StringUtils.isBlank(configuration.getServerName())) { - LOG.error("'server_name' configuration property is mandatory. Please provide value for it in oxd-conf.json file."); - throw new AssertionError("'server_name' configuration property is mandatory. Please provide value for it in oxd-conf.json file."); - } } private void loadImpl() { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/SocketService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/SocketService.java index 0dc827a40..f576dff19 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/SocketService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/SocketService.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.service; @@ -9,10 +9,7 @@ import org.slf4j.LoggerFactory; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.server.Configuration; -import org.xdi.oxd.server.ShutdownException; import org.xdi.oxd.server.SocketProcessor; -import org.xdi.oxd.server.license.LicenseFileUpdateService; -import org.xdi.oxd.server.license.LicenseService; import java.io.IOException; import java.net.InetAddress; @@ -45,24 +42,19 @@ public class SocketService { private Configuration conf; private HttpService httpService; - private TimeService timeService; /** * Avoid direct instance creation */ @Inject - public SocketService(Configuration conf, HttpService httpService, TimeService timeService) { + public SocketService(Configuration conf, HttpService httpService) { this.conf = conf; this.httpService = httpService; - this.timeService = timeService; } public void listenSocket() throws IOException { final int port = conf.getPort(); - final LicenseService licenseService = new LicenseService(conf, httpService, timeService); - licenseService.start(); - try { final Boolean localhostOnly = conf.getLocalhostOnly(); if (localhostOnly == null || localhostOnly) { @@ -81,15 +73,6 @@ public void listenSocket() throws IOException { while (!shutdown) { try { final Socket clientSocket = serverSocket.accept(); - - if (!licenseService.isLicenseValid()) { - LOG.error("License is invalid. Please check your license_id and make sure it is not expired."); - LOG.error("Unable to fetch valid license after " + LicenseFileUpdateService.RETRY_LIMIT + - " re-tries. Shutdown the server."); - throw new ShutdownException("Unable to fetch valid license after " + LicenseFileUpdateService.RETRY_LIMIT + - " re-tries. Shutdown the server."); - } - executorService().execute(new SocketProcessor(clientSocket)); } catch (IOException e) { LOG.error("Accept failed, port: {}", port); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/TimeService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/TimeService.java deleted file mode 100644 index 2eaedf1f5..000000000 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/TimeService.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.xdi.oxd.server.service; - -import com.google.common.base.Optional; -import com.google.inject.Inject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xdi.oxd.license.client.GenerateWS; -import org.xdi.oxd.license.client.LicenseClient; -import org.xdi.oxd.server.Configuration; -import org.xdi.oxd.server.license.LicenseFileUpdateService; - -import java.util.Date; - -/** - * @author Yuriy Zabrovarnyy - */ - -public class TimeService { - - private static final Logger LOG = LoggerFactory.getLogger(TimeService.class); - - private final Configuration conf; - private final HttpService httpService; - - @Inject - public TimeService(Configuration conf, HttpService httpService) { - this.conf = conf; - this.httpService = httpService; - } - - public Date getCurrentLicenseServerTime() { - Optional serverTime = currentLicenseServerTime(); - if (serverTime.isPresent()) { - return serverTime.get(); - } - return new Date(); // system time - } - - private Optional currentLicenseServerTime() { - try { - final GenerateWS generateWS = LicenseClient.generateWs(LicenseFileUpdateService.LICENSE_SERVER_ENDPOINT, httpService.getClientExecutor()); - long millis = Long.parseLong(generateWS.currentServerTime()); - if (millis > 0) { - return Optional.of(new Date(millis)); - } - } catch (Exception e) { - LOG.error("Failed to fetch license server time.", e); - } - return Optional.absent(); - } - -} diff --git a/oxd-server/src/main/resources/oxd-conf.json b/oxd-server/src/main/resources/oxd-conf.json index 1ddc1bbb8..eb0cba285 100644 --- a/oxd-server/src/main/resources/oxd-conf.json +++ b/oxd-server/src/main/resources/oxd-conf.json @@ -1,5 +1,4 @@ { - "server_name":"", "port":8099, "localhost_only":true, "time_out_in_seconds":0, @@ -10,10 +9,6 @@ "crypt_provider_key_store_path":"", "crypt_provider_key_store_password":"", "crypt_provider_dn_name":"", - "license_id":"", - "public_key":"", - "public_password":"", - "license_password":"", "support-google-logout":true, "state_expiration_in_minutes":5, "nonce_expiration_in_minutes":5, diff --git a/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json b/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json index 96a2d75e7..3ebd784ca 100644 --- a/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json +++ b/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "port":8099, "localhost_only":true, "time_out_in_seconds":0, @@ -7,10 +6,6 @@ "trust_all_certs":true, "trust_store_path":"", "trust_store_password":"", - "license_id":"d6bfeec7-b77f-417e-995e-bf05660ab04d", - "public_key":"ydEcNeUzT7Ey73oL1MrZVWLAUEAZkFJDaUurhBOX0/DXWVpSsoZLamu2M0uSb1kDro3EwetBzdtHrJ+KI+CaD0oXM4kQl0B9YSqb88R559ivLLm7OT8/S+VMzFavPUNr6dM6GxF3BqnoybUwXZEl0C3wIVWcrulYWBpTUdiAlp66asqQGLumWuor90/ndnMmNc6+NM9L/T5CGC45UIEpKUuJfH5oCP/KybinUbq02DbCCWCazvzsGcAIjpkUi3/G931S4BFaZ7p02g3kowUzoSXzFs8kdrRoKgtd2KVryLIQtR7/MR6MlkOYxZUh0PeNqhC3JTIXeik9xsECQ/JPRa2fM/MJPilmux0wSkJZt8GuvYZYINuXLFsnTuY8bTbpbMgZAFp584mtRp6BaF1VEA==", - "public_password":"KN8bol2fjzPeCMOjlpIq", - "license_password":"8Udn8shi73Mrk83s1JOI", "support-google-logout":true, "state_expiration_in_minutes":5, "nonce_expiration_in_minutes":5, diff --git a/oxd-server/src/test/resources/oxd-conf-test-redis.json b/oxd-server/src/test/resources/oxd-conf-test-redis.json index c20f18f52..cbcb411bb 100644 --- a/oxd-server/src/test/resources/oxd-conf-test-redis.json +++ b/oxd-server/src/test/resources/oxd-conf-test-redis.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "port":8099, "localhost_only":true, "time_out_in_seconds":0, @@ -7,10 +6,6 @@ "trust_all_certs":true, "trust_store_path":"", "trust_store_password":"", - "license_id":"d6bfeec7-b77f-417e-995e-bf05660ab04d", - "public_key":"ydEcNeUzT7Ey73oL1MrZVWLAUEAZkFJDaUurhBOX0/DXWVpSsoZLamu2M0uSb1kDro3EwetBzdtHrJ+KI+CaD0oXM4kQl0B9YSqb88R559ivLLm7OT8/S+VMzFavPUNr6dM6GxF3BqnoybUwXZEl0C3wIVWcrulYWBpTUdiAlp66asqQGLumWuor90/ndnMmNc6+NM9L/T5CGC45UIEpKUuJfH5oCP/KybinUbq02DbCCWCazvzsGcAIjpkUi3/G931S4BFaZ7p02g3kowUzoSXzFs8kdrRoKgtd2KVryLIQtR7/MR6MlkOYxZUh0PeNqhC3JTIXeik9xsECQ/JPRa2fM/MJPilmux0wSkJZt8GuvYZYINuXLFsnTuY8bTbpbMgZAFp584mtRp6BaF1VEA==", - "public_password":"KN8bol2fjzPeCMOjlpIq", - "license_password":"8Udn8shi73Mrk83s1JOI", "support-google-logout":true, "state_expiration_in_minutes":5, "nonce_expiration_in_minutes":5, diff --git a/oxd-server/src/test/resources/oxd-conf-test.json b/oxd-server/src/test/resources/oxd-conf-test.json index 75dff3686..036071a10 100644 --- a/oxd-server/src/test/resources/oxd-conf-test.json +++ b/oxd-server/src/test/resources/oxd-conf-test.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "port":8099, "localhost_only":true, "time_out_in_seconds":0, @@ -10,10 +9,6 @@ "crypt_provider_key_store_path":"", "crypt_provider_key_store_password":"", "crypt_provider_dn_name":"", - "license_id":"b9d9140e-0732-4a96-b4be-215597377a10", - "public_key":"47SbaB5bmXBXpKWgtMGNot9CIN++xJITnqlOsCRsQA4swMFwPeSIBIyPqSPB0qBGBCvI9ER0FTYqH9z6XnRJ1txNdzc0voY/SDGw+OQe0emC3HgXax0+lR4JsYkuQ3C+cnfqyunHQgnwDVcx4fS0MvxWewu03q9ppc1UlImNe7nesm3tzP0dsvVkEMeAWyEbrsu58JzUmFDGDzl0sVKjtBs+czf1ETWd48q5a3IDq5DNSbT4E4Hr3dmLz72nEPBr9Bsoqik4wWiGl8YMa9w4BZiKZQjoIfvboxSwhJRy1kKCEzi/kJqLX6EZ/cCUw8fgn/Xu2Kaov8CI7dtOSi3DqKWQbcDdRpoZJTas+6uyux4tMzZPnblfYnlPaDJRBt9WOgL4SWBdoukw9/QXubXSEA==", - "public_password":"3Rczv1eJ0sDnFOGLLEkX", - "license_password":"a7rkv7VCFOum40eFtfbL", "support-google-logout":true, "state_expiration_in_minutes":5, "nonce_expiration_in_minutes":5, From 8c7bc992ac6f02d30463999f4ce45cd77b7982d3 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 5 Oct 2018 10:15:34 +0300 Subject: [PATCH 022/230] #240 (4.0.0) : removed `server_name` configuration property https://github.com/GluuFederation/oxd/issues/240 --- oxd-server/README.md | 1 - oxd-server/config/config_template.yml | 1 - .../org/xdi/oxd/server/OxdServerConfiguration.java | 11 ----------- .../xdi/oxd/server/service/ConfigurationService.java | 6 ------ oxd-server/src/main/resources/oxd-server.yml | 1 - .../src/test/resources/oxd-conf-test-h2-conf.json | 1 - .../src/test/resources/oxd-conf-test-redis.json | 1 - oxd-server/src/test/resources/oxd-conf-test.json | 1 - oxd-server/src/test/resources/oxd-server-dev.yml | 1 - oxd-server/src/test/resources/oxd-server-jenkins.yml | 1 - 10 files changed, 25 deletions(-) diff --git a/oxd-server/README.md b/oxd-server/README.md index dba265291..8f105f989 100644 --- a/oxd-server/README.md +++ b/oxd-server/README.md @@ -11,7 +11,6 @@ docker run -p 8443:8443 --env PUBLIC_KEY= --env PUBLIC_PASSWORD= --env LICENSE_PASSWORD= ---env SERVER_NAME=my_oxd --env KEYSTORE_PATH=/vol/oxd-server.keystore --env KEYSTORE_PASSWORD=example --name oxd-server diff --git a/oxd-server/config/config_template.yml b/oxd-server/config/config_template.yml index 36f88cbff..901a58453 100644 --- a/oxd-server/config/config_template.yml +++ b/oxd-server/config/config_template.yml @@ -1,6 +1,5 @@ # server configuration -server_name: $SERVER_NAME use_client_authentication_for_pat: $USE_CLIENT_AUTHENTICATION_FOR_PAT trust_all_certs: $TRUST_ALL_CERTS trust_store_path: $TRUST_STORE_PATH diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/OxdServerConfiguration.java b/oxd-server/src/main/java/org/xdi/oxd/server/OxdServerConfiguration.java index cb9d25274..30a6fb5f1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/OxdServerConfiguration.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/OxdServerConfiguration.java @@ -12,8 +12,6 @@ public class OxdServerConfiguration extends Configuration { private String registerClientAppType = "web"; // @JsonProperty(value = "register_client_response_types") private String registerClientResponesType = "code"; - @JsonProperty(value = "server_name") - private String serverName; @JsonProperty(value = "use_client_authentication_for_pat") private Boolean useClientAuthenticationForPat = true; @JsonProperty(value = "trust_all_certs") @@ -89,14 +87,6 @@ public void setMigrationSourceFolderPath(String migrationSourceFolderPath) { this.migrationSourceFolderPath = migrationSourceFolderPath; } - public String getServerName() { - return serverName; - } - - public void setServerName(String serverName) { - this.serverName = serverName; - } - public Boolean getUma2AuthRegisterClaimsGatheringEndpointAsRedirectUriOfClient() { return uma2AuthRegisterClaimsGatheringEndpointAsRedirectUriOfClient; } @@ -214,7 +204,6 @@ public String toString() { return "OxdServerConfiguration{" + ", registerClientAppType='" + registerClientAppType + '\'' + ", registerClientResponesType='" + registerClientResponesType + '\'' + - ", serverName='" + serverName + '\'' + ", useClientAuthenticationForPat=" + useClientAuthenticationForPat + ", trustAllCerts=" + trustAllCerts + ", keyStorePath='" + keyStorePath + '\'' + diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java index 935297a56..424b86db2 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java @@ -2,7 +2,6 @@ import com.google.common.base.Preconditions; import com.google.inject.Provider; -import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xdi.oxd.common.CoreUtils; @@ -29,11 +28,6 @@ public class ConfigurationService implements Provider { public void setConfiguration(OxdServerConfiguration configuration) { Preconditions.checkNotNull(configuration, "Failed to load configuration."); - - if (StringUtils.isBlank(configuration.getServerName())) { - LOG.error("'server_name' configuration property is mandatory. Please provide value for it in configuration file."); - throw new AssertionError("'server_name' configuration property is mandatory. Please provide value for it in configuration file."); - } this.configuration = configuration; } diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index 59f3fa4f3..c287866d4 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -1,6 +1,5 @@ # server configuration -server_name: '' use_client_authentication_for_pat: true trust_all_certs: true trust_store_path: '' diff --git a/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json b/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json index ec4175640..1247682bb 100644 --- a/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json +++ b/oxd-server/src/test/resources/oxd-conf-test-h2-conf.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "use_client_authentication_for_pat":true, "trust_all_certs":true, "trust_store_path":"", diff --git a/oxd-server/src/test/resources/oxd-conf-test-redis.json b/oxd-server/src/test/resources/oxd-conf-test-redis.json index 47e576484..8d3af51d6 100644 --- a/oxd-server/src/test/resources/oxd-conf-test-redis.json +++ b/oxd-server/src/test/resources/oxd-conf-test-redis.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "use_client_authentication_for_pat":true, "trust_all_certs":true, "trust_store_path":"", diff --git a/oxd-server/src/test/resources/oxd-conf-test.json b/oxd-server/src/test/resources/oxd-conf-test.json index 7c8f82112..a37c6dd4d 100644 --- a/oxd-server/src/test/resources/oxd-conf-test.json +++ b/oxd-server/src/test/resources/oxd-conf-test.json @@ -1,5 +1,4 @@ { - "server_name":"build_server", "use_client_authentication_for_pat":true, "trust_all_certs":true, "trust_store_path":"", diff --git a/oxd-server/src/test/resources/oxd-server-dev.yml b/oxd-server/src/test/resources/oxd-server-dev.yml index cc1050885..7c1f42666 100644 --- a/oxd-server/src/test/resources/oxd-server-dev.yml +++ b/oxd-server/src/test/resources/oxd-server-dev.yml @@ -1,6 +1,5 @@ # server configuration -server_name: build_server use_client_authentication_for_pat: true trust_all_certs: true trust_store_path: '' diff --git a/oxd-server/src/test/resources/oxd-server-jenkins.yml b/oxd-server/src/test/resources/oxd-server-jenkins.yml index f5f803333..4b070d698 100644 --- a/oxd-server/src/test/resources/oxd-server-jenkins.yml +++ b/oxd-server/src/test/resources/oxd-server-jenkins.yml @@ -1,6 +1,5 @@ # server configuration -server_name: build_server use_client_authentication_for_pat: true trust_all_certs: true trust_store_path: '' From 5fa9a95578bca5acb58fc0fd5afb02fb59e3570e Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 5 Oct 2018 16:24:24 +0300 Subject: [PATCH 023/230] #225 : moved a few methods from CommandResponse to new WebApplicationException. --- .../org/xdi/oxd/common/CommandResponse.java | 35 ------------------- .../java/org/xdi/oxd/server/RestResource.java | 19 ++++------ .../xdi/oxd/server/op/RpGetRptOperation.java | 15 +++++--- .../oxd/server/op/RsCheckAccessOperation.java | 12 +++++-- 4 files changed, 25 insertions(+), 56 deletions(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java index 6a7735494..181ea57d1 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java @@ -6,7 +6,6 @@ import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.annotate.JsonProperty; import org.codehaus.jackson.annotate.JsonPropertyOrder; -import org.codehaus.jackson.node.POJONode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -41,49 +40,15 @@ public CommandResponse(ResponseStatus p_status, JsonNode p_data) { data = p_data; } - public ResponseStatus getStatus() { - return status; - } - - public CommandResponse setStatus(ResponseStatus p_status) { - status = p_status; - return this; - } - - public JsonNode getData() { - return data; - } - public CommandResponse setData(JsonNode p_data) { data = p_data; return this; } - public T dataAsResponse(Class p_class) { - if (data != null && p_class != null) { - final String asString = data.toString(); - try { - return CoreUtils.createJsonMapper().readValue(asString, p_class); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - LOG.error("Unable to parse string to response, string: {}", asString); - } - return null; - } - public static CommandResponse ok() { return new CommandResponse(ResponseStatus.OK); } - public static CommandResponse error() { - return new CommandResponse(ResponseStatus.ERROR); - } - - public static CommandResponse createErrorResponse(ErrorResponse p_error) { - return CommandResponse.error().setData(new POJONode(p_error)); - } - /** * Returns string representation of object * diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java index bea618e28..6ec4a7258 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java @@ -1,10 +1,11 @@ package org.xdi.oxd.server; import org.apache.commons.lang.StringUtils; -import org.codehaus.jackson.node.POJONode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.*; +import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.CommandType; +import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.params.*; import javax.ws.rs.*; @@ -196,7 +197,7 @@ public static T read(String params, Class clazz) { } } - public static String process(CommandType commandType, String paramsAsString, Class paramsClass, String authorization) { + private static String process(CommandType commandType, String paramsAsString, Class paramsClass, String authorization) { T params = read(paramsAsString, paramsClass); if (params instanceof HasProtectionAccessTokenParams && !(params instanceof RegisterSiteParams)) { ((HasProtectionAccessTokenParams) params).setProtectionAccessToken(validateAccessToken(authorization)); @@ -207,7 +208,7 @@ public static String process(CommandType commandType, String return json; } - public static String validateAccessToken(String authorization) { + private static String validateAccessToken(String authorization) { final String prefix = "Bearer "; if (StringUtils.isNotEmpty(authorization) && authorization.startsWith(prefix)) { String accessToken = authorization.substring(prefix.length()); @@ -216,14 +217,6 @@ public static String validateAccessToken(String authorization) { } } LOG.debug("No access token provided in Authorization header. Forbidden."); - throw new WebApplicationException(forbiddenErrorResponse(), Response.Status.FORBIDDEN); - } - - public static String forbiddenErrorResponse() { - final ErrorResponse error = new ErrorResponse("403"); - error.setErrorDescription("Forbidden Access"); - - CommandResponse commandResponse = CommandResponse.error().setData(new POJONode(error)); - return CoreUtils.asJsonSilently(commandResponse); + throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN).build()); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java index bd535225a..f111f7313 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java @@ -4,16 +4,19 @@ package org.xdi.oxd.server.op; import com.google.inject.Injector; -import org.codehaus.jackson.node.POJONode; import org.jboss.resteasy.client.ClientResponseFailure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xdi.oxauth.model.uma.UmaNeedInfoResponse; import org.xdi.oxauth.model.util.Util; -import org.xdi.oxd.common.*; +import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.RpGetRptParams; +import org.xdi.oxd.rs.protect.Jackson; import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; /** * @author Yuriy Zabrovarnyy @@ -37,9 +40,11 @@ public CommandResponse execute(RpGetRptParams params) throws Exception { String entity = (String) ex.getResponse().getEntity(String.class); final UmaNeedInfoResponse needInfo = parseNeedInfoSilently(entity); if (needInfo != null) { - ErrorResponse errorResponse = new ErrorResponse(ErrorResponseCode.UMA_NEED_INFO); - errorResponse.setDetails(new POJONode(needInfo)); - return CommandResponse.createErrorResponse(errorResponse); + throw new WebApplicationException(Response + .status(Response.Status.FORBIDDEN) + .type(MediaType.APPLICATION_JSON_TYPE) + .entity(Jackson.asJson(needInfo)) + .build()); } else { LOG.trace("No need_info error, re-throw exception ...", ex); throw new WebApplicationException(entity, ex.getResponse().getStatus()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java index 4ff6f0e48..3f4ae6623 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java @@ -2,7 +2,6 @@ import com.google.common.base.Strings; import com.google.inject.Injector; -import org.codehaus.jackson.node.POJONode; import org.jboss.resteasy.client.ClientResponseFailure; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,6 +12,7 @@ import org.xdi.oxd.common.introspection.CorrectUmaPermission; import org.xdi.oxd.common.params.RsCheckAccessParams; import org.xdi.oxd.common.response.RsCheckAccessResponse; +import org.xdi.oxd.rs.protect.Jackson; import org.xdi.oxd.rs.protect.resteasy.PatProvider; import org.xdi.oxd.rs.protect.resteasy.ResourceRegistrar; import org.xdi.oxd.rs.protect.resteasy.RptPreProcessInterceptor; @@ -21,6 +21,8 @@ import org.xdi.oxd.server.model.UmaResource; import org.xdi.oxd.server.service.Rp; +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import java.util.Collections; import java.util.List; @@ -39,7 +41,7 @@ public class RsCheckAccessOperation extends BaseOperation { * * @param command command */ - protected RsCheckAccessOperation(Command command, final Injector injector) { + RsCheckAccessOperation(Command command, final Injector injector) { super(command, injector, RsCheckAccessParams.class); } @@ -54,7 +56,11 @@ public CommandResponse execute(final RsCheckAccessParams params) throws Exceptio error.setErrorDescription("Resource is not protected with path: " + params.getPath() + " and httpMethod: " + params.getHttpMethod() + ". Please protect your resource first with uma_rs_protect command. Check details on " + CoreUtils.DOC_URL); LOG.error(error.getErrorDescription()); - return CommandResponse.error().setData(new POJONode(error)); + throw new WebApplicationException(Response + .status(Response.Status.BAD_REQUEST) + .type(MediaType.APPLICATION_JSON_TYPE) + .entity(Jackson.asJson(error)) + .build()); } PatProvider patProvider = new PatProvider() { From bb8c3afe806636721617717563c3d4f59e03f829 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 19:28:55 +0400 Subject: [PATCH 024/230] Create oxd-server-3.1.4.init.d --- debian/oxd-server-3.1.4.init.d | 528 +++++++++++++++++++++++++++++++++ 1 file changed, 528 insertions(+) create mode 100644 debian/oxd-server-3.1.4.init.d diff --git a/debian/oxd-server-3.1.4.init.d b/debian/oxd-server-3.1.4.init.d new file mode 100644 index 000000000..16228d6eb --- /dev/null +++ b/debian/oxd-server-3.1.4.init.d @@ -0,0 +1,528 @@ +#!/usr/bin/env bash + +# LSB Tags +### BEGIN INIT INFO +# Provides: oxd-server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: oxd-server start script. +# Description: Start oxd server. +### END INIT INFO + +# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: oxd server +# processname: oxd-server +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# The files will be checked for existence before being passed to oxd-server. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# OXD_HOME +# Where oxd is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# +# OXD_BASE +# Where your oxd server base directory is. If not set, the value from +# $OXD_HOME will be used. +# +# OXD_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run OXD_BASE and /tmp +# if not set. +# +# OXD_PID +# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid +# +# OXD_ARGS +# The default arguments to pass to oxd-server. +# +# OXD_USER +# if set, then used as a username to run the server as +# +# OXD_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when OXD_USER does not +# have shell access, e.g. /bin/false +# + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# oxd-server's hallmark +################################################## +OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" + + +################################################## +# Try to determine OXD_HOME if not set +################################################## +if [ -z "$OXD_HOME" ] +then + OXD_SH=$0 + case "$OXD_SH" in + /*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*) OXD_HOME=.. ;; + */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; + */*) OXD_HOME=. ;; + *) OXD_HOME=.. ;; + esac + + if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] + then + OXD_HOME= + fi +fi + + +################################################## +# No OXD_HOME yet? We're out of luck! +################################################## +if [ -z "$OXD_HOME" ]; then + echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$OXD_HOME" +OXD_HOME=$PWD + + +################################################## +# Set OXD_BASE +################################################## +if [ -z "$OXD_BASE" ]; then + OXD_BASE=$OXD_HOME +fi + +cd "$OXD_BASE" +OXD_BASE=$PWD + + +##################################################### +# Check that oxd server is where we think it is +##################################################### +if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" + echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$OXD_RUN" ] +then + OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$OXD_PID" ] +then + OXD_PID="$OXD_RUN/${NAME}.pid" +fi + +if [ -z "$OXD_STATE" ] +then + OXD_STATE=$OXD_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; +esac + + +OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if OXD_LOGS is defined +##################################################### +if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] +then + OXD_LOGS=$OXD_BASE/logs +fi +if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] +then + OXD_LOGS=$OXD_HOME/logs +fi +if [ "$OXD_LOGS" ] +then + + case "`uname`" in + CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add oxd server properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +OXD_HOME="`cygpath -w $OXD_HOME`" +OXD_BASE="`cygpath -w $OXD_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the oxd server will be started +##################################################### + +OXD_START="org.xdi.oxd.server.ServerLauncher" + +case "`uname`" in +CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID = $OXD_PID" + echo "OXD_START = $OXD_START" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi + +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + echo -n "Starting oxd server: " + + if (( NO_START )); then + echo "Not starting ${NAME} - NO_START=1"; + exit + fi + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + + start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + else + + if running $OXD_PID + then + echo "Already Running $(cat $OXD_PID)!" + exit 1 + fi + + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID" + chown "$OXD_USER" "$OXD_PID" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID" + fi + + fi + + if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null + then + if started "$OXD_STATE" "$OXD_PID" + then + echo "OK `date`" + else + echo "FAILED `date`" + exit 1 + fi + else + echo "ok `date`" + fi + + ;; + + stop) + echo -n "Stopping oxd server: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID" ] ; then + echo "ERROR: no pid found at $OXD_PID" + exit 1 + fi + + PID=$(cat "$OXD_PID" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID" + rm -f "$OXD_STATE" + echo OK + + ;; + + restart) + OXD_SH=$0 + > "$OXD_STATE" + + "$OXD_SH" stop "$@" + "$OXD_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running oxd server: " + + if running "$OXD_PID" + then + echo Already Running $(cat "$OXD_PID")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + if running "$OXD_PID" + then + echo "oxd server running pid=$(< "$OXD_PID")" + else + echo "oxd server NOT running" + fi + echo + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID = $OXD_PID" + echo "OXD_START = $OXD_START" + echo "OXD_LOGS = $OXD_LOGS" + echo "OXD_STATE = $OXD_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$OXD_PID" + then + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 From a1b5e15191f77ba7fc901b74a9df3c6501e371c6 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 19:36:05 +0400 Subject: [PATCH 025/230] Update postinst --- debian/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/postinst b/debian/postinst index c92b498f6..d40b0cb4a 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,6 +1,6 @@ #!/bin/bash -/etc/init.d/oxd-server stop > /dev/null 2>&1 +/etc/init.d/oxd-server-3.1.4 stop > /dev/null 2>&1 /etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 From d9c1d579f15bf1e51c2d84476742681d1b1ab6b8 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:23:06 +0530 Subject: [PATCH 026/230] #233: Added protection token parameter, changed scope to array --- oxd-server/src/main/resources/swagger.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index e55544203..fcdc07525 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -954,6 +954,7 @@ paths: - oxd_id - refresh_token - scope + - protection_token properties: oxd_id: type: string @@ -961,6 +962,9 @@ paths: refresh_token: type: string example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 + protection_token: + type: string + example: Bearer 33d7988e-6ffb-4fe5-8c2a-0e158691d446 scope: type: array items: @@ -988,8 +992,10 @@ paths: - refresh_token properties: scope: - type: string - example: "openid profile uma_protection email" + type: array + items: + type: string + example: ["openid", "profile", "uma_protection", "email"] access_token: type: string example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 From 6e46ded7940496bd04b2d9a40d0e18fa0a6e9e3e Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:25:25 +0530 Subject: [PATCH 027/230] #233: Removed faulty and redundant Bearer string --- oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java index 086465437..614879ac9 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java @@ -52,7 +52,7 @@ public static void notEmpty(List str) { public static String getAuthorization() throws Exception { Preconditions.checkNotNull(setupData); if (Strings.isNullOrEmpty(AUTHORIZATION)) { - AUTHORIZATION = "Bearer " + getAuthorization(setupData); + AUTHORIZATION = getAuthorization(setupData); } return AUTHORIZATION; } From b0e5513157994d319d4428845cd6ad8b787e8942 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 20:03:04 +0400 Subject: [PATCH 028/230] Update rules --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index 3814ec3e0..8a28b3d01 100755 --- a/debian/rules +++ b/debian/rules @@ -37,7 +37,7 @@ override_dh_auto_install: mkdir -p debian/oxd-server-3.1.4/etc/default/ cp -a debian/oxd-server-3.1.4/opt/oxd-server/conf/* debian/oxd-server-3.1.4/etc/oxd/oxd-server/. #cp -a logs/oxd-server.log debian/oxd-server-3.1.4/var/log/ - cp -a debian/oxd-server-default debian/oxd-server-3.1.4/etc/default/oxd-server + cp -a debian/oxd-server-default debian/oxd-server-3.1.4/etc/default/oxd-server-3.1.4 cp -a debian/oxd-https-extension-default debian/oxd-server-3.1.4/etc/default/oxd-https-extension rm -rf debian/oxd-server-3.1.4/opt/oxd-server/conf @@ -45,4 +45,4 @@ override_dh_fixperms: dh_fixperms chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/oxd-start.sh chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server-3.1.4/etc/default/oxd-server + chmod 644 debian/oxd-server-3.1.4/etc/default/oxd-server-3.1.4 From ac24cfc4a5b1830c9b7d2699af4376a0bbaa83fb Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:34:46 +0530 Subject: [PATCH 029/230] #233: Added swagger test for tokens by code API --- .../client/api/GetTokensByCodeTest.java | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java new file mode 100644 index 000000000..346c74136 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -0,0 +1,115 @@ +package io.swagger.client.api; + +import com.google.common.collect.Lists; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.squareup.okhttp.MediaType; +import com.squareup.okhttp.Request; +import com.squareup.okhttp.RequestBody; +import com.squareup.okhttp.Response; +import io.swagger.client.model.GetAccessTokenByRefreshTokenParams; +import io.swagger.client.model.GetAccessTokenByRefreshTokenResponseData; +import io.swagger.client.model.GetTokensByCodeParams; +import io.swagger.client.model.GetTokensByCodeResponseData; +import io.swagger.client.model.RegisterSiteResponseData; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxd.common.CoreUtils; + +import static io.swagger.client.api.Tester.notEmpty; +import static org.junit.Assert.assertNotNull; + +/** + * Test class to test refresh token and related end points + * + * @author Yuriy Z + * @author Shoeb + * @version 5, Oct, 2018 + */ +public class GetTokensByCodeTest { + + private static final String AUTH_CODE_ENDPOINT = "/get-authorization-code"; + + @Parameters({"opHost", "redirectUrl", "userId", "userSecret"}) + @Test + public void test(String opHost, String redirectUrl, String userId, String userSecret) throws Exception { + + DevelopersApi client = Tester.api(); + + final RegisterSiteResponseData site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + GetTokensByCodeResponseData tokensResponse = tokenByCode(client, site, userId, userSecret, CoreUtils.secureRandomString()); + + refreshToken(tokensResponse, client, site.getOxdId()); + } + + private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi client, String oxdId) throws Exception { + notEmpty(resp.getRefreshToken()); + + // refresh token + final GetAccessTokenByRefreshTokenParams refreshParams = new GetAccessTokenByRefreshTokenParams(); + refreshParams.setOxdId(oxdId); + refreshParams.setScope(Lists.newArrayList("openid")); + refreshParams.setRefreshToken(resp.getRefreshToken()); + refreshParams.setProtectionToken(Tester.getAuthorization()); + + GetAccessTokenByRefreshTokenResponseData refreshResponse = client.getAccessTokenByRefreshToken(Tester.getAuthorization(), refreshParams).getData(); + + assertNotNull(refreshResponse); + notEmpty(refreshResponse.getAccessToken()); + notEmpty(refreshResponse.getRefreshToken()); + } + + private GetTokensByCodeResponseData tokenByCode(DevelopersApi client, RegisterSiteResponseData site, String userId, String userSecret, String nonce) throws Exception { + + final String state = CoreUtils.secureRandomString(); + + final String authorizationStr = Tester.getAuthorization(site); //getAuthorization(opHost, client, site); + + final String code = codeRequest(client, site.getOxdId(), userId, userSecret, state, nonce, authorizationStr); + + notEmpty(code); + + final GetTokensByCodeParams params = new GetTokensByCodeParams(); + params.setOxdId(site.getOxdId()); + params.setCode(code); + params.setState(state); + + final GetTokensByCodeResponseData resp = client.getTokensByCode(authorizationStr, params).getData(); + assertNotNull(resp); + notEmpty(resp.getAccessToken()); + notEmpty(resp.getIdToken()); + notEmpty(resp.getRefreshToken()); + return resp; + } + + private String codeRequest(DevelopersApi client, String oxdId, String userId, String userSecret, String state, + String nonce, String authorization) throws Exception { + + final Request request = buildRequest(authorization, oxdId, userId, userSecret, state, nonce, client); + + final Response response = client.getApiClient().getHttpClient().newCall(request).execute(); + + final JsonElement jsonResponse = new JsonParser().parse(response.body().string()); + + return jsonResponse.getAsJsonObject().getAsJsonObject("data").get("code").getAsString(); + + } + + private Request buildRequest(String authorization, String oxdId, String userId, String userSecret, String state, String nonce, DevelopersApi client) { + + final String json = "{\"oxd_id\":\"" + oxdId + "\",\"username\":\"" + userId + "\",\"password\":\"" + userSecret + + "\",\"state\":\"" + state + "\",\"nonce\":\"" + nonce + "\"}"; + + final RequestBody reqBody = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), json); + + return new Request.Builder() + .addHeader("Authorization", authorization) + .addHeader("Content-Type", "application/json") + .addHeader("Accept", "application/json") + .method("POST", reqBody) + .url(client.getApiClient().getBasePath() + AUTH_CODE_ENDPOINT).build(); + + } + +} From dda5ae8c66433dabd66612dedd52da70c9f37d32 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:48:37 +0530 Subject: [PATCH 030/230] #233: Updated to prevent test failure if protection token is enabled --- .../client/api/GetAuthorizationUrlTest.java | 2 +- .../io/swagger/client/api/GetTokensByCodeTest.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java index 11f68e0f7..fc4545106 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java @@ -18,7 +18,7 @@ public void test(String redirectUrl, String opHost) throws Exception { final GetAuthorizationUrlParams commandParams = new GetAuthorizationUrlParams(); commandParams.setOxdId(site.getOxdId()); - final GetAuthorizationUrlResponse resp = api.getAuthorizationUrl(Tester.getAuthorization(), commandParams); + final GetAuthorizationUrlResponse resp = api.getAuthorizationUrl(Tester.getAuthorization(site), commandParams); assertNotNull(resp); Tester.notEmpty(resp.getData().getAuthorizationUrl()); } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index 346c74136..9ecf9db54 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -40,20 +40,22 @@ public void test(String opHost, String redirectUrl, String userId, String userSe GetTokensByCodeResponseData tokensResponse = tokenByCode(client, site, userId, userSecret, CoreUtils.secureRandomString()); - refreshToken(tokensResponse, client, site.getOxdId()); + refreshToken(tokensResponse, client, site); } - private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi client, String oxdId) throws Exception { + private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi client, RegisterSiteResponseData site) throws Exception { notEmpty(resp.getRefreshToken()); + final String authorization = Tester.getAuthorization(site); + // refresh token final GetAccessTokenByRefreshTokenParams refreshParams = new GetAccessTokenByRefreshTokenParams(); - refreshParams.setOxdId(oxdId); + refreshParams.setOxdId(site.getOxdId()); refreshParams.setScope(Lists.newArrayList("openid")); refreshParams.setRefreshToken(resp.getRefreshToken()); - refreshParams.setProtectionToken(Tester.getAuthorization()); + refreshParams.setProtectionToken(authorization); - GetAccessTokenByRefreshTokenResponseData refreshResponse = client.getAccessTokenByRefreshToken(Tester.getAuthorization(), refreshParams).getData(); + GetAccessTokenByRefreshTokenResponseData refreshResponse = client.getAccessTokenByRefreshToken(authorization, refreshParams).getData(); assertNotNull(refreshResponse); notEmpty(refreshResponse.getAccessToken()); @@ -64,7 +66,7 @@ private GetTokensByCodeResponseData tokenByCode(DevelopersApi client, RegisterSi final String state = CoreUtils.secureRandomString(); - final String authorizationStr = Tester.getAuthorization(site); //getAuthorization(opHost, client, site); + final String authorizationStr = Tester.getAuthorization(site); final String code = codeRequest(client, site.getOxdId(), userId, userSecret, state, nonce, authorizationStr); From 4965a0848bc33dd5399fe542b5f07cebcaf05c4c Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:49:55 +0530 Subject: [PATCH 031/230] #233: Added definitions for token by code, and auth url test --- oxd-server/src/test/resources/testng.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index e58a56016..04e59591c 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -158,5 +158,11 @@ + + + + + + From 5b71d4ca761bc1a891b6c8323e482c4b7751ac27 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 5 Oct 2018 21:56:01 +0530 Subject: [PATCH 032/230] #233: Updated swagger models --- .../src/main/java/io/swagger/client/Pair.java | 2 +- .../java/io/swagger/client/StringUtil.java | 2 +- .../GetAccessTokenByRefreshTokenParams.java | 27 +++++++++++++++++-- ...AccessTokenByRefreshTokenResponseData.java | 19 ++++++++----- 4 files changed, 40 insertions(+), 10 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/Pair.java b/oxd-gen-client/src/main/java/io/swagger/client/Pair.java index c46b8d037..d3b1cbd17 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/Pair.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/Pair.java @@ -13,7 +13,7 @@ package io.swagger.client; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") public class Pair { private String name = ""; private String value = ""; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java b/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java index 5a4fa1d97..a353c2dda 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java @@ -13,7 +13,7 @@ package io.swagger.client; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") public class StringUtil { /** * Check if the given array contains the given value (with case-insensitive comparison). diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java index 5a00d239c..315f0da4b 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java @@ -28,7 +28,7 @@ /** * GetAccessTokenByRefreshTokenParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") public class GetAccessTokenByRefreshTokenParams { @SerializedName("oxd_id") private String oxdId = null; @@ -36,6 +36,9 @@ public class GetAccessTokenByRefreshTokenParams { @SerializedName("refresh_token") private String refreshToken = null; + @SerializedName("protection_token") + private String protectionToken = null; + @SerializedName("scope") private List scope = new ArrayList<>(); @@ -75,6 +78,24 @@ public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } + public GetAccessTokenByRefreshTokenParams protectionToken(String protectionToken) { + this.protectionToken = protectionToken; + return this; + } + + /** + * Get protectionToken + * @return protectionToken + **/ + @ApiModelProperty(example = "Bearer 33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") + public String getProtectionToken() { + return protectionToken; + } + + public void setProtectionToken(String protectionToken) { + this.protectionToken = protectionToken; + } + public GetAccessTokenByRefreshTokenParams scope(List scope) { this.scope = scope; return this; @@ -110,12 +131,13 @@ public boolean equals(java.lang.Object o) { GetAccessTokenByRefreshTokenParams getAccessTokenByRefreshTokenParams = (GetAccessTokenByRefreshTokenParams) o; return Objects.equals(this.oxdId, getAccessTokenByRefreshTokenParams.oxdId) && Objects.equals(this.refreshToken, getAccessTokenByRefreshTokenParams.refreshToken) && + Objects.equals(this.protectionToken, getAccessTokenByRefreshTokenParams.protectionToken) && Objects.equals(this.scope, getAccessTokenByRefreshTokenParams.scope); } @Override public int hashCode() { - return Objects.hash(oxdId, refreshToken, scope); + return Objects.hash(oxdId, refreshToken, protectionToken, scope); } @@ -126,6 +148,7 @@ public String toString() { sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); + sb.append(" protectionToken: ").append(toIndentedString(protectionToken)).append("\n"); sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java index e20856aca..2e4949b53 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java @@ -22,14 +22,16 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * GetAccessTokenByRefreshTokenResponseData */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") public class GetAccessTokenByRefreshTokenResponseData { @SerializedName("scope") - private String scope = null; + private List scope = new ArrayList<>(); @SerializedName("access_token") private String accessToken = null; @@ -40,21 +42,26 @@ public class GetAccessTokenByRefreshTokenResponseData { @SerializedName("refresh_token") private String refreshToken = null; - public GetAccessTokenByRefreshTokenResponseData scope(String scope) { + public GetAccessTokenByRefreshTokenResponseData scope(List scope) { this.scope = scope; return this; } + public GetAccessTokenByRefreshTokenResponseData addScopeItem(String scopeItem) { + this.scope.add(scopeItem); + return this; + } + /** * Get scope * @return scope **/ - @ApiModelProperty(example = "openid profile uma_protection email", required = true, value = "") - public String getScope() { + @ApiModelProperty(example = "[\"openid\",\"profile\",\"uma_protection\",\"email\"]", required = true, value = "") + public List getScope() { return scope; } - public void setScope(String scope) { + public void setScope(List scope) { this.scope = scope; } From 2c3ff303efa6b1af0ade33df41bac029d40ed832 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 20:30:17 +0400 Subject: [PATCH 033/230] Update postinst --- debian/postinst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/postinst b/debian/postinst index d40b0cb4a..83a1a29b6 100644 --- a/debian/postinst +++ b/debian/postinst @@ -14,12 +14,12 @@ if [ $? -ne 0 ]; then fi #chown root:gluu /var/log/oxd-server.log 2>&1 -chown root:root /etc/default/oxd-server 2>&1 +chown root:root /etc/default/oxd-server-3.1.4 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 -chmod 644 /etc/default/oxd-server 2>&1 +chmod 644 /etc/default/oxd-server-3.1.4 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 From d86830fae4fac2384eb171cedae5a7aa356e5f0b Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 20:45:43 +0400 Subject: [PATCH 034/230] Delete oxd-server.init.d --- debian/oxd-server.init.d | 583 --------------------------------------- 1 file changed, 583 deletions(-) delete mode 100644 debian/oxd-server.init.d diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d deleted file mode 100644 index c6dee83e7..000000000 --- a/debian/oxd-server.init.d +++ /dev/null @@ -1,583 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID_FILE -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# -# OXD_INIT_LOG -SERVICE_NAME="oxd-server" -OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID_FILE" ] -then - OXD_PID_FILE="$OXD_RUN/${NAME}.pid" -fi - -get_pid() { - if [ -f $OXD_PID_FILE ]; then - PID_NUM=$(cat $OXD_PID_FILE) - echo "$PID_NUM" - else - PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" - ###For one more possible bug, find and kill oxd - if [ "x$PID_NUM" != "x" ]; then - echo "$PID_NUM" - fi - fi -} - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ ! -f "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi -dip_in_logs() { - echo "Checking logs for possible errors:" - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - while true; - do - if [ "x$INIT_START_STATUS" != "x" ]; then - if [ "x$PREV_START_STATUS" = "x" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - fi - fi - if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - else - break; - fi - done -} - -do_start () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" = "x" ]; then - echo "Starting $SERVICE_NAME:" - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - dip_in_logs - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` - if [ "x$START_STATUS" = "x" ]; then - ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process - if [ "x$ERROR_STATUS" != "x" ]; then - ### Since error occurred, we should remove the PID file at this point itself. - rm -f $OXD_PID_FILE - echo "Some error encountered..." - echo "See log below: " - echo "" - echo "$ERROR_STATUS" - echo "" - echo "For details please check $OXD_INIT_LOG ." - echo "Exiting..." - exit 1 - fi - - fi - chown "$OXD_USER" "$OXD_PID_FILE" - else - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID_FILE" - chown "$OXD_USER" "$OXD_PID_FILE" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID_FILE'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID_FILE" - fi - fi - echo "PID: [`get_pid`]" - echo "OK `date`" - else - echo "$SERVICE_NAME is already running ..." - echo "PID: [$PID_NUM]" - exit 1 - fi -} - -do_stop () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" != "x" ]; then - echo -n "Stopping $SERVICE_NAME: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID_FILE"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID_FILE" ] ; then - echo "ERROR: no pid found at $OXD_PID_FILE" - exit 1 - fi - - PID=$(cat "$OXD_PID_FILE" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID_FILE" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID_FILE; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID_FILE" - rm -f "$OXD_STATE" - echo OK - else - echo "$SERVICE_NAME is not running ..." - exit 1 - fi -} -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - do_start - ;; - - stop) - do_stop - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID_FILE" - then - echo Already Running $(cat "$OXD_PID_FILE")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID_FILE" - then - echo "oxd server running pid=$(< "$OXD_PID_FILE")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID_FILE" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From f633b89f00687629971c373ac46f8029b5965daf Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 20:46:06 +0400 Subject: [PATCH 035/230] Delete oxd-server.init --- oxd-server.init | 528 ------------------------------------------------ 1 file changed, 528 deletions(-) delete mode 100755 oxd-server.init diff --git a/oxd-server.init b/oxd-server.init deleted file mode 100755 index 16228d6eb..000000000 --- a/oxd-server.init +++ /dev/null @@ -1,528 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID" ] -then - OXD_PID="$OXD_RUN/${NAME}.pid" -fi - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi - -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - echo -n "Starting oxd server: " - - if (( NO_START )); then - echo "Not starting ${NAME} - NO_START=1"; - exit - fi - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - - start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - else - - if running $OXD_PID - then - echo "Already Running $(cat $OXD_PID)!" - exit 1 - fi - - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID" - chown "$OXD_USER" "$OXD_PID" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID" - fi - - fi - - if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null - then - if started "$OXD_STATE" "$OXD_PID" - then - echo "OK `date`" - else - echo "FAILED `date`" - exit 1 - fi - else - echo "ok `date`" - fi - - ;; - - stop) - echo -n "Stopping oxd server: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID" ] ; then - echo "ERROR: no pid found at $OXD_PID" - exit 1 - fi - - PID=$(cat "$OXD_PID" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID" - rm -f "$OXD_STATE" - echo OK - - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID" - then - echo Already Running $(cat "$OXD_PID")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID" - then - echo "oxd server running pid=$(< "$OXD_PID")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From 17bbb5f62b4c6b981bb5c2c251d10986050e78d9 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 20:51:04 +0400 Subject: [PATCH 036/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 167b2a533..544bec88f 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -26,10 +26,10 @@ Apache and nginx web containers %install rm -rf $RPM_BUILD_ROOT -install -d %{buildroot}/opt/%{name1} -install -d %{buildroot}/opt/%{name1}/conf -install -d %{buildroot}/opt/%{name1}/bin -install -d %{buildroot}/opt/%{name1}/lib +install -d %{buildroot}/opt/oxd-server +install -d %{buildroot}/opt/oxd-server/conf +install -d %{buildroot}/opt/oxd-server/bin +install -d %{buildroot}/opt/oxd-server/lib install -d %{buildroot}/etc/init.d install -d %{buildroot}/%{_initddir} install -d %{buildroot}/opt/oxd-https-extension/lib/ @@ -39,18 +39,18 @@ install -m 755 %SOURCE2 %{buildroot}/etc/init.d/oxd-https-extension install -m 755 %SOURCE1 %{buildroot}/%{_initddir}/%{name1} install -m 755 %SOURCE2 %{buildroot}/%{_initddir}/oxd-https-extension install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server-3.1.4 -install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/%{name1}/bin -install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/%{name1}/bin -install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/%{name1}/lib/ +install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/oxd-server/bin +install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/oxd-server/bin +install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/oxd-server/lib/ install -m 644 oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.keystore %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.yml %{buildroot}/opt/oxd-https-extension/lib/ -install -m 644 README.md %{buildroot}/opt/%{name1}/ -install -m 644 LICENSE %{buildroot}/opt/%{name1}/ -install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/%{name1}/lib/ +install -m 644 README.md %{buildroot}/opt/oxd-server/ +install -m 644 LICENSE %{buildroot}/opt/oxd-server/ +install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/oxd-server/lib/ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ @@ -61,7 +61,7 @@ cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-3.1.4 rm -rf $RPM_BUILD_ROOT %post -chkconfig --add oxd-server +chkconfig --add oxd-server-3.1.4 getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then /usr/sbin/useradd --system --create-home --user-group --shell /bin/bash --home-dir /home/jetty jetty @@ -73,7 +73,7 @@ if [ $? -ne 0 ]; then fi chown root:root /etc/default/oxd-server-3.1.4 2>&1 -chown jetty:jetty -R /opt/oxd-server-3.1.4 2>&1 +chown jetty:jetty -R /opt/oxd-server 2>&1 chmod 644 /etc/default/oxd-server-3.1.4 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 @@ -87,7 +87,7 @@ chkconfig --del oxd-server-3.1.4 %files %defattr(-,root,root,-) -/opt/%{name1}/* +/opt/oxd-server/* /opt/oxd-https-extension/* /etc/init.d/%{name1} /etc/init.d/oxd-https-extension From 2ff309a133e0ed2661ea4fa7ef15b29672b373cf Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 21:00:19 +0400 Subject: [PATCH 037/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 544bec88f..cb1e49004 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -7,7 +7,7 @@ Group: System Environment/Daemons License: MIT URL: http://www.gluu.org Source0: %{name}.tar.gz -Source1: oxd-server.init.d +Source1: oxd-server-3.1.4.init.d Source2: oxd-https-extension Source3: oxd-server-default BuildArch: noarch From eb12eac0881bcf2fb4aecc455ce598ba2b803496 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 5 Oct 2018 21:06:55 +0400 Subject: [PATCH 038/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index cb1e49004..5da5482f6 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -54,7 +54,7 @@ install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/oxd-server/lib/ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ -cp -a %{buildroot}/opt/oxd-server-3.1.4/conf/* %{buildroot}/etc/oxd/oxd-server/. +cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-3.1.4 %clean From 4bf3b4665b45f5a6bb99e89313d72f1d109d6644 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sat, 6 Oct 2018 22:03:44 +0530 Subject: [PATCH 039/230] #233: Removed redundant parameter from request --- .../src/test/java/io/swagger/client/api/GetTokensByCodeTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index 9ecf9db54..d78485501 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -53,7 +53,6 @@ private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi refreshParams.setOxdId(site.getOxdId()); refreshParams.setScope(Lists.newArrayList("openid")); refreshParams.setRefreshToken(resp.getRefreshToken()); - refreshParams.setProtectionToken(authorization); GetAccessTokenByRefreshTokenResponseData refreshResponse = client.getAccessTokenByRefreshToken(authorization, refreshParams).getData(); From 396a371fd0f4fdab30ddbc0b878958ef4a3597c4 Mon Sep 17 00:00:00 2001 From: Ganesh Date: Sat, 6 Oct 2018 22:12:38 +0530 Subject: [PATCH 040/230] Initial start message correction Added sleep time to enable the start job to produce the log for checking errors. It corrects the initial start print 'OK' problem even when oxd-server doesn't start. --- debian/oxd-server-3.1.4.init.d | 278 ++++++++++++++++++++------------- 1 file changed, 168 insertions(+), 110 deletions(-) diff --git a/debian/oxd-server-3.1.4.init.d b/debian/oxd-server-3.1.4.init.d index 16228d6eb..3fb95badb 100644 --- a/debian/oxd-server-3.1.4.init.d +++ b/debian/oxd-server-3.1.4.init.d @@ -59,7 +59,7 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') # first available of /var/run, /usr/var/run OXD_BASE and /tmp # if not set. # -# OXD_PID +# OXD_PID_FILE # The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid # # OXD_ARGS @@ -73,6 +73,9 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') # no effect if start-stop-daemon exists. Useful when OXD_USER does not # have shell access, e.g. /bin/false # +# OXD_INIT_LOG +SERVICE_NAME="oxd-server" +OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log usage() { @@ -244,11 +247,24 @@ fi ##################################################### # Find a pid and state file ##################################################### -if [ -z "$OXD_PID" ] +if [ -z "$OXD_PID_FILE" ] then - OXD_PID="$OXD_RUN/${NAME}.pid" + OXD_PID_FILE="$OXD_RUN/${NAME}.pid" fi +get_pid() { + if [ -f $OXD_PID_FILE ]; then + PID_NUM=$(cat $OXD_PID_FILE) + echo "$PID_NUM" + else + PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" + ###For one more possible bug, find and kill oxd + if [ "x$PID_NUM" != "x" ]; then + echo "$PID_NUM" + fi + fi +} + if [ -z "$OXD_STATE" ] then OXD_STATE=$OXD_BASE/${NAME}.state @@ -269,6 +285,11 @@ then JAVA=$(which java) fi +if [ ! -f "$JAVA" ] +then + JAVA=$(which java) +fi + if [ -z "$JAVA" ] then echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 @@ -341,122 +362,159 @@ then echo "OXD_HOME = $OXD_HOME" echo "OXD_BASE = $OXD_BASE" echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" + echo "OXD_PID_FILE = $OXD_PID_FILE" echo "OXD_START = $OXD_START" echo "OXD_ARGS = ${OXD_ARGS[*]}" echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" echo "JAVA = $JAVA" echo "RUN_CMD = ${RUN_CMD[*]}" fi +dip_in_logs() { + if [ ! -f $OXD_INIT_LOG ]; then + sleep 10 + fi + echo "Checking logs for possible errors:" + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + while true; + do + if [ "x$INIT_START_STATUS" != "x" ]; then + if [ "x$PREV_START_STATUS" = "x" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + fi + fi + if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + else + break; + fi + done +} + +do_start () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" = "x" ]; then + echo "Starting $SERVICE_NAME:" + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + dip_in_logs + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some error encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + + fi + chown "$OXD_USER" "$OXD_PID_FILE" + else + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID_FILE" + chown "$OXD_USER" "$OXD_PID_FILE" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID_FILE'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID_FILE" + fi + fi + echo "PID: [`get_pid`]" + echo "OK `date`" + else + echo "$SERVICE_NAME is already running ..." + echo "PID: [$PID_NUM]" + exit 1 + fi +} +do_stop () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" != "x" ]; then + echo -n "Stopping $SERVICE_NAME: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID_FILE"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID_FILE" ] ; then + echo "ERROR: no pid found at $OXD_PID_FILE" + exit 1 + fi + + PID=$(cat "$OXD_PID_FILE" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID_FILE" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID_FILE; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID_FILE" + rm -f "$OXD_STATE" + echo OK + else + echo "$SERVICE_NAME is not running ..." + exit 1 + fi +} ################################################## # Do the action ################################################## case "$ACTION" in start) - echo -n "Starting oxd server: " - - if (( NO_START )); then - echo "Not starting ${NAME} - NO_START=1"; - exit - fi - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - - start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - else - - if running $OXD_PID - then - echo "Already Running $(cat $OXD_PID)!" - exit 1 - fi - - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID" - chown "$OXD_USER" "$OXD_PID" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID" - fi - - fi - - if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null - then - if started "$OXD_STATE" "$OXD_PID" - then - echo "OK `date`" - else - echo "FAILED `date`" - exit 1 - fi - else - echo "ok `date`" - fi - + do_start ;; stop) - echo -n "Stopping oxd server: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID" ] ; then - echo "ERROR: no pid found at $OXD_PID" - exit 1 - fi - - PID=$(cat "$OXD_PID" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID" - rm -f "$OXD_STATE" - echo OK - + do_stop ;; restart) @@ -480,9 +538,9 @@ case "$ACTION" in run|demo) echo "Running oxd server: " - if running "$OXD_PID" + if running "$OXD_PID_FILE" then - echo Already Running $(cat "$OXD_PID")! + echo Already Running $(cat "$OXD_PID_FILE")! exit 1 fi @@ -490,9 +548,9 @@ case "$ACTION" in ;; check|status) - if running "$OXD_PID" + if running "$OXD_PID_FILE" then - echo "oxd server running pid=$(< "$OXD_PID")" + echo "oxd server running pid=$(< "$OXD_PID_FILE")" else echo "oxd server NOT running" fi @@ -500,7 +558,7 @@ case "$ACTION" in echo "OXD_HOME = $OXD_HOME" echo "OXD_BASE = $OXD_BASE" echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" + echo "OXD_PID_FILE = $OXD_PID_FILE" echo "OXD_START = $OXD_START" echo "OXD_LOGS = $OXD_LOGS" echo "OXD_STATE = $OXD_STATE" @@ -511,7 +569,7 @@ case "$ACTION" in echo "RUN_CMD = ${RUN_CMD[*]}" echo - if running "$OXD_PID" + if running "$OXD_PID_FILE" then exit 0 fi From 74cc031ec9ccb717708ceeec5ebb58410d9e6141 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 22:57:46 +0400 Subject: [PATCH 041/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 66 +++++++++++++++++----------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 9deb0a77b..9773a81d2 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -1,24 +1,24 @@ -%define name1 oxd-server -Name: oxd-server -Version: 3.1.4 +%define name1 oxd-server-4.0.0 +Name: oxd-server-4.0.0 +Version: 1 Release: 1.centos6 Summary: plugins for OpenID and UMA Group: System Environment/Daemons License: MIT URL: http://www.gluu.org -Source0: %{name}-%{version}.tar.gz -Source1: oxd-server.init.d +Source0: %{name}.tar.gz +Source1: oxd-server-4.0.0.init.d Source2: oxd-https-extension Source3: oxd-server-default BuildArch: noarch -Conflicts: oxd-server +Conflicts: oxd-server-4.0.0 %description oxd - OpenID Connect and UMA plugins for Apache and nginx web containers %prep -%setup -qn %{name}-%{version} +%setup -qn %{name} %build #mvn clean package -U -Dmaven.test.skip=true @@ -26,10 +26,10 @@ Apache and nginx web containers %install rm -rf $RPM_BUILD_ROOT -install -d %{buildroot}/opt/%{name1} -install -d %{buildroot}/opt/%{name1}/conf -install -d %{buildroot}/opt/%{name1}/bin -install -d %{buildroot}/opt/%{name1}/lib +install -d %{buildroot}/opt/oxd-server +install -d %{buildroot}/opt/oxd-server/conf +install -d %{buildroot}/opt/oxd-server/bin +install -d %{buildroot}/opt/oxd-server/lib install -d %{buildroot}/etc/init.d install -d %{buildroot}/%{_initddir} install -d %{buildroot}/opt/oxd-https-extension/lib/ @@ -38,30 +38,30 @@ install -m 755 %SOURCE1 %{buildroot}/etc/init.d/%{name1} install -m 755 %SOURCE2 %{buildroot}/etc/init.d/oxd-https-extension install -m 755 %SOURCE1 %{buildroot}/%{_initddir}/%{name1} install -m 755 %SOURCE2 %{buildroot}/%{_initddir}/oxd-https-extension -install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server -install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/%{name1}/bin -install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/%{name1}/bin -install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/%{name1}/conf/ -install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/%{name1}/lib/ -install -m 644 oxd-https-extension/target/oxd-https-extension-3.1.4-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ +install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server-4.0.0 +install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/oxd-server/bin +install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/oxd-server/bin +install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/oxd-server/conf/ +install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/oxd-server/lib/ +install -m 644 oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.keystore %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.yml %{buildroot}/opt/oxd-https-extension/lib/ -install -m 644 README.md %{buildroot}/opt/%{name1}/ -install -m 644 LICENSE %{buildroot}/opt/%{name1}/ -install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/%{name1}/lib/ +install -m 644 README.md %{buildroot}/opt/oxd-server/ +install -m 644 LICENSE %{buildroot}/opt/oxd-server/ +install -m 644 bcprov-jdk15on-1.54.jar %{buildroot}/opt/oxd-server/lib/ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. -cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server +cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-4.0.0 %clean rm -rf $RPM_BUILD_ROOT %post -chkconfig --add oxd-server +chkconfig --add oxd-server-4.0.0 getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then /usr/sbin/useradd --system --create-home --user-group --shell /bin/bash --home-dir /home/jetty jetty @@ -72,31 +72,31 @@ if [ $? -ne 0 ]; then /usr/sbin/usermod -a -G gluu jetty fi -chown root:root /etc/default/oxd-server 2>&1 +chown root:root /etc/default/oxd-server-4.0.0 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 -chmod 644 /etc/default/oxd-server 2>&1 +chmod 644 /etc/default/oxd-server-4.0.0 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x “/etc/init.d/oxd-server” ] || [ -e “/etc/init/oxd-server.conf” ]; then -service oxd-server stop || exit $? +if [ -x “/etc/init.d/oxd-server-4.0.0” ] || [ -e “/etc/init/oxd-server.conf” ]; then +service oxd-server-4.0.0 stop || exit $? fi -chkconfig --del oxd-server +chkconfig --del oxd-server-4.0.0 %files %defattr(-,root,root,-) -/opt/%{name1}/* +/opt/oxd-server/* /opt/oxd-https-extension/* /etc/init.d/%{name1} /etc/init.d/oxd-https-extension %{_initddir}/%{name1} %{_initddir}/oxd-https-extension -/etc/default/oxd-server +/etc/default/oxd-server-4.0.0 /etc/oxd/* /var/log/oxd-server %changelog -* Mon Mar 07 2016 Adrian Alves - 3.1.4-1 -- Release 3.1.4 +* Mon Mar 07 2016 Adrian Alves - 4.0.0-1 +- Release 4.0.0 From c89c60e8e222ce9067e4e303ae6c157c1a44e4b3 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:26:37 +0400 Subject: [PATCH 042/230] Create oxd-server-4.0.init.d --- oxd-server-4.0.init.d | 586 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 586 insertions(+) create mode 100644 oxd-server-4.0.init.d diff --git a/oxd-server-4.0.init.d b/oxd-server-4.0.init.d new file mode 100644 index 000000000..3fb95badb --- /dev/null +++ b/oxd-server-4.0.init.d @@ -0,0 +1,586 @@ +#!/usr/bin/env bash + +# LSB Tags +### BEGIN INIT INFO +# Provides: oxd-server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: oxd-server start script. +# Description: Start oxd server. +### END INIT INFO + +# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: oxd server +# processname: oxd-server +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# The files will be checked for existence before being passed to oxd-server. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# OXD_HOME +# Where oxd is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# +# OXD_BASE +# Where your oxd server base directory is. If not set, the value from +# $OXD_HOME will be used. +# +# OXD_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run OXD_BASE and /tmp +# if not set. +# +# OXD_PID_FILE +# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid +# +# OXD_ARGS +# The default arguments to pass to oxd-server. +# +# OXD_USER +# if set, then used as a username to run the server as +# +# OXD_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when OXD_USER does not +# have shell access, e.g. /bin/false +# +# OXD_INIT_LOG +SERVICE_NAME="oxd-server" +OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# oxd-server's hallmark +################################################## +OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" + + +################################################## +# Try to determine OXD_HOME if not set +################################################## +if [ -z "$OXD_HOME" ] +then + OXD_SH=$0 + case "$OXD_SH" in + /*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*) OXD_HOME=.. ;; + */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; + */*) OXD_HOME=. ;; + *) OXD_HOME=.. ;; + esac + + if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] + then + OXD_HOME= + fi +fi + + +################################################## +# No OXD_HOME yet? We're out of luck! +################################################## +if [ -z "$OXD_HOME" ]; then + echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$OXD_HOME" +OXD_HOME=$PWD + + +################################################## +# Set OXD_BASE +################################################## +if [ -z "$OXD_BASE" ]; then + OXD_BASE=$OXD_HOME +fi + +cd "$OXD_BASE" +OXD_BASE=$PWD + + +##################################################### +# Check that oxd server is where we think it is +##################################################### +if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" + echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$OXD_RUN" ] +then + OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$OXD_PID_FILE" ] +then + OXD_PID_FILE="$OXD_RUN/${NAME}.pid" +fi + +get_pid() { + if [ -f $OXD_PID_FILE ]; then + PID_NUM=$(cat $OXD_PID_FILE) + echo "$PID_NUM" + else + PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" + ###For one more possible bug, find and kill oxd + if [ "x$PID_NUM" != "x" ]; then + echo "$PID_NUM" + fi + fi +} + +if [ -z "$OXD_STATE" ] +then + OXD_STATE=$OXD_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; +esac + + +OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ ! -f "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if OXD_LOGS is defined +##################################################### +if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] +then + OXD_LOGS=$OXD_BASE/logs +fi +if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] +then + OXD_LOGS=$OXD_HOME/logs +fi +if [ "$OXD_LOGS" ] +then + + case "`uname`" in + CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add oxd server properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +OXD_HOME="`cygpath -w $OXD_HOME`" +OXD_BASE="`cygpath -w $OXD_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the oxd server will be started +##################################################### + +OXD_START="org.xdi.oxd.server.ServerLauncher" + +case "`uname`" in +CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi +dip_in_logs() { + if [ ! -f $OXD_INIT_LOG ]; then + sleep 10 + fi + echo "Checking logs for possible errors:" + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + while true; + do + if [ "x$INIT_START_STATUS" != "x" ]; then + if [ "x$PREV_START_STATUS" = "x" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + fi + fi + if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + else + break; + fi + done +} + +do_start () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" = "x" ]; then + echo "Starting $SERVICE_NAME:" + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + dip_in_logs + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some error encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + + fi + chown "$OXD_USER" "$OXD_PID_FILE" + else + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID_FILE" + chown "$OXD_USER" "$OXD_PID_FILE" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID_FILE'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID_FILE" + fi + fi + echo "PID: [`get_pid`]" + echo "OK `date`" + else + echo "$SERVICE_NAME is already running ..." + echo "PID: [$PID_NUM]" + exit 1 + fi +} + +do_stop () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" != "x" ]; then + echo -n "Stopping $SERVICE_NAME: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID_FILE"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID_FILE" ] ; then + echo "ERROR: no pid found at $OXD_PID_FILE" + exit 1 + fi + + PID=$(cat "$OXD_PID_FILE" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID_FILE" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID_FILE; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID_FILE" + rm -f "$OXD_STATE" + echo OK + else + echo "$SERVICE_NAME is not running ..." + exit 1 + fi +} +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + do_start + ;; + + stop) + do_stop + ;; + + restart) + OXD_SH=$0 + > "$OXD_STATE" + + "$OXD_SH" stop "$@" + "$OXD_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running oxd server: " + + if running "$OXD_PID_FILE" + then + echo Already Running $(cat "$OXD_PID_FILE")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + if running "$OXD_PID_FILE" + then + echo "oxd server running pid=$(< "$OXD_PID_FILE")" + else + echo "oxd server NOT running" + fi + echo + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_LOGS = $OXD_LOGS" + echo "OXD_STATE = $OXD_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$OXD_PID_FILE" + then + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 From 393586f8e3faf491a6c01fe0318794b1d42580e0 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:26:47 +0400 Subject: [PATCH 043/230] Delete oxd-server.init --- oxd-server.init | 528 ------------------------------------------------ 1 file changed, 528 deletions(-) delete mode 100755 oxd-server.init diff --git a/oxd-server.init b/oxd-server.init deleted file mode 100755 index 33ac2deb2..000000000 --- a/oxd-server.init +++ /dev/null @@ -1,528 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID" ] -then - OXD_PID="$OXD_RUN/${NAME}.pid" -fi - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi - -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - echo -n "Starting oxd server: " - - if (( NO_START )); then - echo "Not starting ${NAME} - NO_START=1"; - exit - fi - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - - start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - else - - if running $OXD_PID - then - echo "Already Running $(cat $OXD_PID)!" - exit 1 - fi - - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID" - chown "$OXD_USER" "$OXD_PID" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID" - fi - - fi - - if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null - then - if started "$OXD_STATE" "$OXD_PID" - then - echo "OK `date`" - else - echo "FAILED `date`" - exit 1 - fi - else - echo "ok `date`" - fi - - ;; - - stop) - echo -n "Stopping oxd server: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID" ] ; then - echo "ERROR: no pid found at $OXD_PID" - exit 1 - fi - - PID=$(cat "$OXD_PID" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID" - rm -f "$OXD_STATE" - echo OK - - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID" - then - echo Already Running $(cat "$OXD_PID")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID" - then - echo "oxd server running pid=$(< "$OXD_PID")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From 893cc91f4aaa66bc6d66adc64bf7a03cf22d5275 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:27:19 +0400 Subject: [PATCH 044/230] Create oxd-server-4.0.init.d --- debian/oxd-server-4.0.init.d | 586 +++++++++++++++++++++++++++++++++++ 1 file changed, 586 insertions(+) create mode 100644 debian/oxd-server-4.0.init.d diff --git a/debian/oxd-server-4.0.init.d b/debian/oxd-server-4.0.init.d new file mode 100644 index 000000000..3fb95badb --- /dev/null +++ b/debian/oxd-server-4.0.init.d @@ -0,0 +1,586 @@ +#!/usr/bin/env bash + +# LSB Tags +### BEGIN INIT INFO +# Provides: oxd-server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: oxd-server start script. +# Description: Start oxd server. +### END INIT INFO + +# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: oxd server +# processname: oxd-server +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# The files will be checked for existence before being passed to oxd-server. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# OXD_HOME +# Where oxd is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# +# OXD_BASE +# Where your oxd server base directory is. If not set, the value from +# $OXD_HOME will be used. +# +# OXD_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run OXD_BASE and /tmp +# if not set. +# +# OXD_PID_FILE +# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid +# +# OXD_ARGS +# The default arguments to pass to oxd-server. +# +# OXD_USER +# if set, then used as a username to run the server as +# +# OXD_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when OXD_USER does not +# have shell access, e.g. /bin/false +# +# OXD_INIT_LOG +SERVICE_NAME="oxd-server" +OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# oxd-server's hallmark +################################################## +OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" + + +################################################## +# Try to determine OXD_HOME if not set +################################################## +if [ -z "$OXD_HOME" ] +then + OXD_SH=$0 + case "$OXD_SH" in + /*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*) OXD_HOME=.. ;; + */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; + */*) OXD_HOME=. ;; + *) OXD_HOME=.. ;; + esac + + if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] + then + OXD_HOME= + fi +fi + + +################################################## +# No OXD_HOME yet? We're out of luck! +################################################## +if [ -z "$OXD_HOME" ]; then + echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$OXD_HOME" +OXD_HOME=$PWD + + +################################################## +# Set OXD_BASE +################################################## +if [ -z "$OXD_BASE" ]; then + OXD_BASE=$OXD_HOME +fi + +cd "$OXD_BASE" +OXD_BASE=$PWD + + +##################################################### +# Check that oxd server is where we think it is +##################################################### +if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" + echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$OXD_RUN" ] +then + OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$OXD_PID_FILE" ] +then + OXD_PID_FILE="$OXD_RUN/${NAME}.pid" +fi + +get_pid() { + if [ -f $OXD_PID_FILE ]; then + PID_NUM=$(cat $OXD_PID_FILE) + echo "$PID_NUM" + else + PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" + ###For one more possible bug, find and kill oxd + if [ "x$PID_NUM" != "x" ]; then + echo "$PID_NUM" + fi + fi +} + +if [ -z "$OXD_STATE" ] +then + OXD_STATE=$OXD_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; +esac + + +OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ ! -f "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if OXD_LOGS is defined +##################################################### +if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] +then + OXD_LOGS=$OXD_BASE/logs +fi +if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] +then + OXD_LOGS=$OXD_HOME/logs +fi +if [ "$OXD_LOGS" ] +then + + case "`uname`" in + CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add oxd server properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +OXD_HOME="`cygpath -w $OXD_HOME`" +OXD_BASE="`cygpath -w $OXD_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the oxd server will be started +##################################################### + +OXD_START="org.xdi.oxd.server.ServerLauncher" + +case "`uname`" in +CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi +dip_in_logs() { + if [ ! -f $OXD_INIT_LOG ]; then + sleep 10 + fi + echo "Checking logs for possible errors:" + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + while true; + do + if [ "x$INIT_START_STATUS" != "x" ]; then + if [ "x$PREV_START_STATUS" = "x" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + fi + fi + if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + else + break; + fi + done +} + +do_start () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" = "x" ]; then + echo "Starting $SERVICE_NAME:" + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + dip_in_logs + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some error encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + + fi + chown "$OXD_USER" "$OXD_PID_FILE" + else + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID_FILE" + chown "$OXD_USER" "$OXD_PID_FILE" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID_FILE'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID_FILE" + fi + fi + echo "PID: [`get_pid`]" + echo "OK `date`" + else + echo "$SERVICE_NAME is already running ..." + echo "PID: [$PID_NUM]" + exit 1 + fi +} + +do_stop () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" != "x" ]; then + echo -n "Stopping $SERVICE_NAME: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID_FILE"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID_FILE" ] ; then + echo "ERROR: no pid found at $OXD_PID_FILE" + exit 1 + fi + + PID=$(cat "$OXD_PID_FILE" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID_FILE" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID_FILE; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID_FILE" + rm -f "$OXD_STATE" + echo OK + else + echo "$SERVICE_NAME is not running ..." + exit 1 + fi +} +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + do_start + ;; + + stop) + do_stop + ;; + + restart) + OXD_SH=$0 + > "$OXD_STATE" + + "$OXD_SH" stop "$@" + "$OXD_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running oxd server: " + + if running "$OXD_PID_FILE" + then + echo Already Running $(cat "$OXD_PID_FILE")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + if running "$OXD_PID_FILE" + then + echo "oxd server running pid=$(< "$OXD_PID_FILE")" + else + echo "oxd server NOT running" + fi + echo + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_LOGS = $OXD_LOGS" + echo "OXD_STATE = $OXD_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$OXD_PID_FILE" + then + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 From 4258f2f67c5c27977be99ae7e6fa3cf5311cbc5c Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:28:09 +0400 Subject: [PATCH 045/230] Update changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 62d86b5e0..b2c62109b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -oxd-server (4.0.0-1~trusty+Ub14.04) trusty; urgency=low +oxd-server-4.0 (1-1~trusty+Ub14.04) trusty; urgency=low * Initial release (Closes: #1232) From 6a63001d944377e26b1d7a84dfc9d52921b7186e Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:28:59 +0400 Subject: [PATCH 046/230] Update control --- debian/control | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index 1e8d1f4a8..6158b218a 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,5 @@ -Source: oxd-server + +Source: oxd-server-4.0 Section: java Priority: optional Maintainer: Adrian Alves @@ -6,7 +7,7 @@ Build-Depends: debhelper (>= 8.0.0), Standards-Version: 3.9.5 Homepage: http://www.gluu.org -Package: oxd-server +Package: oxd-server-4.0 Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, @@ -14,4 +15,4 @@ Description: plugins for OpenID and UMA oxd-server is a middleware service web application developers can use to facilitate user authentication and authorization with an external OAuth 2.0 - identity provider. +identity provider. From f71b2388924929f6f7ef9a970d45c7150323cc86 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:30:13 +0400 Subject: [PATCH 047/230] Delete oxd-server.init.d --- debian/oxd-server.init.d | 583 --------------------------------------- 1 file changed, 583 deletions(-) delete mode 100755 debian/oxd-server.init.d diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d deleted file mode 100755 index 34b8c7c5e..000000000 --- a/debian/oxd-server.init.d +++ /dev/null @@ -1,583 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID_FILE -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# -# OXD_INIT_LOG -SERVICE_NAME="oxd-server" -OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID_FILE" ] -then - OXD_PID_FILE="$OXD_RUN/${NAME}.pid" -fi - -get_pid() { - if [ -f $OXD_PID_FILE ]; then - PID_NUM=$(cat $OXD_PID_FILE) - echo "$PID_NUM" - else - PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" - ###For one more possible bug, find and kill oxd - if [ "x$PID_NUM" != "x" ]; then - echo "$PID_NUM" - fi - fi -} - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ ! -f "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi -dip_in_logs() { - echo "Checking logs for possible errors:" - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - while true; - do - if [ "x$INIT_START_STATUS" != "x" ]; then - if [ "x$PREV_START_STATUS" = "x" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - fi - fi - if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - else - break; - fi - done -} - -do_start () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" = "x" ]; then - echo "Starting $SERVICE_NAME:" - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - dip_in_logs - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` - if [ "x$START_STATUS" = "x" ]; then - ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process - if [ "x$ERROR_STATUS" != "x" ]; then - ### Since error occurred, we should remove the PID file at this point itself. - rm -f $OXD_PID_FILE - echo "Some error encountered..." - echo "See log below: " - echo "" - echo "$ERROR_STATUS" - echo "" - echo "For details please check $OXD_INIT_LOG ." - echo "Exiting..." - exit 1 - fi - - fi - chown "$OXD_USER" "$OXD_PID_FILE" - else - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID_FILE" - chown "$OXD_USER" "$OXD_PID_FILE" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID_FILE'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID_FILE" - fi - fi - echo "PID: [`get_pid`]" - echo "OK `date`" - else - echo "$SERVICE_NAME is already running ..." - echo "PID: [$PID_NUM]" - exit 1 - fi -} - -do_stop () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" != "x" ]; then - echo -n "Stopping $SERVICE_NAME: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID_FILE"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID_FILE" ] ; then - echo "ERROR: no pid found at $OXD_PID_FILE" - exit 1 - fi - - PID=$(cat "$OXD_PID_FILE" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID_FILE" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID_FILE; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID_FILE" - rm -f "$OXD_STATE" - echo OK - else - echo "$SERVICE_NAME is not running ..." - exit 1 - fi -} -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - do_start - ;; - - stop) - do_stop - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID_FILE" - then - echo Already Running $(cat "$OXD_PID_FILE")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID_FILE" - then - echo "oxd server running pid=$(< "$OXD_PID_FILE")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID_FILE" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From f64d6ac78edec3f5dd0e6927320ca32564a51472 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:31:34 +0400 Subject: [PATCH 048/230] Update postinst --- debian/postinst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/postinst b/debian/postinst index c92b498f6..5f7af5bbb 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,6 +1,6 @@ #!/bin/bash -/etc/init.d/oxd-server stop > /dev/null 2>&1 +/etc/init.d/oxd-server-4.0 stop > /dev/null 2>&1 /etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 @@ -14,12 +14,12 @@ if [ $? -ne 0 ]; then fi #chown root:gluu /var/log/oxd-server.log 2>&1 -chown root:root /etc/default/oxd-server 2>&1 +chown root:root /etc/default/oxd-server-4.0 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 -chmod 644 /etc/default/oxd-server 2>&1 +chmod 644 /etc/default/oxd-server-4.0 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 From 6bf2b4f5864e993de9eab03801f331320388d722 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:35:21 +0400 Subject: [PATCH 049/230] Update rules --- debian/rules | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/debian/rules b/debian/rules index 4ae9a2d40..6f61afd19 100755 --- a/debian/rules +++ b/debian/rules @@ -10,7 +10,7 @@ #override_dh_clean: # rm -rf oxd-common/target # rm -rf oxd-client/target -# rm -rf oxd-common/target +# rm -rf oxd-common/target # rm -rf oxd-server/target # rm -rf oxd-rp-client/target # dh_clean @@ -18,31 +18,31 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server/opt/oxd-server/conf/ - mkdir -p debian/oxd-server/opt/oxd-server/bin/ - mkdir -p debian/oxd-server/opt/oxd-server/lib/ - mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-common/target/oxd-common.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-server/target/oxd-server.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ - mkdir -p debian/oxd-server/var/log/ - mkdir -p debian/oxd-server/etc/oxd/oxd-server/ - mkdir -p debian/oxd-server/etc/default/ - cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. - cp -a logs/oxd-server.log debian/oxd-server/var/log/ - cp -a debian/oxd-server-default debian/oxd-server/etc/default/oxd-server - rm -rf debian/oxd-server/opt/oxd-server/conf + mkdir -p debian/oxd-server-4.0/opt/oxd-server/conf/ + mkdir -p debian/oxd-server-4.0/opt/oxd-server/bin/ + mkdir -p debian/oxd-server-4.0/opt/oxd-server/lib/ + mkdir -p debian/oxd-server-4.0/opt/oxd-https-extension/lib/ + cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server-4.0/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server-4.0/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/log4j.xml debian/oxd-server-4.0/opt/oxd-server/conf/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server-4.0/opt/oxd-server/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server-4.0/opt/oxd-server/bin/ + cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server-4.0/opt/oxd-server/lib/ + cp oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar debian/oxd-server-4.0/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/oxd-https.keystore debian/oxd-server-4.0/opt/oxd-https-extension/lib/ + cp oxd-https-extension/oxd-https.yml debian/oxd-server-4.0/opt/oxd-https-extension/lib/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server-4.0/opt/oxd-server/lib/ + mkdir -p debian/oxd-server-4.0/var/log/ + mkdir -p debian/oxd-server-4.0/etc/oxd/oxd-server/ + mkdir -p debian/oxd-server-4.0/etc/default/ + cp -a debian/oxd-server-4.0/opt/oxd-server/conf/* debian/oxd-server-4.0/etc/oxd/oxd-server/. + #cp -a logs/oxd-server.log debian/oxd-server-4.0/var/log/ + cp -a debian/oxd-server-default debian/oxd-server-4.0/etc/default/oxd-server-4.0 + cp -a debian/oxd-https-extension-default debian/oxd-server-4.0/etc/default/oxd-https-extension + rm -rf debian/oxd-server-4.0/opt/oxd-server/conf override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh - chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server/etc/default/oxd-server + chmod 755 debian/oxd-server-4.0/opt/oxd-server/bin/oxd-start.sh + chmod 755 debian/oxd-server-4.0/opt/oxd-server/bin/lsox.sh + chmod 644 debian/oxd-server-4.0/etc/default/oxd-server-4.0 From 735caa3e8babb8abef8d9a78b64a0e11671e47a5 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 8 Oct 2018 23:39:36 +0400 Subject: [PATCH 050/230] Update control --- debian/control | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/control b/debian/control index 6158b218a..3b9d9b82e 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,3 @@ - Source: oxd-server-4.0 Section: java Priority: optional From 451f5335b457808af99038a713d3b9d4a71892ef Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 9 Oct 2018 17:08:18 +0300 Subject: [PATCH 051/230] #225 : BIG migration of the oxd protocol from socket to RESTy style --- .../org/xdi/oxd/client/ClientInterface.java | 43 +++++---- .../org/xdi/oxd/client/CommandResponse2.java | 92 ------------------- .../org/xdi/oxd/common/CommandResponse.java | 64 ------------- .../org/xdi/oxd/common/ResponseStatus.java | 64 ------------- .../xdi/oxd/common/response/POJOResponse.java | 17 ++++ .../java/org/xdi/oxd/server/Processor.java | 6 +- .../java/org/xdi/oxd/server/RestResource.java | 9 +- .../op/AuthorizationCodeFlowOperation.java | 8 +- .../org/xdi/oxd/server/op/BaseOperation.java | 16 ---- .../server/op/CheckAccessTokenOperation.java | 8 +- .../oxd/server/op/CheckIdTokenOperation.java | 8 +- ...GetAccessTokenByRefreshTokenOperation.java | 6 +- .../op/GetAuthorizationCodeOperation.java | 6 +- .../op/GetAuthorizationUrlOperation.java | 6 +- .../server/op/GetClientTokenOperation.java | 6 +- .../oxd/server/op/GetLogoutUrlOperation.java | 8 +- .../org/xdi/oxd/server/op/GetRpOperation.java | 10 +- .../server/op/GetTokensByCodeOperation.java | 6 +- .../oxd/server/op/GetUserInfoOperation.java | 6 +- .../org/xdi/oxd/server/op/IOperation.java | 8 +- .../oxd/server/op/ImplicitFlowOperation.java | 8 +- .../op/IntrospectAccessTokenOperation.java | 8 +- .../oxd/server/op/IntrospectRptOperation.java | 12 +-- .../xdi/oxd/server/op/OperationFactory.java | 2 +- .../oxd/server/op/RegisterSiteOperation.java | 6 +- .../oxd/server/op/RemoveSiteOperation.java | 6 +- .../RpGetGetClaimsGatheringUrlOperation.java | 6 +- .../xdi/oxd/server/op/RpGetRptOperation.java | 8 +- .../oxd/server/op/RsCheckAccessOperation.java | 12 ++- .../xdi/oxd/server/op/RsProtectOperation.java | 6 +- .../oxd/server/op/UpdateSiteOperation.java | 6 +- .../xdi/oxd/server/op/ValidateOperation.java | 7 +- .../oxd/server/AuthorizationCodeFlowTest.java | 2 +- .../xdi/oxd/server/CheckAccessTokenTest.java | 6 +- .../org/xdi/oxd/server/CheckIdTokenTest.java | 6 +- .../oxd/server/GetAuthorizationUrlTest.java | 2 +- .../xdi/oxd/server/GetClientTokenTest.java | 2 +- .../org/xdi/oxd/server/GetLogoutUrlTest.java | 2 +- .../xdi/oxd/server/GetTokensByCodeTest.java | 7 +- .../org/xdi/oxd/server/GetUserInfoTest.java | 4 +- .../oxd/server/IntrospectAccessTokenTest.java | 4 +- .../org/xdi/oxd/server/IntrospectRptTest.java | 2 +- .../org/xdi/oxd/server/RegisterSiteTest.java | 6 +- .../org/xdi/oxd/server/RemoveSiteTest.java | 2 +- .../java/org/xdi/oxd/server/RpGetRptTest.java | 2 +- .../org/xdi/oxd/server/RsCheckAccessTest.java | 2 +- .../org/xdi/oxd/server/RsProtectTest.java | 6 +- .../org/xdi/oxd/server/SetupClientTest.java | 4 +- .../test/java/org/xdi/oxd/server/Tester.java | 2 +- .../java/org/xdi/oxd/server/UmaFullTest.java | 2 +- .../server/UmaGetClaimsGatheringUrlTest.java | 2 +- .../org/xdi/oxd/server/manual/GoogleTest.java | 6 +- .../xdi/oxd/server/manual/NotAllowedTest.java | 4 +- .../org/xdi/oxd/server/manual/StressTest.java | 2 +- 54 files changed, 172 insertions(+), 389 deletions(-) delete mode 100644 oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java delete mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java delete mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/ResponseStatus.java create mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/response/POJOResponse.java diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index c49462363..5b9605e62 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -1,6 +1,9 @@ package org.xdi.oxd.client; +import org.xdi.oxauth.model.common.IntrospectionResponse; +import org.xdi.oxd.common.introspection.CorrectRptIntrospectionResponse; import org.xdi.oxd.common.params.*; +import org.xdi.oxd.common.response.*; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -20,119 +23,119 @@ public interface ClientInterface { @Path("/get-client-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getClientToken(GetClientTokenParams params); + GetClientTokenResponse getClientToken(GetClientTokenParams params); @POST @Path("/introspect-access-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 introspectAccessToken(@HeaderParam("Authorization") String authorization, IntrospectAccessTokenParams params); + IntrospectionResponse introspectAccessToken(@HeaderParam("Authorization") String authorization, IntrospectAccessTokenParams params); @POST @Path("/introspect-rpt") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 introspectRpt(@HeaderParam("Authorization") String authorization, IntrospectRptParams params); + CorrectRptIntrospectionResponse introspectRpt(@HeaderParam("Authorization") String authorization, IntrospectRptParams params); @POST @Path("/register-site") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 registerSite(RegisterSiteParams params); + RegisterSiteResponse registerSite(RegisterSiteParams params); @POST @Path("/update-site") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 updateSite(@HeaderParam("Authorization") String authorization, UpdateSiteParams params); + UpdateSiteResponse updateSite(@HeaderParam("Authorization") String authorization, UpdateSiteParams params); @POST @Path("/remove-site") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 removeSite(@HeaderParam("Authorization") String authorization, RemoveSiteParams params); + RemoveSiteResponse removeSite(@HeaderParam("Authorization") String authorization, RemoveSiteParams params); @POST @Path("/get-authorization-url") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getAuthorizationUrl(@HeaderParam("Authorization") String authorization, GetAuthorizationUrlParams params); + GetAuthorizationUrlResponse getAuthorizationUrl(@HeaderParam("Authorization") String authorization, GetAuthorizationUrlParams params); @POST @Path("/get-authorization-code") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getAuthorizationCode(@HeaderParam("Authorization") String authorization, GetAuthorizationCodeParams params); + GetAuthorizationCodeResponse getAuthorizationCode(@HeaderParam("Authorization") String authorization, GetAuthorizationCodeParams params); @POST @Path("/get-tokens-by-code") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getTokenByCode(@HeaderParam("Authorization") String authorization, GetTokensByCodeParams params); + GetTokensByCodeResponse getTokenByCode(@HeaderParam("Authorization") String authorization, GetTokensByCodeParams params); @POST @Path("/get-user-info") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getUserInfo(@HeaderParam("Authorization") String authorization, GetUserInfoParams params); + GetUserInfoResponse getUserInfo(@HeaderParam("Authorization") String authorization, GetUserInfoParams params); @POST @Path("/get-logout-uri") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getLogoutUri(@HeaderParam("Authorization") String authorization, GetLogoutUrlParams params); + LogoutResponse getLogoutUri(@HeaderParam("Authorization") String authorization, GetLogoutUrlParams params); @POST @Path("/get-access-token-by-refresh-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getAccessTokenByRefreshToken(@HeaderParam("Authorization") String authorization, GetAccessTokenByRefreshTokenParams params); + GetClientTokenResponse getAccessTokenByRefreshToken(@HeaderParam("Authorization") String authorization, GetAccessTokenByRefreshTokenParams params); @POST @Path("/uma-rs-protect") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 umaRsProtect(@HeaderParam("Authorization") String authorization, RsProtectParams2 params); + RsProtectResponse umaRsProtect(@HeaderParam("Authorization") String authorization, RsProtectParams2 params); @POST @Path("/uma-rs-check-access") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 umaRsCheckAccess(@HeaderParam("Authorization") String authorization, RsCheckAccessParams params); + RsCheckAccessResponse umaRsCheckAccess(@HeaderParam("Authorization") String authorization, RsCheckAccessParams params); @POST @Path("/uma-rp-get-rpt") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 umaRpGetRpt(@HeaderParam("Authorization") String authorization, RpGetRptParams params); + RpGetRptResponse umaRpGetRpt(@HeaderParam("Authorization") String authorization, RpGetRptParams params); @POST @Path("/uma-rp-get-claims-gathering-url") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 umaRpGetClaimsGatheringUrl(@HeaderParam("Authorization") String authorization, RpGetClaimsGatheringUrlParams params); + RpGetClaimsGatheringUrlResponse umaRpGetClaimsGatheringUrl(@HeaderParam("Authorization") String authorization, RpGetClaimsGatheringUrlParams params); @POST @Path("/authorization-code-flow") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 authorizationCodeFlow(@HeaderParam("Authorization") String authorization, AuthorizationCodeFlowParams params); + AuthorizationCodeFlowResponse authorizationCodeFlow(@HeaderParam("Authorization") String authorization, AuthorizationCodeFlowParams params); @POST @Path("/check-access-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 checkAccessToken(@HeaderParam("Authorization") String authorization, CheckAccessTokenParams params); + CheckAccessTokenResponse checkAccessToken(@HeaderParam("Authorization") String authorization, CheckAccessTokenParams params); @POST @Path("/check-id-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 checkIdToken(@HeaderParam("Authorization") String authorization, CheckIdTokenParams params); + CheckIdTokenResponse checkIdToken(@HeaderParam("Authorization") String authorization, CheckIdTokenParams params); @POST @Path("/get-rp") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - CommandResponse2 getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); + GetRpResponse getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); } diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java b/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java deleted file mode 100644 index 785c8ca58..000000000 --- a/oxd-client/src/main/java/org/xdi/oxd/client/CommandResponse2.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.xdi.oxd.client; - - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; -import com.fasterxml.jackson.databind.JsonNode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.xdi.oxd.common.CoreUtils; -import org.xdi.oxd.common.ResponseStatus; - -import java.io.Serializable; - -/** - * @author yuriyz - */ -@JsonPropertyOrder({"status", "data"}) -public class CommandResponse2 implements Serializable { - - private static final Logger LOG = LoggerFactory.getLogger(org.xdi.oxd.common.CommandResponse.class); - - @JsonProperty(value = "status") - private ResponseStatus status; - @JsonProperty(value = "data") - private JsonNode data; - - public CommandResponse2() { - } - - public CommandResponse2(ResponseStatus p_status) { - status = p_status; - } - - public CommandResponse2(ResponseStatus p_status, JsonNode p_data) { - status = p_status; - data = p_data; - } - - public ResponseStatus getStatus() { - return status; - } - - public CommandResponse2 setStatus(ResponseStatus p_status) { - status = p_status; - return this; - } - - public JsonNode getData() { - return data; - } - - public CommandResponse2 setData(JsonNode p_data) { - data = p_data; - return this; - } - - public T dataAsResponse(Class p_class) { - if (data != null && p_class != null) { - final String asString = data.toString(); - try { - return CoreUtils.createJsonMapper().readValue(asString, p_class); - } catch (Exception e) { - LOG.error(e.getMessage(), e); - } - LOG.error("Unable to parse string to response, string: {}", asString); - } - return null; - } - - public static CommandResponse2 ok() { - return new CommandResponse2(ResponseStatus.OK); - } - - public static CommandResponse2 error() { - return new CommandResponse2(ResponseStatus.ERROR); - } - - /** - * Returns string representation of object - * - * @return string representation of object - */ - @Override - public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("CommandResponse2"); - sb.append("{status=").append(status); - sb.append(", params=").append(data); - sb.append('}'); - return sb.toString(); - } -} \ No newline at end of file diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java deleted file mode 100644 index 181ea57d1..000000000 --- a/oxd-common/src/main/java/org/xdi/oxd/common/CommandResponse.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * All rights reserved -- Copyright 2015 Gluu Inc. - */ -package org.xdi.oxd.common; - -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.annotate.JsonProperty; -import org.codehaus.jackson.annotate.JsonPropertyOrder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.Serializable; - -/** - * @author Yuriy Zabrovarnyy - * @version 0.9, 09/08/2013 - */ -@JsonPropertyOrder({"status", "data"}) -@com.fasterxml.jackson.annotation.JsonPropertyOrder({"status", "data"}) -public class CommandResponse implements Serializable { - - private static final Logger LOG = LoggerFactory.getLogger(CommandResponse.class); - - @JsonProperty(value = "status") - @com.fasterxml.jackson.annotation.JsonProperty(value="status") - private ResponseStatus status; - @JsonProperty(value = "data") - @com.fasterxml.jackson.annotation.JsonProperty(value="data") - private JsonNode data; - - public CommandResponse() { - } - - public CommandResponse(ResponseStatus p_status) { - status = p_status; - } - - public CommandResponse(ResponseStatus p_status, JsonNode p_data) { - status = p_status; - data = p_data; - } - - public CommandResponse setData(JsonNode p_data) { - data = p_data; - return this; - } - - public static CommandResponse ok() { - return new CommandResponse(ResponseStatus.OK); - } - - /** - * Returns string representation of object - * - * @return string representation of object - */ - @Override - public String toString() { - return "CommandResponse" + - "{status=" + status + - ", params=" + data + - '}'; - } -} diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/ResponseStatus.java b/oxd-common/src/main/java/org/xdi/oxd/common/ResponseStatus.java deleted file mode 100644 index 3bf90a8c9..000000000 --- a/oxd-common/src/main/java/org/xdi/oxd/common/ResponseStatus.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * All rights reserved -- Copyright 2015 Gluu Inc. - */ -package org.xdi.oxd.common; - -import org.apache.commons.lang.StringUtils; -import org.codehaus.jackson.annotate.JsonCreator; -import org.codehaus.jackson.annotate.JsonValue; - -/** - * Response status - * - * @author Yuriy Zabrovarnyy - * @version 0.9, 09/08/2013 - */ - -public enum ResponseStatus { - OK("ok"), - ERROR("error"); - - /** - * String value of status - */ - private final String value; - - /** - * Constructor - * - * @param p_value string value of status - */ - private ResponseStatus(String p_value) { - value = p_value; - } - - /** - * Returns string value of status - * - * @return string value of status - */ - @JsonValue - @com.fasterxml.jackson.annotation.JsonValue - public String getValue() { - return value; - } - - /** - * Returns response status object based on string value of status. - * - * @param v string value of status - * @return response status object based on string value of status - */ - @JsonCreator - @com.fasterxml.jackson.annotation.JsonCreator - public static ResponseStatus fromValue(String v) { - if (StringUtils.isNotBlank(v)) { - for (ResponseStatus t : values()) { - if (t.getValue().equalsIgnoreCase(v)) { - return t; - } - } - } - return null; - } -} diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/POJOResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/POJOResponse.java new file mode 100644 index 000000000..662ededd9 --- /dev/null +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/POJOResponse.java @@ -0,0 +1,17 @@ +package org.xdi.oxd.common.response; + +/** + * @author Yuriy Zabrovarnyy + */ +public class POJOResponse implements IOpResponse { + + private final Object node; + + public POJOResponse(Object node) { + this.node = node; + } + + public Object getNode() { + return node; + } +} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java index ad9e13559..45d0a3ff1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java @@ -8,9 +8,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.IParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.op.IOperation; import org.xdi.oxd.server.op.OperationFactory; import org.xdi.oxd.server.service.ValidationService; @@ -36,7 +36,7 @@ public Processor(ValidationService validationService) { this.validationService = validationService; } - public CommandResponse process(Command command) { + public IOpResponse process(Command command) { if (command != null) { try { final IOperation operation = (IOperation) OperationFactory.create(command, ServerLauncher.getInjector()); @@ -44,7 +44,7 @@ public CommandResponse process(Command command) { IParams iParams = Convertor.asParams(operation.getParameterClass(), command); validationService.validate(iParams); - CommandResponse operationResponse = operation.execute(iParams); + IOpResponse operationResponse = operation.execute(iParams); if (operationResponse != null) { return operationResponse; } else { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java index 6ec4a7258..a7b54c853 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java @@ -7,6 +7,8 @@ import org.xdi.oxd.common.CommandType; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.params.*; +import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.common.response.POJOResponse; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -203,7 +205,12 @@ private static String process(CommandType commandType, Strin ((HasProtectionAccessTokenParams) params).setProtectionAccessToken(validateAccessToken(authorization)); } Command command = new Command(commandType, params); - final String json = CoreUtils.asJsonSilently(ServerLauncher.getInjector().getInstance(Processor.class).process(command)); + final IOpResponse response = ServerLauncher.getInjector().getInstance(Processor.class).process(command); + Object forJsonConversion = response; + if (response instanceof POJOResponse) { + forJsonConversion = ((POJOResponse) response).getNode(); + } + final String json = CoreUtils.asJsonSilently(forJsonConversion); LOG.trace("Send back response: {}", json); return json; } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/AuthorizationCodeFlowOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/AuthorizationCodeFlowOperation.java index 17502d681..5ed4c013f 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/AuthorizationCodeFlowOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/AuthorizationCodeFlowOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -15,9 +15,9 @@ import org.xdi.oxauth.model.common.ResponseType; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.AuthorizationCodeFlowParams; import org.xdi.oxd.common.response.AuthorizationCodeFlowResponse; +import org.xdi.oxd.common.response.IOpResponse; import java.util.ArrayList; import java.util.Arrays; @@ -38,10 +38,10 @@ protected AuthorizationCodeFlowOperation(Command command, final Injector injecto } @Override - public CommandResponse execute(AuthorizationCodeFlowParams params) { + public IOpResponse execute(AuthorizationCodeFlowParams params) { final OpenIdConfigurationResponse discovery = getDiscoveryService().getConnectDiscoveryResponseByOxdId(params.getOxdId()); if (discovery != null) { - return okResponse(requestToken(discovery, params)); + return requestToken(discovery, params); } return null; diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java index 12e7ffc7e..7dd8de564 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java @@ -4,14 +4,11 @@ package org.xdi.oxd.server.op; import com.google.inject.Injector; -import org.codehaus.jackson.node.POJONode; import org.xdi.oxauth.model.crypto.OxAuthCryptoProvider; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.HasOxdIdParams; import org.xdi.oxd.common.params.IParams; -import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.Convertor; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.OxdServerConfiguration; @@ -123,17 +120,4 @@ public ValidationService getValidationService() { public Command getCommand() { return command; } - - /** - * Ok response for operation - * - * @param p_data response - * @return ok response with data - */ - public CommandResponse okResponse(IOpResponse p_data) { - if (p_data == null) { - throw HttpException.internalError(); - } - return CommandResponse.ok().setData(new POJONode(p_data)); - } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckAccessTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckAccessTokenOperation.java index b48bd673d..92a290106 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckAccessTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckAccessTokenOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -15,9 +15,9 @@ import org.xdi.oxauth.model.jwt.JwtClaimName; import org.xdi.oxauth.model.jwt.JwtHeaderName; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.CheckAccessTokenParams; import org.xdi.oxd.common.response.CheckAccessTokenResponse; +import org.xdi.oxd.common.response.IOpResponse; import java.util.Date; @@ -35,7 +35,7 @@ protected CheckAccessTokenOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(CheckAccessTokenParams params) throws Exception { + public IOpResponse execute(CheckAccessTokenParams params) throws Exception { final OpenIdConfigurationResponse discoveryResponse = getDiscoveryService().getConnectDiscoveryResponseByOxdId(params.getOxdId()); final String idToken = params.getIdToken(); final String accessToken = params.getAccessToken(); @@ -49,7 +49,7 @@ public CommandResponse execute(CheckAccessTokenParams params) throws Exception { opResponse.setActive(isAccessTokenValid(accessToken, jwt, discoveryResponse)); opResponse.setIssuedAt(issuedAt); opResponse.setExpiresAt(expiresAt); - return okResponse(opResponse); + return opResponse; } private boolean isAccessTokenValid(String p_accessToken, Jwt jwt, OpenIdConfigurationResponse discoveryResponse) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java index 347322f87..b63f6626d 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/CheckIdTokenOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -10,9 +10,9 @@ import org.xdi.oxauth.model.jwt.Jwt; import org.xdi.oxauth.model.jwt.JwtClaimName; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.CheckIdTokenParams; import org.xdi.oxd.common.response.CheckIdTokenResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.service.Rp; @@ -31,7 +31,7 @@ protected CheckIdTokenOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(CheckIdTokenParams params) throws Exception { + public IOpResponse execute(CheckIdTokenParams params) throws Exception { try { OpenIdConfigurationResponse discoveryResponse = getDiscoveryService().getConnectDiscoveryResponseByOxdId(params.getOxdId()); @@ -45,7 +45,7 @@ public CommandResponse execute(CheckIdTokenParams params) throws Exception { opResponse.setIssuedAt(Utils.date(jwt.getClaims().getClaimAsDate(JwtClaimName.ISSUED_AT))); opResponse.setExpiresAt(Utils.date(jwt.getClaims().getClaimAsDate(JwtClaimName.EXPIRATION_TIME))); opResponse.setClaims(jwt.getClaims().toMap()); - return okResponse(opResponse); + return opResponse; } catch (HttpException e) { throw e; } catch (Exception e) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java index a35ac1517..dd54f7888 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAccessTokenByRefreshTokenOperation.java @@ -8,9 +8,9 @@ import org.xdi.oxauth.client.TokenResponse; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.GetAccessTokenByRefreshTokenParams; import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.service.Rp; @@ -35,7 +35,7 @@ protected GetAccessTokenByRefreshTokenOperation(Command command, final Injector } @Override - public CommandResponse execute(GetAccessTokenByRefreshTokenParams params) throws Exception { + public IOpResponse execute(GetAccessTokenByRefreshTokenParams params) throws Exception { try { final Rp rp = getRp(); @@ -50,7 +50,7 @@ public CommandResponse execute(GetAccessTokenByRefreshTokenParams params) throws response.setRefreshToken(tokenResponse.getRefreshToken()); response.setScope(Utils.stringToList(tokenResponse.getScope())); - return okResponse(response); + return response; } else { LOG.error("access_token is blank in response, params: " + params + ", response: " + tokenResponse); LOG.error("Please check AS logs for more details (oxauth.log for CE)."); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationCodeOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationCodeOperation.java index 95146f567..1c389f25f 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationCodeOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationCodeOperation.java @@ -12,9 +12,9 @@ import org.xdi.oxauth.model.common.Prompt; import org.xdi.oxauth.model.common.ResponseType; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.GetAuthorizationCodeParams; import org.xdi.oxd.common.response.GetAuthorizationCodeResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.service.Rp; import java.util.List; @@ -39,7 +39,7 @@ protected GetAuthorizationCodeOperation(Command p_command, final Injector inject } @Override - public CommandResponse execute(GetAuthorizationCodeParams params) { + public IOpResponse execute(GetAuthorizationCodeParams params) { final Rp site = getRp(); String nonce = Strings.isNullOrEmpty(params.getNonce()) ? UUID.randomUUID().toString() : params.getNonce(); @@ -64,7 +64,7 @@ public CommandResponse execute(GetAuthorizationCodeParams params) { ClientUtils.showClient(authorizeClient); if (response != null) { getStateService().putState(params.getState()); - return okResponse(new GetAuthorizationCodeResponse(response.getCode())); + return new GetAuthorizationCodeResponse(response.getCode()); } else { LOG.error("Failed to get response from oxauth client."); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationUrlOperation.java index 6d15ed29c..687c130b8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetAuthorizationUrlOperation.java @@ -8,9 +8,9 @@ import org.xdi.oxauth.model.authorize.AuthorizeRequestParam; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.GetAuthorizationUrlParams; import org.xdi.oxd.common.response.GetAuthorizationUrlResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.service.Rp; @@ -36,7 +36,7 @@ protected GetAuthorizationUrlOperation(Command command, final Injector injector) } @Override - public CommandResponse execute(GetAuthorizationUrlParams params) throws Exception { + public IOpResponse execute(GetAuthorizationUrlParams params) throws Exception { final Rp site = getRp(); String authorizationEndpoint = getDiscoveryService().getConnectDiscoveryResponse(site).getAuthorizationEndpoint(); @@ -71,7 +71,7 @@ public CommandResponse execute(GetAuthorizationUrlParams params) throws Exceptio authorizationEndpoint += "&" + AuthorizeRequestParam.CUSTOM_RESPONSE_HEADERS + "=" + Utils.encode(Util.mapAsString(params.getCustomParameters())); } - return okResponse(new GetAuthorizationUrlResponse(authorizationEndpoint)); + return new GetAuthorizationUrlResponse(authorizationEndpoint); } private List acrValues(Rp site, GetAuthorizationUrlParams params) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java index 618b9bfdc..1c1a658e4 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetClientTokenOperation.java @@ -12,10 +12,10 @@ import org.xdi.oxauth.model.crypto.signature.SignatureAlgorithm; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.GetClientTokenParams; import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; @@ -41,7 +41,7 @@ protected GetClientTokenOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(GetClientTokenParams params) { + public IOpResponse execute(GetClientTokenParams params) { try { final AuthenticationMethod authenticationMethod = AuthenticationMethod.fromString(params.getAuthenticationMethod()); final String tokenEndpoint = getDiscoveryService().getConnectDiscoveryResponse(params.getOpHost(), params.getOpDiscoveryPath()).getTokenEndpoint(); @@ -80,7 +80,7 @@ public CommandResponse execute(GetClientTokenParams params) { response.setRefreshToken(tokenResponse.getRefreshToken()); response.setScope(Utils.stringToList(tokenResponse.getScope())); - return okResponse(response); + return response; } else { LOG.error("access_token is blank in response, params: " + params + ", response: " + tokenResponse); LOG.error("Please check AS logs for more details (oxauth.log for CE)."); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java index dc8dc6752..45fbf8b9b 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java @@ -6,9 +6,9 @@ import org.slf4j.LoggerFactory; import org.xdi.oxauth.client.OpenIdConfigurationResponse; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.GetLogoutUrlParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.LogoutResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.ConfigurationService; @@ -37,7 +37,7 @@ protected GetLogoutUrlOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(GetLogoutUrlParams params) throws Exception { + public IOpResponse execute(GetLogoutUrlParams params) throws Exception { final Rp site = getRp(); OpenIdConfigurationResponse discoveryResponse = getDiscoveryService().getConnectDiscoveryResponse(site); @@ -54,7 +54,7 @@ public CommandResponse execute(GetLogoutUrlParams params) throws Exception { if (Strings.isNullOrEmpty(endSessionEndpoint)) { if (site.getOpHost().startsWith(GOOGLE_OP_HOST) && getInstance(ConfigurationService.class).get().getSupportGoogleLogout()) { String logoutUrl = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=" + postLogoutRedirectUrl; - return okResponse(new LogoutResponse(logoutUrl)); + return new LogoutResponse(logoutUrl); } LOG.error("Failed to get end_session_endpoint at: " + getDiscoveryService().getConnectDiscoveryUrl(site)); @@ -72,7 +72,7 @@ public CommandResponse execute(GetLogoutUrlParams params) throws Exception { uri += separator(uri) + "session_state=" + params.getSessionState(); } - return okResponse(new LogoutResponse(uri)); + return new LogoutResponse(uri); } private static String separator(String uri) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java index 7d1bd24c4..46826d661 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java @@ -4,9 +4,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.GetRpParams; import org.xdi.oxd.common.response.GetRpResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.rs.protect.Jackson; import org.xdi.oxd.server.service.Rp; @@ -31,18 +31,18 @@ protected GetRpOperation(Command command, Injector injector) { } @Override - public CommandResponse execute(GetRpParams params) { + public IOpResponse execute(GetRpParams params) { if (params.getList() != null && params.getList()) { Set oxdIds = getRpService().getRps().keySet(); - return okResponse(new GetRpResponse(Jackson.createJsonMapper().valueToTree(new HashSet<>(oxdIds)))); + return new GetRpResponse(Jackson.createJsonMapper().valueToTree(new HashSet<>(oxdIds))); } Rp rp = getRpService().getRp(params.getOxdId()); if (rp != null) { - return okResponse(new GetRpResponse(Jackson.createJsonMapper().valueToTree(rp))); + return new GetRpResponse(Jackson.createJsonMapper().valueToTree(rp)); } else { LOG.trace("Failed to find RP by oxd_id: " + params.getOxdId()); } - return okResponse(new GetRpResponse()); + return new GetRpResponse(); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java index 11b1e6201..66d35416c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetTokensByCodeOperation.java @@ -9,10 +9,10 @@ import org.xdi.oxauth.model.common.GrantType; import org.xdi.oxauth.model.jwt.Jwt; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.GetTokensByCodeParams; import org.xdi.oxd.common.response.GetTokensByCodeResponse; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; @@ -39,7 +39,7 @@ protected GetTokensByCodeOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(GetTokensByCodeParams params) throws Exception { + public IOpResponse execute(GetTokensByCodeParams params) throws Exception { validate(params); final Rp site = getRp(); @@ -94,7 +94,7 @@ public CommandResponse execute(GetTokensByCodeParams params) throws Exception { opResponse.setRefreshToken(response.getRefreshToken()); opResponse.setExpiresIn(response.getExpiresIn() != null ? response.getExpiresIn() : -1); opResponse.setIdTokenClaims(claims); - return okResponse(opResponse); + return opResponse; } else { LOG.error("Failed to get tokens because response code is: " + response.getScope()); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java index 696b39054..eb106192b 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java @@ -4,9 +4,9 @@ import org.xdi.oxauth.client.UserInfoClient; import org.xdi.oxauth.client.UserInfoRequest; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.GetUserInfoParams; import org.xdi.oxd.common.response.GetUserInfoResponse; +import org.xdi.oxd.common.response.IOpResponse; /** * @author Yuriy Zabrovarnyy @@ -27,7 +27,7 @@ protected GetUserInfoOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(GetUserInfoParams params) { + public IOpResponse execute(GetUserInfoParams params) { getValidationService().validate(params); UserInfoClient client = new UserInfoClient(getDiscoveryService().getConnectDiscoveryResponseByOxdId(params.getOxdId()).getUserInfoEndpoint()); @@ -35,6 +35,6 @@ public CommandResponse execute(GetUserInfoParams params) { client.setRequest(new UserInfoRequest(params.getAccessToken())); GetUserInfoResponse opResponse = new GetUserInfoResponse(client.exec().getClaims()); - return okResponse(opResponse); + return opResponse; } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/IOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/IOperation.java index cc7108221..ea4bd32d9 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/IOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/IOperation.java @@ -1,10 +1,10 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.IParams; +import org.xdi.oxd.common.response.IOpResponse; /** * Base interface for oxd operations. Operation parameter must be specified via contructor. @@ -20,7 +20,7 @@ public interface IOperation { * * @return command response */ - public CommandResponse execute(T params) throws Exception; + IOpResponse execute(T params) throws Exception; - public Class getParameterClass(); + Class getParameterClass(); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/ImplicitFlowOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/ImplicitFlowOperation.java index 398dd4bd1..48ef880c6 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/ImplicitFlowOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/ImplicitFlowOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -13,8 +13,8 @@ import org.xdi.oxauth.model.common.ResponseType; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.ImplicitFlowParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.ImplicitFlowResponse; import java.util.ArrayList; @@ -35,10 +35,10 @@ protected ImplicitFlowOperation(Command p_command, final Injector injector) { } @Override - public CommandResponse execute(ImplicitFlowParams params) { + public IOpResponse execute(ImplicitFlowParams params) { final OpenIdConfigurationResponse discovery = getDiscoveryService().getConnectDiscoveryResponseByOxdId(params.getOxdId()); if (discovery != null) { - return okResponse(requestToken(discovery, params)); + return requestToken(discovery, params); } return null; } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectAccessTokenOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectAccessTokenOperation.java index 166d8c377..6df33cdd4 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectAccessTokenOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectAccessTokenOperation.java @@ -1,13 +1,13 @@ package org.xdi.oxd.server.op; import com.google.inject.Injector; -import org.codehaus.jackson.node.POJONode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xdi.oxauth.model.common.IntrospectionResponse; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.IntrospectAccessTokenParams; +import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.common.response.POJOResponse; import org.xdi.oxd.server.service.IntrospectionService; /** @@ -28,12 +28,12 @@ protected IntrospectAccessTokenOperation(Command command, Injector injector) { } @Override - public CommandResponse execute(IntrospectAccessTokenParams params) throws Exception { + public IOpResponse execute(IntrospectAccessTokenParams params) throws Exception { getValidationService().validate(params); final IntrospectionService introspectionService = getInstance(IntrospectionService.class); IntrospectionResponse response = introspectionService.introspectToken(params.getOxdId(), params.getAccessToken()); - return CommandResponse.ok().setData(new POJONode(response)); + return new POJOResponse(response); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectRptOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectRptOperation.java index d55302810..690d5adc9 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectRptOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/IntrospectRptOperation.java @@ -1,21 +1,17 @@ package org.xdi.oxd.server.op; import com.google.inject.Injector; -import org.codehaus.jackson.node.POJONode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.introspection.CorrectRptIntrospectionResponse; import org.xdi.oxd.common.params.IntrospectRptParams; +import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.common.response.POJOResponse; /** * @author yuriyz */ public class IntrospectRptOperation extends BaseOperation { - private static final Logger LOG = LoggerFactory.getLogger(IntrospectRptOperation.class); - /** * Base constructor * @@ -27,10 +23,10 @@ protected IntrospectRptOperation(Command command, Injector injector) { } @Override - public CommandResponse execute(IntrospectRptParams params) throws Exception { + public IOpResponse execute(IntrospectRptParams params) throws Exception { getValidationService().validate(params); CorrectRptIntrospectionResponse response = getIntrospectionService().introspectRpt(params.getOxdId(), params.getRpt()); - return CommandResponse.ok().setData(new POJONode(response)); + return new POJOResponse(response); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java index 765bf9e37..717ea364b 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java index 055c85285..c1f774ea7 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java @@ -18,9 +18,9 @@ import org.xdi.oxauth.model.register.ApplicationType; import org.xdi.oxauth.model.uma.UmaMetadata; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.RegisterSiteParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.RegisterSiteResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.Utils; @@ -76,9 +76,9 @@ public RegisterSiteResponse execute_(RegisterSiteParams params) { } @Override - public CommandResponse execute(RegisterSiteParams params) { + public IOpResponse execute(RegisterSiteParams params) { try { - return okResponse(execute_(params)); + return execute_(params); } catch (HttpException e) { throw e; } catch (Exception e) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java index 38eb3ba25..ea40fd945 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RemoveSiteOperation.java @@ -2,9 +2,9 @@ import com.google.inject.Injector; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.RemoveSiteParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.RemoveSiteResponse; import org.xdi.oxd.server.HttpException; @@ -26,10 +26,10 @@ protected RemoveSiteOperation(Command command, Injector injector) { } @Override - public CommandResponse execute(RemoveSiteParams params) { + public IOpResponse execute(RemoveSiteParams params) { String oxdId = getRp().getOxdId(); if (getRpService().remove(oxdId)) { - return okResponse(new RemoveSiteResponse(oxdId)); + return new RemoveSiteResponse(oxdId); } throw new HttpException(ErrorResponseCode.FAILED_TO_REMOVE_SITE); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java index 6bd5935a1..4642a163b 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetGetClaimsGatheringUrlOperation.java @@ -4,9 +4,9 @@ import org.apache.commons.lang.StringUtils; import org.xdi.oxauth.model.uma.UmaMetadata; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.RpGetClaimsGatheringUrlParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.RpGetClaimsGatheringUrlResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; @@ -25,7 +25,7 @@ protected RpGetGetClaimsGatheringUrlOperation(Command command, final Injector in } @Override - public CommandResponse execute(RpGetClaimsGatheringUrlParams params) { + public IOpResponse execute(RpGetClaimsGatheringUrlParams params) { validate(params); final UmaMetadata metadata = getDiscoveryService().getUmaDiscoveryByOxdId(params.getOxdId()); @@ -41,7 +41,7 @@ public CommandResponse execute(RpGetClaimsGatheringUrlParams params) { final RpGetClaimsGatheringUrlResponse r = new RpGetClaimsGatheringUrlResponse(); r.setUrl(url); r.setState(state); - return okResponse(r); + return r; } private void validate(RpGetClaimsGatheringUrlParams params) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java index f111f7313..b107d88a1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RpGetRptOperation.java @@ -1,4 +1,4 @@ -/** +/* * All rights reserved -- Copyright 2015 Gluu Inc. */ package org.xdi.oxd.server.op; @@ -10,8 +10,8 @@ import org.xdi.oxauth.model.uma.UmaNeedInfoResponse; import org.xdi.oxauth.model.util.Util; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.params.RpGetRptParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.rs.protect.Jackson; import javax.ws.rs.WebApplicationException; @@ -32,9 +32,9 @@ protected RpGetRptOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(RpGetRptParams params) throws Exception { + public IOpResponse execute(RpGetRptParams params) throws Exception { try { - return okResponse(getUmaTokenService().getRpt(params)); + return getUmaTokenService().getRpt(params); } catch (ClientResponseFailure ex) { LOG.trace(ex.getMessage(), ex); String entity = (String) ex.getResponse().getEntity(String.class); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java index 3f4ae6623..b6c748639 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsCheckAccessOperation.java @@ -7,10 +7,14 @@ import org.slf4j.LoggerFactory; import org.xdi.oxauth.model.uma.JsonLogicNodeParser; import org.xdi.oxauth.model.uma.PermissionTicket; -import org.xdi.oxd.common.*; +import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.CoreUtils; +import org.xdi.oxd.common.ErrorResponse; +import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.introspection.CorrectRptIntrospectionResponse; import org.xdi.oxd.common.introspection.CorrectUmaPermission; import org.xdi.oxd.common.params.RsCheckAccessParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.RsCheckAccessResponse; import org.xdi.oxd.rs.protect.Jackson; import org.xdi.oxd.rs.protect.resteasy.PatProvider; @@ -46,7 +50,7 @@ public class RsCheckAccessOperation extends BaseOperation { } @Override - public CommandResponse execute(final RsCheckAccessParams params) throws Exception { + public IOpResponse execute(final RsCheckAccessParams params) throws Exception { validate(params); Rp site = getRp(); @@ -98,7 +102,7 @@ public void clearPat() { if (containsAny) { if ((permission.getResourceId() != null && permission.getResourceId().equals(resource.getId()))) { // normal UMA LOG.debug("RPT has enough permissions, access GRANTED. Path: " + params.getPath() + ", httpMethod:" + params.getHttpMethod() + ", site: " + site); - return okResponse(new RsCheckAccessResponse("granted")); + return new RsCheckAccessResponse("granted"); } } } @@ -130,7 +134,7 @@ public void clearPat() { opResponse.setTicket(((PermissionTicket) response.getEntity()).getTicket()); LOG.debug("Access denied for path: " + params.getPath() + " and httpMethod: " + params.getHttpMethod() + ". Ticket is registered: " + opResponse); - return okResponse(opResponse); + return opResponse; } private void validate(RsCheckAccessParams params) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java index d66382000..fbb019970 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RsProtectOperation.java @@ -13,9 +13,9 @@ import org.xdi.oxauth.model.uma.JsonLogicNodeParser; import org.xdi.oxauth.model.uma.UmaMetadata; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.RsProtectParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.RsProtectResponse; import org.xdi.oxd.rs.protect.Condition; import org.xdi.oxd.rs.protect.RsResource; @@ -46,7 +46,7 @@ protected RsProtectOperation(Command p_command, final Injector injector) { } @Override - public CommandResponse execute(final RsProtectParams params) throws Exception { + public IOpResponse execute(final RsProtectParams params) throws Exception { validate(params); Rp site = getRp(); @@ -79,7 +79,7 @@ public void clearPat() { persist(registrar, site); - return okResponse(new RsProtectResponse(site.getOxdId())); + return new RsProtectResponse(site.getOxdId()); } private void persist(ResourceRegistrar registrar, Rp site) throws IOException { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java index e3e69ddfe..92f4e706c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java @@ -12,9 +12,9 @@ import org.xdi.oxauth.model.common.GrantType; import org.xdi.oxauth.model.common.ResponseType; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.UpdateSiteParams; +import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.UpdateSiteResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; @@ -44,7 +44,7 @@ protected UpdateSiteOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(UpdateSiteParams params) { + public IOpResponse execute(UpdateSiteParams params) { final Rp rp = getRp(); LOG.info("Updating rp ... rp: " + rp); @@ -52,7 +52,7 @@ public CommandResponse execute(UpdateSiteParams params) { UpdateSiteResponse response = new UpdateSiteResponse(); response.setOxdId(rp.getOxdId()); - return okResponse(response); + return response; } private void persistRp(Rp rp, UpdateSiteParams params) { diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java index 3de081545..ba5d83db8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/ValidateOperation.java @@ -5,9 +5,10 @@ import org.xdi.oxauth.client.OpenIdConfigurationResponse; import org.xdi.oxauth.model.jwt.Jwt; import org.xdi.oxd.common.Command; -import org.xdi.oxd.common.CommandResponse; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.ValidateParams; +import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.common.response.POJOResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.Rp; @@ -28,7 +29,7 @@ protected ValidateOperation(Command command, final Injector injector) { } @Override - public CommandResponse execute(ValidateParams params) throws Exception { + public IOpResponse execute(ValidateParams params) throws Exception { validateParams(params); Rp site = getRp(); @@ -42,7 +43,7 @@ public CommandResponse execute(ValidateParams params) throws Exception { validator.validateAccessToken(params.getAccessToken()); validator.validateAuthorizationCode(params.getCode()); - return CommandResponse.ok(); + return new POJOResponse(""); } private void validateParams(ValidateParams params) { diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/AuthorizationCodeFlowTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/AuthorizationCodeFlowTest.java index 5501de114..fd4bd5e13 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/AuthorizationCodeFlowTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/AuthorizationCodeFlowTest.java @@ -36,7 +36,7 @@ public void test(String host, String opHost, String redirectUrl, String clientId params.setUserId(userId); params.setUserSecret(userSecret); - final AuthorizationCodeFlowResponse resp = client.authorizationCodeFlow(Tester.getAuthorization(), params).dataAsResponse(AuthorizationCodeFlowResponse.class); + final AuthorizationCodeFlowResponse resp = client.authorizationCodeFlow(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getAccessToken()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/CheckAccessTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/CheckAccessTokenTest.java index e4c54b3b7..f1ea5848c 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/CheckAccessTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/CheckAccessTokenTest.java @@ -3,7 +3,6 @@ import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.xdi.oxd.client.ClientInterface; -import org.xdi.oxd.client.CommandResponse2; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.params.CheckAccessTokenParams; import org.xdi.oxd.common.response.CheckAccessTokenResponse; @@ -33,10 +32,7 @@ public void test(String host, String redirectUrl, String userId, String userSecr params.setIdToken(response.getIdToken()); params.setOxdId(site.getOxdId()); - final CommandResponse2 r = client.checkAccessToken(Tester.getAuthorization(), params); - assertNotNull(r); - - final CheckAccessTokenResponse checkR = r.dataAsResponse(CheckAccessTokenResponse.class); + final CheckAccessTokenResponse checkR = client.checkAccessToken(Tester.getAuthorization(), params); assertNotNull(checkR); assertTrue(checkR.isActive()); assertNotNull(checkR.getExpiresAt()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/CheckIdTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/CheckIdTokenTest.java index 76f871971..4782305c6 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/CheckIdTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/CheckIdTokenTest.java @@ -3,7 +3,6 @@ import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.xdi.oxd.client.ClientInterface; -import org.xdi.oxd.client.CommandResponse2; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.params.CheckIdTokenParams; import org.xdi.oxd.common.response.CheckIdTokenResponse; @@ -39,10 +38,7 @@ public void test(String host, String opHost, String redirectUrl, String userId, params.setIdToken(response.getIdToken()); params.setNonce(nonce); - final CommandResponse2 r = client.checkIdToken(Tester.getAuthorization(), params); - assertNotNull(r); - - final CheckIdTokenResponse checkR = r.dataAsResponse(CheckIdTokenResponse.class); + final CheckIdTokenResponse checkR = client.checkIdToken(Tester.getAuthorization(), params); assertNotNull(checkR); assertTrue(checkR.isActive()); assertNotNull(checkR.getExpiresAt()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetAuthorizationUrlTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetAuthorizationUrlTest.java index 663efdc63..7f440d07e 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetAuthorizationUrlTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetAuthorizationUrlTest.java @@ -25,7 +25,7 @@ public void test(String host, String redirectUrl, String opHost) { final GetAuthorizationUrlParams commandParams = new GetAuthorizationUrlParams(); commandParams.setOxdId(site.getOxdId()); - final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), commandParams).dataAsResponse(GetAuthorizationUrlResponse.class); + final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), commandParams); assertNotNull(resp); notEmpty(resp.getAuthorizationUrl()); } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetClientTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetClientTokenTest.java index bfba1d37d..a0db8b832 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetClientTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetClientTokenTest.java @@ -25,7 +25,7 @@ public void getClientToken(String host, String opHost) { params.setClientId(Tester.getSetupClient().getClientId()); params.setClientSecret(Tester.getSetupClient().getClientSecret()); - GetClientTokenResponse resp = Tester.newClient(host).getClientToken(params).dataAsResponse(GetClientTokenResponse.class); + GetClientTokenResponse resp = Tester.newClient(host).getClientToken(params); assertNotNull(resp); notEmpty(resp.getAccessToken()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java index e910f3e7d..b68a05ad2 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java @@ -37,7 +37,7 @@ public void test(String host, String opHost, String redirectUrl, String postLogo params.setState(UUID.randomUUID().toString()); params.setSessionState(UUID.randomUUID().toString()); // here must be real session instead of dummy UUID - final LogoutResponse resp = client.getLogoutUri(Tester.getAuthorization(), params).dataAsResponse(LogoutResponse.class); + final LogoutResponse resp = client.getLogoutUri(Tester.getAuthorization(), params); assertNotNull(resp); assertTrue(resp.getUri().contains(URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"))); } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetTokensByCodeTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetTokensByCodeTest.java index d2448f0d9..23cdda91f 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetTokensByCodeTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetTokensByCodeTest.java @@ -8,7 +8,6 @@ import org.xdi.oxd.common.params.GetAccessTokenByRefreshTokenParams; import org.xdi.oxd.common.params.GetAuthorizationCodeParams; import org.xdi.oxd.common.params.GetTokensByCodeParams; -import org.xdi.oxd.common.response.GetAuthorizationCodeResponse; import org.xdi.oxd.common.response.GetClientTokenResponse; import org.xdi.oxd.common.response.GetTokensByCodeResponse; import org.xdi.oxd.common.response.RegisterSiteResponse; @@ -44,7 +43,7 @@ public static GetClientTokenResponse refreshToken(GetTokensByCodeResponse resp, refreshParams.setRefreshToken(resp.getRefreshToken()); refreshParams.setProtectionAccessToken(Tester.getAuthorization()); - GetClientTokenResponse refreshResponse = client.getAccessTokenByRefreshToken(Tester.getAuthorization(), refreshParams).dataAsResponse(GetClientTokenResponse.class); + GetClientTokenResponse refreshResponse = client.getAccessTokenByRefreshToken(Tester.getAuthorization(), refreshParams); assertNotNull(refreshResponse); notEmpty(refreshResponse.getAccessToken()); @@ -65,7 +64,7 @@ public static GetTokensByCodeResponse tokenByCode(ClientInterface client, Regist params.setCode(code); params.setState(state); - final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params).dataAsResponse(GetTokensByCodeResponse.class); + final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getAccessToken()); notEmpty(resp.getIdToken()); @@ -81,6 +80,6 @@ public static String codeRequest(ClientInterface client, String siteId, String u params.setState(state); params.setNonce(nonce); - return client.getAuthorizationCode(Tester.getAuthorization(), params).dataAsResponse(GetAuthorizationCodeResponse.class).getCode(); + return client.getAuthorizationCode(Tester.getAuthorization(), params).getCode(); } } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetUserInfoTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetUserInfoTest.java index 309caead1..d1e150af6 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetUserInfoTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetUserInfoTest.java @@ -32,7 +32,7 @@ public void test(String host, String opHost, String redirectUrl, String userId, params.setOxdId(site.getOxdId()); params.setAccessToken(tokens.getAccessToken()); - final GetUserInfoResponse resp = client.getUserInfo(Tester.getAuthorization(), params).dataAsResponse(GetUserInfoResponse.class); + final GetUserInfoResponse resp = client.getUserInfo(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getClaims().get("sub")); } @@ -47,7 +47,7 @@ private GetTokensByCodeResponse requestTokens(ClientInterface client, RegisterSi params.setCode(GetTokensByCodeTest.codeRequest(client, site.getOxdId(), userId, userSecret, state, nonce)); params.setState(state); - final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params).dataAsResponse(GetTokensByCodeResponse.class); + final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getAccessToken()); notEmpty(resp.getIdToken()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java index 36f422a60..8dc5fee63 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java @@ -33,7 +33,7 @@ public void introspectAccessToken(String host, String opHost, String redirectUrl params.setClientId(setupResponse.getClientId()); params.setClientSecret(setupResponse.getClientSecret()); - GetClientTokenResponse tokenResponse = client.getClientToken(params).dataAsResponse(GetClientTokenResponse.class); + GetClientTokenResponse tokenResponse = client.getClientToken(params); assertNotNull(tokenResponse); notEmpty(tokenResponse.getAccessToken()); @@ -42,7 +42,7 @@ public void introspectAccessToken(String host, String opHost, String redirectUrl introspectParams.setOxdId(setupResponse.getOxdId()); introspectParams.setAccessToken(tokenResponse.getAccessToken()); - IntrospectionResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), introspectParams).dataAsResponse(IntrospectionResponse.class); + IntrospectionResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), introspectParams); assertNotNull(introspectionResponse); assertTrue(introspectionResponse.isActive()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectRptTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectRptTest.java index 3e0d025f2..f62c5ade4 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectRptTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectRptTest.java @@ -30,7 +30,7 @@ public void test(String host, String opHost, String redirectUrl, String rsProtec params.setOxdId(site.getOxdId()); params.setRpt(rptResponse.getRpt()); - final CorrectRptIntrospectionResponse response = client.introspectRpt(Tester.getAuthorization(), params).dataAsResponse(CorrectRptIntrospectionResponse.class); + final CorrectRptIntrospectionResponse response = client.introspectRpt(Tester.getAuthorization(), params); assertNotNull(response); assertTrue(response.getActive()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RegisterSiteTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RegisterSiteTest.java index 7c86d4555..be54024ab 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RegisterSiteTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RegisterSiteTest.java @@ -49,7 +49,7 @@ public void register(String host, String opHost, String redirectUrl, String post params.setGrantTypes(Lists.newArrayList("authorization_code")); params.setResponseTypes(Lists.newArrayList("code")); - resp = Tester.newClient(host).registerSite(params).dataAsResponse(RegisterSiteResponse.class); + resp = Tester.newClient(host).registerSite(params); assertNotNull(resp); assertNotNull(resp.getOxdId()); oxdId = resp.getOxdId(); @@ -68,7 +68,7 @@ public void update(String host) throws IOException { params.setOxdId(oxdId); params.setScope(Lists.newArrayList("profile")); - UpdateSiteResponse resp = Tester.newClient(host).updateSite(Tester.getAuthorization(), params).dataAsResponse(UpdateSiteResponse.class); + UpdateSiteResponse resp = Tester.newClient(host).updateSite(Tester.getAuthorization(), params); assertNotNull(resp); } @@ -90,7 +90,7 @@ public static RegisterSiteResponse registerSite(ClientInterface client, String o GrantType.OXAUTH_UMA_TICKET.getValue(), GrantType.CLIENT_CREDENTIALS.getValue())); - final RegisterSiteResponse resp = client.registerSite(params).dataAsResponse(RegisterSiteResponse.class); + final RegisterSiteResponse resp = client.registerSite(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getOxdId())); return resp; diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RemoveSiteTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RemoveSiteTest.java index 5b8fdeee7..9feab53d9 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RemoveSiteTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RemoveSiteTest.java @@ -25,7 +25,7 @@ public void removeSiteTest(String host, String opHost, String redirectUrl) { notEmpty(resp.getOxdId()); - RemoveSiteResponse removeResponse = client.removeSite(Tester.getAuthorization(), new RemoveSiteParams(resp.getOxdId())).dataAsResponse(RemoveSiteResponse.class); + RemoveSiteResponse removeResponse = client.removeSite(Tester.getAuthorization(), new RemoveSiteParams(resp.getOxdId())); assertNotNull(removeResponse); assertNotNull(removeResponse.getOxdId()); } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RpGetRptTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RpGetRptTest.java index 94785e856..0eb6f6183 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RpGetRptTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RpGetRptTest.java @@ -52,7 +52,7 @@ public static RpGetRptResponse requestRpt(ClientInterface client, RegisterSiteRe params.setOxdId(site.getOxdId()); params.setTicket(checkAccess.getTicket()); - final RpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params).dataAsResponse(RpGetRptResponse.class); + final RpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params); assertNotNull(response); assertTrue(StringUtils.isNotBlank(response.getRpt())); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RsCheckAccessTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RsCheckAccessTest.java index 272fcb175..18c7b6c8a 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RsCheckAccessTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RsCheckAccessTest.java @@ -37,7 +37,7 @@ public static RsCheckAccessResponse checkAccess(ClientInterface client, Register params.setPath("/ws/phone"); params.setRpt("dummy"); - final RsCheckAccessResponse response = client.umaRsCheckAccess(Tester.getAuthorization(), params).dataAsResponse(RsCheckAccessResponse.class); + final RsCheckAccessResponse response = client.umaRsCheckAccess(Tester.getAuthorization(), params); Assert.assertNotNull(response); Assert.assertTrue(StringUtils.isNotBlank(response.getAccess())); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java index 2b8180728..f1e02adbc 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/RsProtectTest.java @@ -78,7 +78,7 @@ public void overwriteTrue(String host, String redirectUrl, String opHost, String params.setResources(Jackson2.createJsonMapper().readTree(CoreUtils.asJsonSilently(resources))); params.setOverwrite(true); // force overwrite - RsProtectResponse response = client.umaRsProtect(Tester.getAuthorization(), params).dataAsResponse(RsProtectResponse.class); + RsProtectResponse response = client.umaRsProtect(Tester.getAuthorization(), params); assertNotNull(response); } @@ -108,7 +108,7 @@ public void protectWithScopeExpressionSeconds(String host, String redirectUrl, S params.setPath("/GetAll"); params.setRpt(""); - final RsCheckAccessResponse response = client.umaRsCheckAccess(Tester.getAuthorization(), params).dataAsResponse(RsCheckAccessResponse.class); + final RsCheckAccessResponse response = client.umaRsCheckAccess(Tester.getAuthorization(), params); Assert.assertNotNull(response); Assert.assertTrue(StringUtils.isNotBlank(response.getAccess())); @@ -123,7 +123,7 @@ public static RsProtectResponse protectResources(ClientInterface client, Registe e.printStackTrace(); } - final RsProtectResponse resp = client.umaRsProtect(Tester.getAuthorization(), params).dataAsResponse(RsProtectResponse.class); + final RsProtectResponse resp = client.umaRsProtect(Tester.getAuthorization(), params); assertNotNull(resp); return resp; } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/SetupClientTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/SetupClientTest.java index c060d3f66..90d00d8ea 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/SetupClientTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/SetupClientTest.java @@ -40,7 +40,7 @@ public void setupClient(String host, String opHost, String redirectUrl, String p params.setGrantTypes(Lists.newArrayList("authorization_code")); params.setResponseTypes(Lists.newArrayList("code")); - resp = Tester.newClient(host).registerSite(params).dataAsResponse(RegisterSiteResponse.class); + resp = Tester.newClient(host).registerSite(params); assertResponse(resp); } @@ -69,7 +69,7 @@ public static RegisterSiteResponse setupClient(ClientInterface client, String op GrantType.AUTHORIZATION_CODE.getValue(), GrantType.CLIENT_CREDENTIALS.getValue())); - final RegisterSiteResponse resp = client.registerSite(params).dataAsResponse(RegisterSiteResponse.class); + final RegisterSiteResponse resp = client.registerSite(params); assertResponse(resp); return resp; } diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java b/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java index 0ed1ee97e..c05e3bf0a 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java @@ -44,7 +44,7 @@ public static String getAuthorization() { params.setClientId(Tester.getSetupClient().getClientId()); params.setClientSecret(Tester.getSetupClient().getClientSecret()); - GetClientTokenResponse resp = Tester.newClient(HOST).getClientToken(params).dataAsResponse(GetClientTokenResponse.class); + GetClientTokenResponse resp = Tester.newClient(HOST).getClientToken(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getAccessToken())); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/UmaFullTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/UmaFullTest.java index 6aa5bef79..27d1d22c9 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/UmaFullTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/UmaFullTest.java @@ -39,7 +39,7 @@ public void test(String host, String redirectUrl, String opHost, String rsProtec params.setOxdId(site.getOxdId()); params.setTicket(checkAccess.getTicket()); - final RpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params).dataAsResponse(RpGetRptResponse.class); + final RpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params); assertNotNull(response); assertTrue(StringUtils.isNotBlank(response.getRpt())); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/UmaGetClaimsGatheringUrlTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/UmaGetClaimsGatheringUrlTest.java index 253df5ab9..3f7dcee47 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/UmaGetClaimsGatheringUrlTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/UmaGetClaimsGatheringUrlTest.java @@ -37,7 +37,7 @@ public void test(String host, String opHost, String redirectUrl, String rsProtec params.setTicket(checkAccess.getTicket()); params.setClaimsRedirectUri(redirectUrl); - final RpGetClaimsGatheringUrlResponse response = client.umaRpGetClaimsGatheringUrl(Tester.getAuthorization(), params).dataAsResponse(RpGetClaimsGatheringUrlResponse.class); + final RpGetClaimsGatheringUrlResponse response = client.umaRpGetClaimsGatheringUrl(Tester.getAuthorization(), params); Map parameters = CoreUtils.splitQuery(response.getUrl()); diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/manual/GoogleTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/manual/GoogleTest.java index 8fec20fa6..0a804cc1f 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/manual/GoogleTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/manual/GoogleTest.java @@ -47,7 +47,7 @@ public static void main(String[] args) throws IOException { params.setOxdId(site.getOxdId()); params.setCode(code); - final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params).dataAsResponse(GetTokensByCodeResponse.class); + final GetTokensByCodeResponse resp = client.getTokenByCode(Tester.getAuthorization(), params); System.out.println(resp); } @@ -55,7 +55,7 @@ private static String getAuthorizationUrl(ClientInterface client, String oxdId) final GetAuthorizationUrlParams params = new GetAuthorizationUrlParams(); params.setOxdId(oxdId); - final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), params).dataAsResponse(GetAuthorizationUrlResponse.class); + final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getAuthorizationUrl()); System.out.println("Authorization url: " + resp.getAuthorizationUrl()); @@ -70,7 +70,7 @@ public static RegisterSiteResponse registerSite(ClientInterface client) { params.setClientId(CLIENT_ID); params.setClientSecret(CLIENT_SECRET); - final RegisterSiteResponse resp = client.registerSite(params).dataAsResponse(RegisterSiteResponse.class); + final RegisterSiteResponse resp = client.registerSite(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getOxdId())); return resp; diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/manual/NotAllowedTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/manual/NotAllowedTest.java index 380b47a1f..990198272 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/manual/NotAllowedTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/manual/NotAllowedTest.java @@ -38,7 +38,7 @@ public static void main(String[] args) throws IOException { params.setOxdId(site.getOxdId()); params.setResources(Jackson2.createJsonMapper().readTree(rsProtect)); - final RsProtectResponse resp = client.umaRsProtect(Tester.getAuthorization(), params).dataAsResponse(RsProtectResponse.class); + final RsProtectResponse resp = client.umaRsProtect(Tester.getAuthorization(), params); assertNotNull(resp); } @@ -56,7 +56,7 @@ public static RegisterSiteResponse registerSite(ClientInterface client) { final Command command = new Command(CommandType.REGISTER_SITE); command.setParamsObject(params); - final RegisterSiteResponse resp = client.registerSite(params).dataAsResponse(RegisterSiteResponse.class); + final RegisterSiteResponse resp = client.registerSite(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getOxdId())); return resp; diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/manual/StressTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/manual/StressTest.java index b0569e810..4c08c7b3a 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/manual/StressTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/manual/StressTest.java @@ -32,7 +32,7 @@ public void test(String host, String redirectUrl, String opHost) throws IOExcept final GetAuthorizationUrlParams params = new GetAuthorizationUrlParams(); params.setOxdId(site.getOxdId()); - final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), params).dataAsResponse(GetAuthorizationUrlResponse.class); + final GetAuthorizationUrlResponse resp = client.getAuthorizationUrl(Tester.getAuthorization(), params); assertNotNull(resp); notEmpty(resp.getAuthorizationUrl()); Assert.assertTrue(resp.getAuthorizationUrl().contains("acr_values")); From 2dcf2d3121ad656d6d38e73a15d9d527dbfe39a2 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 9 Oct 2018 20:28:20 +0300 Subject: [PATCH 052/230] #225 : added jackson 2 annotations to operation responses --- .../common/response/AuthorizationCodeFlowResponse.java | 7 ++++++- .../xdi/oxd/common/response/CheckAccessTokenResponse.java | 3 +++ .../org/xdi/oxd/common/response/CheckIdTokenResponse.java | 4 ++++ .../oxd/common/response/GetAuthorizationCodeResponse.java | 1 + .../oxd/common/response/GetAuthorizationUrlResponse.java | 1 + .../xdi/oxd/common/response/GetClientTokenResponse.java | 4 ++++ .../java/org/xdi/oxd/common/response/GetRpResponse.java | 1 + .../xdi/oxd/common/response/GetTokensByCodeResponse.java | 5 +++++ .../org/xdi/oxd/common/response/GetUserInfoResponse.java | 3 +++ .../org/xdi/oxd/common/response/ImplicitFlowResponse.java | 6 ++++++ .../xdi/oxd/common/response/LicenseStatusOpResponse.java | 4 ++++ .../java/org/xdi/oxd/common/response/LogoutResponse.java | 1 + .../org/xdi/oxd/common/response/RegisterSiteResponse.java | 8 ++++++++ .../org/xdi/oxd/common/response/RemoveSiteResponse.java | 1 + .../common/response/RpGetClaimsGatheringUrlResponse.java | 2 ++ .../org/xdi/oxd/common/response/RpGetRptResponse.java | 4 ++++ .../xdi/oxd/common/response/RsCheckAccessResponse.java | 3 +++ .../org/xdi/oxd/common/response/RsProtectResponse.java | 1 + .../org/xdi/oxd/common/response/UpdateSiteResponse.java | 1 + oxd-server/src/test/java/org/xdi/oxd/server/Tester.java | 3 +++ 20 files changed, 62 insertions(+), 1 deletion(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/AuthorizationCodeFlowResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/AuthorizationCodeFlowResponse.java index 2d43040a5..4243fecad 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/AuthorizationCodeFlowResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/AuthorizationCodeFlowResponse.java @@ -13,19 +13,24 @@ public class AuthorizationCodeFlowResponse implements IOpResponse { @JsonProperty(value = "access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access_token") private String accessToken; @JsonProperty(value = "expires_in_seconds") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_in_seconds") private long expiresIn; @JsonProperty(value = "refresh_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "refresh_token") private String refreshToken; @JsonProperty(value = "authorization_code") + @com.fasterxml.jackson.annotation.JsonProperty(value = "authorization_code") private String authorizationCode; @JsonProperty(value = "scope") + @com.fasterxml.jackson.annotation.JsonProperty(value = "scope") private String scope; @JsonProperty(value = "id_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "id_token") private String idToken; - public AuthorizationCodeFlowResponse() { } diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckAccessTokenResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckAccessTokenResponse.java index bd79fc567..4510e86b8 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckAccessTokenResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckAccessTokenResponse.java @@ -15,10 +15,13 @@ public class CheckAccessTokenResponse implements IOpResponse { @JsonProperty(value = "active") + @com.fasterxml.jackson.annotation.JsonProperty(value = "active") private boolean active; @JsonProperty(value = "expires_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_at") private Date expiresAt; @JsonProperty(value = "issued_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "issued_at") private Date issuedAt; public CheckAccessTokenResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckIdTokenResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckIdTokenResponse.java index 93e9685de..e23c0861b 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckIdTokenResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/CheckIdTokenResponse.java @@ -16,12 +16,16 @@ public class CheckIdTokenResponse implements IOpResponse { @JsonProperty(value = "active") + @com.fasterxml.jackson.annotation.JsonProperty(value = "active") private boolean active; @JsonProperty(value = "expires_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_at") private long expiresAt; @JsonProperty(value = "issued_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "issued_at") private long issuedAt; @JsonProperty("claims") + @com.fasterxml.jackson.annotation.JsonProperty("claims") private Map> claims; public CheckIdTokenResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationCodeResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationCodeResponse.java index d469c9f1d..8380616e2 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationCodeResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationCodeResponse.java @@ -10,6 +10,7 @@ public class GetAuthorizationCodeResponse implements IOpResponse { @JsonProperty(value = "code") + @com.fasterxml.jackson.annotation.JsonProperty(value = "code") private String code; public GetAuthorizationCodeResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationUrlResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationUrlResponse.java index 82114e3fd..42b773e88 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationUrlResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetAuthorizationUrlResponse.java @@ -10,6 +10,7 @@ public class GetAuthorizationUrlResponse implements IOpResponse { @JsonProperty(value = "authorization_url") + @com.fasterxml.jackson.annotation.JsonProperty(value = "authorization_url") private String authorizationUrl; public GetAuthorizationUrlResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetClientTokenResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetClientTokenResponse.java index 8e6276039..993742869 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetClientTokenResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetClientTokenResponse.java @@ -12,12 +12,16 @@ public class GetClientTokenResponse implements IOpResponse { @JsonProperty(value = "access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access_token") private String accessToken; @JsonProperty(value = "expires_in") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_in") private int expiresIn; // expiration time in seconds @JsonProperty(value = "refresh_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "refresh_token") private String refreshToken; @JsonProperty(value = "scope") + @com.fasterxml.jackson.annotation.JsonProperty(value = "scope") private List scope; public String getAccessToken() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetRpResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetRpResponse.java index e7c39ef5b..ed05a019c 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetRpResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetRpResponse.java @@ -9,6 +9,7 @@ public class GetRpResponse implements IOpResponse { @JsonProperty(value = "node") + @com.fasterxml.jackson.annotation.JsonProperty(value = "node") private JsonNode node; public GetRpResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetTokensByCodeResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetTokensByCodeResponse.java index 282680c89..e2a2ac0a2 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetTokensByCodeResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetTokensByCodeResponse.java @@ -13,14 +13,19 @@ public class GetTokensByCodeResponse implements IOpResponse { @JsonProperty(value = "access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access_token") private String accessToken; @JsonProperty(value = "expires_in") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_in") private int expiresIn; // expiration time in seconds @JsonProperty(value = "id_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "id_token") private String idToken; @JsonProperty(value = "refresh_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "refresh_token") private String refreshToken; @JsonProperty("id_token_claims") + @com.fasterxml.jackson.annotation.JsonProperty("id_token_claims") private Map> idTokenClaims; public GetTokensByCodeResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetUserInfoResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetUserInfoResponse.java index 12d89625f..649d6310f 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetUserInfoResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetUserInfoResponse.java @@ -14,10 +14,13 @@ public class GetUserInfoResponse implements IOpResponse { @JsonProperty("claims") + @com.fasterxml.jackson.annotation.JsonProperty("claims") private Map> claims = Maps.newHashMap(); @JsonProperty("refresh_token") + @com.fasterxml.jackson.annotation.JsonProperty("refresh_token") private String refreshToken; @JsonProperty("access_token") + @com.fasterxml.jackson.annotation.JsonProperty("access_token") private String accessToken; public GetUserInfoResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/ImplicitFlowResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/ImplicitFlowResponse.java index 2b08b6f39..87b9e1c84 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/ImplicitFlowResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/ImplicitFlowResponse.java @@ -13,16 +13,22 @@ public class ImplicitFlowResponse implements IOpResponse { @JsonProperty(value = "access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access_token") private String accessToken; @JsonProperty(value = "expires_in_seconds") + @com.fasterxml.jackson.annotation.JsonProperty(value = "expires_in_seconds") private long expiresIn; @JsonProperty(value = "refresh_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "refresh_token") private String refreshToken; @JsonProperty(value = "authorization_code") + @com.fasterxml.jackson.annotation.JsonProperty(value = "authorization_code") private String authorizationCode; @JsonProperty(value = "scope") + @com.fasterxml.jackson.annotation.JsonProperty(value = "scope") private String scope; @JsonProperty(value = "id_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "id_token") private String idToken; diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/LicenseStatusOpResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/LicenseStatusOpResponse.java index 66607314c..9924d3855 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/LicenseStatusOpResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/LicenseStatusOpResponse.java @@ -15,12 +15,16 @@ public class LicenseStatusOpResponse implements IOpResponse { @JsonProperty(value = "valid") + @com.fasterxml.jackson.annotation.JsonProperty(value = "valid") private boolean valid = false; @JsonProperty(value = "thread_count") + @com.fasterxml.jackson.annotation.JsonProperty(value = "thread_count") private int threadCount; @JsonProperty(value = "name") + @com.fasterxml.jackson.annotation.JsonProperty(value = "name") private String name; @JsonProperty(value = "features") + @com.fasterxml.jackson.annotation.JsonProperty(value = "features") private List features; public LicenseStatusOpResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java index 62f839964..33622761d 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java @@ -10,6 +10,7 @@ public class LogoutResponse implements IOpResponse { @JsonProperty(value = "uri") + @com.fasterxml.jackson.annotation.JsonProperty(value = "uri") private String uri; public LogoutResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RegisterSiteResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RegisterSiteResponse.java index b0458fb85..3166d839f 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RegisterSiteResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RegisterSiteResponse.java @@ -10,20 +10,28 @@ public class RegisterSiteResponse implements IOpResponse { @JsonProperty(value = "oxd_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "oxd_id") private String oxdId; @JsonProperty(value = "op_host") + @com.fasterxml.jackson.annotation.JsonProperty(value = "op_host") private String opHost; @JsonProperty(value = "client_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_id") private String clientId; @JsonProperty(value = "client_secret") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_secret") private String clientSecret; @JsonProperty(value = "client_registration_access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_registration_access_token") private String clientRegistrationAccessToken; @JsonProperty(value = "client_registration_client_uri") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_registration_client_uri") private String clientRegistrationClientUri; @JsonProperty(value = "client_id_issued_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_id_issued_at") private long clientIdIssuedAt; @JsonProperty(value = "client_secret_expires_at") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_secret_expires_at") private long clientSecretExpiresAt; public RegisterSiteResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RemoveSiteResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RemoveSiteResponse.java index db3a5861b..360e9610c 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RemoveSiteResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RemoveSiteResponse.java @@ -8,6 +8,7 @@ public class RemoveSiteResponse implements IOpResponse { @JsonProperty(value = "oxd_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "oxd_id") private String oxdId; public RemoveSiteResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetClaimsGatheringUrlResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetClaimsGatheringUrlResponse.java index 2956c5341..ab3908101 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetClaimsGatheringUrlResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetClaimsGatheringUrlResponse.java @@ -10,8 +10,10 @@ public class RpGetClaimsGatheringUrlResponse implements IOpResponse { @JsonProperty(value = "url") + @com.fasterxml.jackson.annotation.JsonProperty(value = "url") private String url; @JsonProperty(value = "state") + @com.fasterxml.jackson.annotation.JsonProperty(value = "state") private String state; public RpGetClaimsGatheringUrlResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetRptResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetRptResponse.java index aef00b111..0b2daea0b 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetRptResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RpGetRptResponse.java @@ -13,12 +13,16 @@ public class RpGetRptResponse implements IOpResponse { @JsonProperty(value = "access_token") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access_token") private String rpt; @JsonProperty(value = "token_type") + @com.fasterxml.jackson.annotation.JsonProperty(value = "token_type") private String tokenType; @JsonProperty(value = "pct") + @com.fasterxml.jackson.annotation.JsonProperty(value = "pct") private String pct; @JsonProperty(value = "updated") + @com.fasterxml.jackson.annotation.JsonProperty(value = "updated") private Boolean updated; public RpGetRptResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RsCheckAccessResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RsCheckAccessResponse.java index 0a2649cb3..bd4caacbb 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RsCheckAccessResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RsCheckAccessResponse.java @@ -10,10 +10,13 @@ public class RsCheckAccessResponse implements IOpResponse { @JsonProperty(value = "access") + @com.fasterxml.jackson.annotation.JsonProperty(value = "access") private String access; @JsonProperty(value = "www-authenticate_header") + @com.fasterxml.jackson.annotation.JsonProperty(value = "www-authenticate_header") private String wwwAuthenticateHeader; @JsonProperty(value = "ticket") + @com.fasterxml.jackson.annotation.JsonProperty(value = "ticket") private String ticket; public RsCheckAccessResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/RsProtectResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/RsProtectResponse.java index 0dde1e5df..835604561 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/RsProtectResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/RsProtectResponse.java @@ -10,6 +10,7 @@ public class RsProtectResponse implements IOpResponse { @JsonProperty(value = "oxd_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "oxd_id") private String oxdId; public RsProtectResponse() { diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/UpdateSiteResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/UpdateSiteResponse.java index 2719151f7..949ce0a74 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/UpdateSiteResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/UpdateSiteResponse.java @@ -10,6 +10,7 @@ public class UpdateSiteResponse implements IOpResponse { @JsonProperty(value = "oxd_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "oxd_id") private String oxdId; public UpdateSiteResponse() { diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java b/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java index c05e3bf0a..b53f61ad4 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/Tester.java @@ -32,6 +32,9 @@ public static ClientInterface newClient(String targetHost) { if (StringUtils.countMatches(targetHost, ":") < 2 && "http://localhost".equalsIgnoreCase(targetHost) || "http://127.0.0.1".equalsIgnoreCase(targetHost) ) { targetHost = targetHost + ":" + SetUpTest.SUPPORT.getLocalPort(); } + if ("localhost".equalsIgnoreCase(targetHost)) { + targetHost = "http://localhost:" + SetUpTest.SUPPORT.getLocalPort(); + } return OxdClient.newClient(targetHost); } From 6f414e2c75ffcb994810582cc420bda820a06a41 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 9 Oct 2018 21:14:44 +0300 Subject: [PATCH 053/230] #225 : fixed IntrospectRptTest after big RESTy migration. --- .../CorrectRptIntrospectionResponse.java | 37 ++++++++++++------- .../introspection/CorrectUmaPermission.java | 4 ++ 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectRptIntrospectionResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectRptIntrospectionResponse.java index f25aeaf87..9bee49f98 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectRptIntrospectionResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectRptIntrospectionResponse.java @@ -16,6 +16,7 @@ @JsonPropertyOrder({"active", "exp", "iat", "nbf", "permissions", "client_id", "sub", "aud", "iss", "jti"}) @XmlRootElement @JsonIgnoreProperties(ignoreUnknown = true) +@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true) public class CorrectRptIntrospectionResponse { private boolean active; // according spec, must be "active" http://tools.ietf.org/html/draft-richer-oauth-introspection-03#section-2.2 @@ -37,6 +38,7 @@ public CorrectRptIntrospectionResponse(boolean status) { } @JsonProperty(value = "aud") + @com.fasterxml.jackson.annotation.JsonProperty(value = "aud") @XmlElement(name = "aud") public String getAud() { return aud; @@ -47,6 +49,7 @@ public void setAud(String aud) { } @JsonProperty(value = "iss") + @com.fasterxml.jackson.annotation.JsonProperty(value = "iss") @XmlElement(name = "iss") public String getIss() { return iss; @@ -57,6 +60,7 @@ public void setIss(String iss) { } @JsonProperty(value = "jti") + @com.fasterxml.jackson.annotation.JsonProperty(value = "jti") @XmlElement(name = "jti") public String getJti() { return jti; @@ -67,6 +71,7 @@ public void setJti(String jti) { } @JsonProperty(value = "sub") + @com.fasterxml.jackson.annotation.JsonProperty(value = "sub") @XmlElement(name = "sub") public String getSub() { return sub; @@ -77,6 +82,7 @@ public void setSub(String sub) { } @JsonProperty(value = "client_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "client_id") @XmlElement(name = "client_id") public String getClientId() { return clientId; @@ -87,6 +93,7 @@ public void setClientId(String clientId) { } @JsonProperty(value = "active") + @com.fasterxml.jackson.annotation.JsonProperty(value = "active") @XmlElement(name = "active") public boolean getActive() { return active; @@ -97,6 +104,7 @@ public void setActive(boolean status) { } @JsonProperty(value = "nbf") + @com.fasterxml.jackson.annotation.JsonProperty(value = "nbf") @XmlElement(name = "nbf") public Integer getNbf() { return nbf; @@ -107,6 +115,7 @@ public void setNbf(Integer nbf) { } @JsonProperty(value = "exp") + @com.fasterxml.jackson.annotation.JsonProperty(value = "exp") @XmlElement(name = "exp") public Integer getExpiresAt() { return expiresAt; @@ -117,6 +126,7 @@ public void setExpiresAt(Integer expiresAt) { } @JsonProperty(value = "iat") + @com.fasterxml.jackson.annotation.JsonProperty(value = "iat") @XmlElement(name = "iat") public Integer getIssuedAt() { return issuedAt; @@ -127,6 +137,7 @@ public void setIssuedAt(Integer p_issuedAt) { } @JsonProperty(value = "permissions") + @com.fasterxml.jackson.annotation.JsonProperty(value = "permissions") @XmlElement(name = "permissions") public List getPermissions() { return permissions; @@ -138,19 +149,17 @@ public void setPermissions(List p_permissions) { @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("RptStatusResponse"); - sb.append("{active=").append(active); - sb.append(", expiresAt=").append(expiresAt); - sb.append(", issuedAt=").append(issuedAt); - sb.append(", nbf=").append(nbf); - sb.append(", clientId=").append(clientId); - sb.append(", sub=").append(sub); - sb.append(", aud=").append(aud); - sb.append(", iss=").append(iss); - sb.append(", jti=").append(jti); - sb.append(", permissions=").append(permissions); - sb.append('}'); - return sb.toString(); + return "RptStatusResponse" + + "{active=" + active + + ", expiresAt=" + expiresAt + + ", issuedAt=" + issuedAt + + ", nbf=" + nbf + + ", clientId=" + clientId + + ", sub=" + sub + + ", aud=" + aud + + ", iss=" + iss + + ", jti=" + jti + + ", permissions=" + permissions + + '}'; } } diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectUmaPermission.java b/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectUmaPermission.java index deed0e3da..eeed9118b 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectUmaPermission.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/introspection/CorrectUmaPermission.java @@ -16,6 +16,7 @@ @IgnoreMediaTypes("application/*+json") @JsonPropertyOrder({"resource_id", "resource_scopes", "exp"}) @JsonIgnoreProperties(ignoreUnknown = true) +@com.fasterxml.jackson.annotation.JsonIgnoreProperties(ignoreUnknown = true) @XmlRootElement public class CorrectUmaPermission implements Serializable { @@ -32,6 +33,7 @@ public CorrectUmaPermission(String resourceId, List scopes) { } @JsonProperty(value = "resource_id") + @com.fasterxml.jackson.annotation.JsonProperty(value = "resource_id") @XmlElement(name = "resource_id") public String getResourceId() { return resourceId; @@ -42,6 +44,7 @@ public void setResourceId(String resourceId) { } @JsonProperty(value = "resource_scopes") + @com.fasterxml.jackson.annotation.JsonProperty(value = "resource_scopes") @XmlElement(name = "resource_scopes") public List getScopes() { return scopes; @@ -52,6 +55,7 @@ public void setScopes(List scopes) { } @JsonProperty(value = "exp") + @com.fasterxml.jackson.annotation.JsonProperty(value = "exp") @XmlElement(name = "exp") public Integer getExpiresAt() { return expiresAt; From 5598c92398738f60a1e2bdd0b144750f16a6613c Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 9 Oct 2018 21:37:49 +0300 Subject: [PATCH 054/230] #225 : added separate IntrospectAccessTokenResponse due to jackson 1.x and 2.x conflict --- .../org/xdi/oxd/client/ClientInterface.java | 3 +- .../IntrospectAccessTokenResponse.java | 175 ++++++++++++++++++ .../oxd/server/IntrospectAccessTokenTest.java | 4 +- 3 files changed, 178 insertions(+), 4 deletions(-) create mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/response/IntrospectAccessTokenResponse.java diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index 5b9605e62..9117e4069 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -1,6 +1,5 @@ package org.xdi.oxd.client; -import org.xdi.oxauth.model.common.IntrospectionResponse; import org.xdi.oxd.common.introspection.CorrectRptIntrospectionResponse; import org.xdi.oxd.common.params.*; import org.xdi.oxd.common.response.*; @@ -29,7 +28,7 @@ public interface ClientInterface { @Path("/introspect-access-token") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - IntrospectionResponse introspectAccessToken(@HeaderParam("Authorization") String authorization, IntrospectAccessTokenParams params); + IntrospectAccessTokenResponse introspectAccessToken(@HeaderParam("Authorization") String authorization, IntrospectAccessTokenParams params); @POST @Path("/introspect-rpt") diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/IntrospectAccessTokenResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/IntrospectAccessTokenResponse.java new file mode 100644 index 000000000..fc1ac01cf --- /dev/null +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/IntrospectAccessTokenResponse.java @@ -0,0 +1,175 @@ +package org.xdi.oxd.common.response; + +import org.codehaus.jackson.annotate.JsonProperty; +import org.codehaus.jackson.annotate.JsonPropertyOrder; +import org.jboss.resteasy.annotations.providers.jaxb.IgnoreMediaTypes; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +/** + * @author Yuriy Zabrovarnyy + */ +@JsonPropertyOrder({"active", "scopes", "client_id", "username", "token_type", "exp", "iat", "sub", "aud", "iss", "jti", "acr_values"}) +@com.fasterxml.jackson.annotation.JsonPropertyOrder({"active", "scopes", "client_id", "username", "token_type", "exp", "iat", "sub", "aud", "iss", "jti", "acr_values"}) +@IgnoreMediaTypes({"application/*+json"}) +public class IntrospectAccessTokenResponse { + @JsonProperty("active") + private boolean active; + + @Deprecated + @JsonProperty("scopes") + @com.fasterxml.jackson.annotation.JsonProperty("scopes") + private List scopes; + @JsonProperty("scope") + @com.fasterxml.jackson.annotation.JsonProperty("scope") + private List scope; + @JsonProperty("client_id") + @com.fasterxml.jackson.annotation.JsonProperty("client_id") + private String clientId; + @JsonProperty("username") + @com.fasterxml.jackson.annotation.JsonProperty("username") + private String username; + @JsonProperty("token_type") + @com.fasterxml.jackson.annotation.JsonProperty("token_type") + private String tokenType; + @JsonProperty("exp") + @com.fasterxml.jackson.annotation.JsonProperty("exp") + private Integer expiresAt; + @JsonProperty("iat") + @com.fasterxml.jackson.annotation.JsonProperty("iat") + private Integer issuedAt; + @JsonProperty("sub") + @com.fasterxml.jackson.annotation.JsonProperty("sub") + private String subject; + @JsonProperty("aud") + @com.fasterxml.jackson.annotation.JsonProperty("aud") + private String audience; + @JsonProperty("iss") + @com.fasterxml.jackson.annotation.JsonProperty("iss") + private String issuer; + @JsonProperty("jti") + @com.fasterxml.jackson.annotation.JsonProperty("jti") + private String jti; + @JsonProperty("acr_values") + @com.fasterxml.jackson.annotation.JsonProperty("acr_values") + private String acrValues; + + public IntrospectAccessTokenResponse() { + } + + public IntrospectAccessTokenResponse(boolean p_active) { + this.active = p_active; + } + + public String getAcrValues() { + return this.acrValues; + } + + public void setAcrValues(String p_authMode) { + this.acrValues = p_authMode; + } + + public boolean isActive() { + return this.active; + } + + public void setActive(boolean p_active) { + this.active = p_active; + } + + @Deprecated + public List getScopes() { + return this.scopes; + } + + @Deprecated + public void setScopes(Collection scopes) { + this.scopes = scopes != null ? new ArrayList(scopes) : new ArrayList(); + } + + public List getScope() { + return this.scope; + } + + public void setScope(Collection scope) { + this.scope = scope != null ? new ArrayList(scope) : new ArrayList(); + } + + public Integer getExpiresAt() { + return this.expiresAt; + } + + public void setExpiresAt(Integer expiresAt) { + this.expiresAt = expiresAt; + } + + public Integer getIssuedAt() { + return this.issuedAt; + } + + public void setIssuedAt(Integer issuedAt) { + this.issuedAt = issuedAt; + } + + public String getClientId() { + return this.clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public String getUsername() { + return this.username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTokenType() { + return this.tokenType; + } + + public void setTokenType(String tokenType) { + this.tokenType = tokenType; + } + + public String getSubject() { + return this.subject; + } + + public void setSub(String subject) { + this.subject = subject; + } + + public String getAudience() { + return this.audience; + } + + public void setAudience(String audience) { + this.audience = audience; + } + + public String getIssuer() { + return this.issuer; + } + + public void setIssuer(String issuer) { + this.issuer = issuer; + } + + public String getJti() { + return this.jti; + } + + public void setJti(String jti) { + this.jti = jti; + } + + public String toString() { + return "IntrospectAccessTokenResponse{active=" + this.active + ", scopes=" + this.scopes + ", scope=" + this.scope + ", clientId='" + this.clientId + '\'' + ", username='" + this.username + '\'' + ", tokenType='" + this.tokenType + '\'' + ", expiresAt=" + this.expiresAt + ", issuedAt=" + this.issuedAt + ", subject='" + this.subject + '\'' + ", audience='" + this.audience + '\'' + ", issuer='" + this.issuer + '\'' + ", jti='" + this.jti + '\'' + ", acrValues='" + this.acrValues + '\'' + '}'; + } +} diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java index 8dc5fee63..d8c6e51ca 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/IntrospectAccessTokenTest.java @@ -3,11 +3,11 @@ import com.google.common.collect.Lists; import org.testng.annotations.Parameters; import org.testng.annotations.Test; -import org.xdi.oxauth.model.common.IntrospectionResponse; import org.xdi.oxd.client.ClientInterface; import org.xdi.oxd.common.params.GetClientTokenParams; import org.xdi.oxd.common.params.IntrospectAccessTokenParams; import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.common.response.IntrospectAccessTokenResponse; import org.xdi.oxd.common.response.RegisterSiteResponse; import static junit.framework.Assert.assertNotNull; @@ -42,7 +42,7 @@ public void introspectAccessToken(String host, String opHost, String redirectUrl introspectParams.setOxdId(setupResponse.getOxdId()); introspectParams.setAccessToken(tokenResponse.getAccessToken()); - IntrospectionResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), introspectParams); + IntrospectAccessTokenResponse introspectionResponse = client.introspectAccessToken("Bearer " + tokenResponse.getAccessToken(), introspectParams); assertNotNull(introspectionResponse); assertTrue(introspectionResponse.isActive()); From ce9caf0a27d96a30bd22f113a71ebe6ee325a5d1 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Wed, 10 Oct 2018 12:43:51 +0530 Subject: [PATCH 055/230] #233: Added swagger test for tokens by code API --- .../java/io/swagger/client/auth/OAuth.java | 2 +- .../GetAccessTokenByRefreshTokenParams.java | 27 ++----------------- oxd-server/src/main/resources/swagger.yaml | 4 --- 3 files changed, 3 insertions(+), 30 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java b/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java index 6773ac756..02ff366ea 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java @@ -18,7 +18,7 @@ import java.util.Map; import java.util.List; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:09:57.852Z") public class OAuth implements Authentication { private String accessToken; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java index 315f0da4b..782cbcb25 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java @@ -28,7 +28,7 @@ /** * GetAccessTokenByRefreshTokenParams */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:09:57.852Z") public class GetAccessTokenByRefreshTokenParams { @SerializedName("oxd_id") private String oxdId = null; @@ -36,9 +36,6 @@ public class GetAccessTokenByRefreshTokenParams { @SerializedName("refresh_token") private String refreshToken = null; - @SerializedName("protection_token") - private String protectionToken = null; - @SerializedName("scope") private List scope = new ArrayList<>(); @@ -78,24 +75,6 @@ public void setRefreshToken(String refreshToken) { this.refreshToken = refreshToken; } - public GetAccessTokenByRefreshTokenParams protectionToken(String protectionToken) { - this.protectionToken = protectionToken; - return this; - } - - /** - * Get protectionToken - * @return protectionToken - **/ - @ApiModelProperty(example = "Bearer 33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") - public String getProtectionToken() { - return protectionToken; - } - - public void setProtectionToken(String protectionToken) { - this.protectionToken = protectionToken; - } - public GetAccessTokenByRefreshTokenParams scope(List scope) { this.scope = scope; return this; @@ -131,13 +110,12 @@ public boolean equals(java.lang.Object o) { GetAccessTokenByRefreshTokenParams getAccessTokenByRefreshTokenParams = (GetAccessTokenByRefreshTokenParams) o; return Objects.equals(this.oxdId, getAccessTokenByRefreshTokenParams.oxdId) && Objects.equals(this.refreshToken, getAccessTokenByRefreshTokenParams.refreshToken) && - Objects.equals(this.protectionToken, getAccessTokenByRefreshTokenParams.protectionToken) && Objects.equals(this.scope, getAccessTokenByRefreshTokenParams.scope); } @Override public int hashCode() { - return Objects.hash(oxdId, refreshToken, protectionToken, scope); + return Objects.hash(oxdId, refreshToken, scope); } @@ -148,7 +126,6 @@ public String toString() { sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); - sb.append(" protectionToken: ").append(toIndentedString(protectionToken)).append("\n"); sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index fcdc07525..7349074e7 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -954,7 +954,6 @@ paths: - oxd_id - refresh_token - scope - - protection_token properties: oxd_id: type: string @@ -962,9 +961,6 @@ paths: refresh_token: type: string example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 - protection_token: - type: string - example: Bearer 33d7988e-6ffb-4fe5-8c2a-0e158691d446 scope: type: array items: From 662cc2c218fd9a5fdf54a4f77cf45932ef458781 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 10:54:32 +0300 Subject: [PATCH 056/230] #225 : updated swagger specification according to RESTy server changes and re-generated client according to it. --- oxd-gen-client/docs/DevelopersApi.md | 6 +- .../GetAccessTokenByRefreshTokenResponse.md | 6 +- ...etAccessTokenByRefreshTokenResponseData.md | 13 - .../docs/GetAuthorizationUrlResponse.md | 3 +- .../docs/GetAuthorizationUrlResponseData.md | 10 - oxd-gen-client/docs/GetClientTokenResponse.md | 6 +- .../docs/GetClientTokenResponseData.md | 13 - .../docs/GetTokensByCodeResponse.md | 7 +- .../docs/GetTokensByCodeResponseData.md | 14 - ...etTokensByCodeResponseDataIdTokenClaims.md | 18 - .../docs/IntrospectAccessTokenReponse.md | 11 - .../docs/IntrospectAccessTokenReponseData.md | 21 - .../docs/IntrospectAccessTokenResponse.md | 16 +- .../docs/IntrospectAccessTokenResponseData.md | 21 - oxd-gen-client/docs/IntrospectRptResponse.md | 7 +- .../docs/IntrospectRptResponseData.md | 13 - oxd-gen-client/docs/RegisterSiteParams.md | 2 +- oxd-gen-client/docs/RegisterSiteResponse.md | 10 +- .../docs/RegisterSiteResponseData.md | 17 - oxd-gen-client/docs/SetupClientParams.md | 31 - oxd-gen-client/docs/SetupClientResponse.md | 11 - .../docs/SetupClientResponseData.md | 19 - .../UmaRpGetClaimsGatheringUrlResponse.md | 4 +- .../UmaRpGetClaimsGatheringUrlResponseData.md | 11 - oxd-gen-client/docs/UmaRpGetRptResponse.md | 6 +- .../docs/UmaRpGetRptResponseData.md | 13 - .../docs/UmaRsCheckAccessResponse.md | 3 +- .../docs/UmaRsCheckAccessResponseData.md | 10 - oxd-gen-client/docs/UpdateSiteResponse.md | 3 +- oxd-gen-client/docs/UpdateSiteResponseData.md | 10 - oxd-gen-client/pom.xml | 7 +- .../java/io/swagger/client/ApiCallback.java | 4 +- .../java/io/swagger/client/ApiClient.java | 6 +- .../java/io/swagger/client/ApiException.java | 2 +- .../java/io/swagger/client/Configuration.java | 2 +- .../src/main/java/io/swagger/client/JSON.java | 6 +- .../src/main/java/io/swagger/client/Pair.java | 2 +- .../java/io/swagger/client/StringUtil.java | 2 +- .../io/swagger/client/api/DevelopersApi.java | 60 +- .../io/swagger/client/auth/ApiKeyAuth.java | 2 +- .../java/io/swagger/client/auth/OAuth.java | 2 +- .../GetAccessTokenByRefreshTokenParams.java | 4 +- .../GetAccessTokenByRefreshTokenResponse.java | 110 ++- ...AccessTokenByRefreshTokenResponseData.java | 169 ----- .../model/GetAuthorizationUrlParams.java | 6 +- .../model/GetAuthorizationUrlResponse.java | 54 +- .../GetAuthorizationUrlResponseData.java | 93 --- .../client/model/GetClientTokenParams.java | 4 +- .../client/model/GetClientTokenResponse.java | 108 ++- .../model/GetClientTokenResponseData.java | 169 ----- .../client/model/GetLogoutUriParams.java | 2 +- .../client/model/GetLogoutUriResponse.java | 2 +- .../model/GetLogoutUriResponseClaims.java | 2 +- .../client/model/GetTokensByCodeParams.java | 2 +- .../client/model/GetTokensByCodeResponse.java | 125 +++- .../model/GetTokensByCodeResponseData.java | 186 ----- ...TokensByCodeResponseDataIdTokenClaims.java | 324 --------- .../client/model/GetUserInfoParams.java | 2 +- .../client/model/GetUserInfoResponse.java | 2 +- .../model/GetUserInfoResponseClaims.java | 32 +- .../GetauthorizationurlCustomParameters.java | 2 +- .../model/IntrospectAccessTokenParams.java | 2 +- .../model/IntrospectAccessTokenResponse.java | 343 +++++++++- .../IntrospectAccessTokenResponseData.java | 404 ----------- .../client/model/IntrospectRptParams.java | 2 +- .../client/model/IntrospectRptResponse.java | 131 +++- .../model/IntrospectRptResponseData.java | 192 ------ .../client/model/RegisterSiteParams.java | 24 +- .../client/model/RegisterSiteResponse.java | 195 +++++- .../model/RegisterSiteResponseData.java | 254 ------- .../client/model/RemoveSiteParams.java | 2 +- .../client/model/RemoveSiteResponse.java | 117 ---- .../client/model/RemoveSiteResponseData.java | 162 ----- .../UmaRpGetClaimsGatheringUrlParams.java | 2 +- .../UmaRpGetClaimsGatheringUrlResponse.java | 57 +- ...maRpGetClaimsGatheringUrlResponseData.java | 116 ---- .../client/model/UmaRpGetRptParams.java | 4 +- .../client/model/UmaRpGetRptResponse.java | 101 ++- .../client/model/UmaRpGetRptResponseData.java | 162 ----- .../client/model/UmaRsCheckAccessParams.java | 2 +- .../model/UmaRsCheckAccessResponse.java | 54 +- .../model/UmaRsCheckAccessResponseData.java | 93 --- .../client/model/UmaRsProtectParams.java | 4 +- .../client/model/UmaRsProtectResponse.java | 54 +- .../model/UmaRsProtectResponseData.java | 93 --- .../client/model/UpdateSiteParams.java | 18 +- .../client/model/UpdateSiteResponse.java | 52 +- .../client/model/UpdateSiteResponseData.java | 162 ----- oxd-server/src/main/resources/swagger.yaml | 640 +++++++----------- 89 files changed, 1395 insertions(+), 3875 deletions(-) delete mode 100644 oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponseData.md delete mode 100644 oxd-gen-client/docs/GetAuthorizationUrlResponseData.md delete mode 100644 oxd-gen-client/docs/GetClientTokenResponseData.md delete mode 100644 oxd-gen-client/docs/GetTokensByCodeResponseData.md delete mode 100644 oxd-gen-client/docs/GetTokensByCodeResponseDataIdTokenClaims.md delete mode 100644 oxd-gen-client/docs/IntrospectAccessTokenReponse.md delete mode 100644 oxd-gen-client/docs/IntrospectAccessTokenReponseData.md delete mode 100644 oxd-gen-client/docs/IntrospectAccessTokenResponseData.md delete mode 100644 oxd-gen-client/docs/IntrospectRptResponseData.md delete mode 100644 oxd-gen-client/docs/RegisterSiteResponseData.md delete mode 100644 oxd-gen-client/docs/SetupClientParams.md delete mode 100644 oxd-gen-client/docs/SetupClientResponse.md delete mode 100644 oxd-gen-client/docs/SetupClientResponseData.md delete mode 100644 oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponseData.md delete mode 100644 oxd-gen-client/docs/UmaRpGetRptResponseData.md delete mode 100644 oxd-gen-client/docs/UmaRsCheckAccessResponseData.md delete mode 100644 oxd-gen-client/docs/UpdateSiteResponseData.md delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseDataIdTokenClaims.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponse.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponseData.java delete mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponseData.java diff --git a/oxd-gen-client/docs/DevelopersApi.md b/oxd-gen-client/docs/DevelopersApi.md index 87ea8516f..a4bebe3e4 100644 --- a/oxd-gen-client/docs/DevelopersApi.md +++ b/oxd-gen-client/docs/DevelopersApi.md @@ -671,7 +671,7 @@ No authorization required # **umaRsProtect** -> UpdateSiteResponse umaRsProtect(authorization, umaRsProtectParams) +> UmaRsProtectResponse umaRsProtect(authorization, umaRsProtectParams) UMA RS Protect Resources @@ -688,7 +688,7 @@ DevelopersApi apiInstance = new DevelopersApi(); String authorization = "authorization_example"; // String | UmaRsProtectParams umaRsProtectParams = new UmaRsProtectParams(); // UmaRsProtectParams | try { - UpdateSiteResponse result = apiInstance.umaRsProtect(authorization, umaRsProtectParams); + UmaRsProtectResponse result = apiInstance.umaRsProtect(authorization, umaRsProtectParams); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling DevelopersApi#umaRsProtect"); @@ -705,7 +705,7 @@ Name | Type | Description | Notes ### Return type -[**UpdateSiteResponse**](UpdateSiteResponse.md) +[**UmaRsProtectResponse**](UmaRsProtectResponse.md) ### Authorization diff --git a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md b/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md index a1b18f9f8..8eda42672 100644 --- a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md +++ b/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md @@ -4,8 +4,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**GetAccessTokenByRefreshTokenResponseData**](GetAccessTokenByRefreshTokenResponseData.md) | | +**scope** | **List<String>** | | +**accessToken** | **String** | | +**expiresIn** | **Integer** | | +**refreshToken** | **String** | | diff --git a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponseData.md b/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponseData.md deleted file mode 100644 index 1a2e604d8..000000000 --- a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponseData.md +++ /dev/null @@ -1,13 +0,0 @@ - -# GetAccessTokenByRefreshTokenResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | **String** | | -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**refreshToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetAuthorizationUrlResponse.md b/oxd-gen-client/docs/GetAuthorizationUrlResponse.md index 2249030a3..bb48534df 100644 --- a/oxd-gen-client/docs/GetAuthorizationUrlResponse.md +++ b/oxd-gen-client/docs/GetAuthorizationUrlResponse.md @@ -4,8 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**GetAuthorizationUrlResponseData**](GetAuthorizationUrlResponseData.md) | | +**authorizationUrl** | **String** | | diff --git a/oxd-gen-client/docs/GetAuthorizationUrlResponseData.md b/oxd-gen-client/docs/GetAuthorizationUrlResponseData.md deleted file mode 100644 index 5d168b315..000000000 --- a/oxd-gen-client/docs/GetAuthorizationUrlResponseData.md +++ /dev/null @@ -1,10 +0,0 @@ - -# GetAuthorizationUrlResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**authorizationUrl** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetClientTokenResponse.md b/oxd-gen-client/docs/GetClientTokenResponse.md index d8fca4ac9..a6b3cffeb 100644 --- a/oxd-gen-client/docs/GetClientTokenResponse.md +++ b/oxd-gen-client/docs/GetClientTokenResponse.md @@ -4,8 +4,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**GetClientTokenResponseData**](GetClientTokenResponseData.md) | | +**scope** | **List<String>** | | +**accessToken** | **String** | | +**expiresIn** | **Integer** | | +**refreshToken** | **String** | | diff --git a/oxd-gen-client/docs/GetClientTokenResponseData.md b/oxd-gen-client/docs/GetClientTokenResponseData.md deleted file mode 100644 index 6f2818cc5..000000000 --- a/oxd-gen-client/docs/GetClientTokenResponseData.md +++ /dev/null @@ -1,13 +0,0 @@ - -# GetClientTokenResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | **String** | | -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**refreshToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetTokensByCodeResponse.md b/oxd-gen-client/docs/GetTokensByCodeResponse.md index 691846389..ffad4d3cb 100644 --- a/oxd-gen-client/docs/GetTokensByCodeResponse.md +++ b/oxd-gen-client/docs/GetTokensByCodeResponse.md @@ -4,8 +4,11 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**GetTokensByCodeResponseData**](GetTokensByCodeResponseData.md) | | +**accessToken** | **String** | | +**expiresIn** | **Integer** | | +**idToken** | **String** | | +**refreshToken** | **String** | | +**idTokenClaims** | [**GetTokensByCodeResponseIdTokenClaims**](GetTokensByCodeResponseIdTokenClaims.md) | | diff --git a/oxd-gen-client/docs/GetTokensByCodeResponseData.md b/oxd-gen-client/docs/GetTokensByCodeResponseData.md deleted file mode 100644 index d563b1d8e..000000000 --- a/oxd-gen-client/docs/GetTokensByCodeResponseData.md +++ /dev/null @@ -1,14 +0,0 @@ - -# GetTokensByCodeResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**idToken** | **String** | | -**refreshToken** | **String** | | -**idTokenClaims** | [**GetTokensByCodeResponseDataIdTokenClaims**](GetTokensByCodeResponseDataIdTokenClaims.md) | | - - - diff --git a/oxd-gen-client/docs/GetTokensByCodeResponseDataIdTokenClaims.md b/oxd-gen-client/docs/GetTokensByCodeResponseDataIdTokenClaims.md deleted file mode 100644 index 762fe8988..000000000 --- a/oxd-gen-client/docs/GetTokensByCodeResponseDataIdTokenClaims.md +++ /dev/null @@ -1,18 +0,0 @@ - -# GetTokensByCodeResponseDataIdTokenClaims - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**atHash** | **List<String>** | | -**aud** | **List<String>** | | -**sub** | **List<String>** | | -**authTime** | **List<String>** | | -**iss** | **List<String>** | | -**exp** | **List<String>** | | -**iat** | **List<String>** | | -**nonce** | **List<String>** | | -**oxOpenIDConnectVersion** | **List<String>** | | - - - diff --git a/oxd-gen-client/docs/IntrospectAccessTokenReponse.md b/oxd-gen-client/docs/IntrospectAccessTokenReponse.md deleted file mode 100644 index f812bf5cd..000000000 --- a/oxd-gen-client/docs/IntrospectAccessTokenReponse.md +++ /dev/null @@ -1,11 +0,0 @@ - -# IntrospectAccessTokenReponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**IntrospectAccessTokenReponseData**](IntrospectAccessTokenReponseData.md) | | - - - diff --git a/oxd-gen-client/docs/IntrospectAccessTokenReponseData.md b/oxd-gen-client/docs/IntrospectAccessTokenReponseData.md deleted file mode 100644 index ee4efcb33..000000000 --- a/oxd-gen-client/docs/IntrospectAccessTokenReponseData.md +++ /dev/null @@ -1,21 +0,0 @@ - -# IntrospectAccessTokenReponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | **Boolean** | | -**clientId** | **String** | | -**username** | **String** | | -**scopes** | **List<String>** | | -**tokenType** | **String** | | -**sub** | **String** | | -**aud** | **String** | | -**iss** | **String** | | -**exp** | **Integer** | | -**iat** | **Integer** | | -**acrValues** | **List<String>** | | -**extensionField** | **String** | | - - - diff --git a/oxd-gen-client/docs/IntrospectAccessTokenResponse.md b/oxd-gen-client/docs/IntrospectAccessTokenResponse.md index fbee87405..1f4fe1a96 100644 --- a/oxd-gen-client/docs/IntrospectAccessTokenResponse.md +++ b/oxd-gen-client/docs/IntrospectAccessTokenResponse.md @@ -4,8 +4,20 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**IntrospectAccessTokenResponseData**](IntrospectAccessTokenResponseData.md) | | +**active** | **Boolean** | | +**clientId** | **String** | | +**username** | **String** | | +**scope** | **List<String>** | | +**tokenType** | **String** | | +**sub** | **String** | | +**aud** | **String** | | +**iss** | **String** | | +**exp** | **Long** | number of seconds since January 1 1970 UTC, indicating when this token will expire | +**iat** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token was issued at | +**nbf** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token not to be used before | +**jti** | **String** | a unique identifier for the JWT | +**acrValues** | **List<String>** | | +**extensionField** | **String** | | diff --git a/oxd-gen-client/docs/IntrospectAccessTokenResponseData.md b/oxd-gen-client/docs/IntrospectAccessTokenResponseData.md deleted file mode 100644 index cb9207366..000000000 --- a/oxd-gen-client/docs/IntrospectAccessTokenResponseData.md +++ /dev/null @@ -1,21 +0,0 @@ - -# IntrospectAccessTokenResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | **Boolean** | | -**clientId** | **String** | | -**username** | **String** | | -**scopes** | **List<String>** | | -**tokenType** | **String** | | -**sub** | **String** | | -**aud** | **String** | | -**iss** | **String** | | -**exp** | **Integer** | | -**iat** | **Integer** | | -**acrValues** | **List<String>** | | -**extensionField** | **String** | | - - - diff --git a/oxd-gen-client/docs/IntrospectRptResponse.md b/oxd-gen-client/docs/IntrospectRptResponse.md index e2b808100..9e040e361 100644 --- a/oxd-gen-client/docs/IntrospectRptResponse.md +++ b/oxd-gen-client/docs/IntrospectRptResponse.md @@ -4,8 +4,11 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**IntrospectRptResponseData**](IntrospectRptResponseData.md) | | +**active** | **Boolean** | | +**exp** | **Long** | number of seconds since January 1 1970 UTC, indicating when this token will expire | +**iat** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token was issued at | +**nbf** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token not to be used before | +**permissions** | **List<Object>** | | diff --git a/oxd-gen-client/docs/IntrospectRptResponseData.md b/oxd-gen-client/docs/IntrospectRptResponseData.md deleted file mode 100644 index 323872af1..000000000 --- a/oxd-gen-client/docs/IntrospectRptResponseData.md +++ /dev/null @@ -1,13 +0,0 @@ - -# IntrospectRptResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | **Boolean** | | -**exp** | **Integer** | | -**iat** | **Integer** | | -**permissions** | **List<Object>** | | - - - diff --git a/oxd-gen-client/docs/RegisterSiteParams.md b/oxd-gen-client/docs/RegisterSiteParams.md index ef78e6240..a2f673115 100644 --- a/oxd-gen-client/docs/RegisterSiteParams.md +++ b/oxd-gen-client/docs/RegisterSiteParams.md @@ -12,7 +12,7 @@ Name | Type | Description | Notes **grantTypes** | **List<String>** | | [optional] **scope** | **List<String>** | | [optional] **acrValues** | **List<String>** | | [optional] -**clientName** | **String** | oxd will generate its own non-human readable name by defaultif client_name is not specified | [optional] +**clientName** | **String** | oxd will generate its own non-human readable name by default if client_name is not specified | [optional] **clientJwksUri** | **String** | | [optional] **clientTokenEndpointAuthMethod** | **String** | | [optional] **clientRequestUris** | **List<String>** | | [optional] diff --git a/oxd-gen-client/docs/RegisterSiteResponse.md b/oxd-gen-client/docs/RegisterSiteResponse.md index b7c450910..e82c2fe42 100644 --- a/oxd-gen-client/docs/RegisterSiteResponse.md +++ b/oxd-gen-client/docs/RegisterSiteResponse.md @@ -4,8 +4,14 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**RegisterSiteResponseData**](RegisterSiteResponseData.md) | | +**oxdId** | **String** | | +**opHost** | **String** | | +**clientId** | **String** | | [optional] +**clientSecret** | **String** | | [optional] +**clientRegistrationAccessToken** | **String** | | [optional] +**clientRegistrationClientUri** | **String** | | [optional] +**clientIdIssuedAt** | **Integer** | | [optional] +**clientSecretExpiresAt** | **Integer** | | [optional] diff --git a/oxd-gen-client/docs/RegisterSiteResponseData.md b/oxd-gen-client/docs/RegisterSiteResponseData.md deleted file mode 100644 index a3fb559ad..000000000 --- a/oxd-gen-client/docs/RegisterSiteResponseData.md +++ /dev/null @@ -1,17 +0,0 @@ - -# RegisterSiteResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**opHost** | **String** | | -**clientId** | **String** | | [optional] -**clientSecret** | **String** | | [optional] -**clientRegistrationAccessToken** | **String** | | [optional] -**clientRegistrationClientUri** | **String** | | [optional] -**clientIdIssuedAt** | **Integer** | | [optional] -**clientSecretExpiresAt** | **Integer** | | [optional] - - - diff --git a/oxd-gen-client/docs/SetupClientParams.md b/oxd-gen-client/docs/SetupClientParams.md deleted file mode 100644 index 4f8c712da..000000000 --- a/oxd-gen-client/docs/SetupClientParams.md +++ /dev/null @@ -1,31 +0,0 @@ - -# SetupClientParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**authorizationRedirectUri** | **String** | | -**opHost** | **String** | If missing, must be present in defaults | [optional] -**postLogoutRedirectUri** | **String** | | [optional] -**applicationType** | **String** | | [optional] -**responseTypes** | **List<String>** | | [optional] -**grantTypes** | **List<String>** | | [optional] -**scope** | **List<String>** | | [optional] -**acrValues** | **List<String>** | | [optional] -**clientName** | **String** | oxd will generate its own non-human readable name by defaultif client_name is not specified | [optional] -**clientJwksUri** | **String** | | [optional] -**clientTokenEndpointAuthMethod** | **String** | | [optional] -**clientRequestUris** | **List<String>** | | [optional] -**clientFrontchannelLogoutUris** | **List<String>** | | [optional] -**clientSectorIdentifierUri** | **List<String>** | | [optional] -**contacts** | **List<String>** | | [optional] -**redirectUris** | **List<String>** | | [optional] -**uiLocales** | **List<String>** | | [optional] -**claimsLocales** | **List<String>** | | [optional] -**claimsRedirectUri** | **List<String>** | | [optional] -**clientId** | **String** | client id of existing client, ignores all other parameters and skips new client registration forcing to use existing client (client_secret is required if this parameter is set) | [optional] -**clientSecret** | **String** | client secret of existing client, must be used together with client_id | [optional] -**trustedClient** | **Boolean** | specified whether client is trusted. Default value is false. | [optional] - - - diff --git a/oxd-gen-client/docs/SetupClientResponse.md b/oxd-gen-client/docs/SetupClientResponse.md deleted file mode 100644 index 775b4b8c1..000000000 --- a/oxd-gen-client/docs/SetupClientResponse.md +++ /dev/null @@ -1,11 +0,0 @@ - -# SetupClientResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**SetupClientResponseData**](SetupClientResponseData.md) | | - - - diff --git a/oxd-gen-client/docs/SetupClientResponseData.md b/oxd-gen-client/docs/SetupClientResponseData.md deleted file mode 100644 index 066cecf2e..000000000 --- a/oxd-gen-client/docs/SetupClientResponseData.md +++ /dev/null @@ -1,19 +0,0 @@ - -# SetupClientResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**clientIdOfOxdId** | **String** | | -**opHost** | **String** | | -**setupClientOxdId** | **String** | | -**clientId** | **String** | | -**clientSecret** | **String** | | -**clientRegistrationAccessToken** | **String** | | -**clientRegistrationClientUri** | **String** | | -**clientIdIssuedAt** | **Integer** | | -**clientSecretExpiresAt** | **Integer** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md b/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md index cba386f9b..89814768d 100644 --- a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md +++ b/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md @@ -4,8 +4,8 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**UmaRpGetClaimsGatheringUrlResponseData**](UmaRpGetClaimsGatheringUrlResponseData.md) | | +**url** | **String** | | +**state** | **String** | | diff --git a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponseData.md b/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponseData.md deleted file mode 100644 index 3d5b45f73..000000000 --- a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponseData.md +++ /dev/null @@ -1,11 +0,0 @@ - -# UmaRpGetClaimsGatheringUrlResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **String** | | -**state** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetRptResponse.md b/oxd-gen-client/docs/UmaRpGetRptResponse.md index fa8e1128c..d493a1684 100644 --- a/oxd-gen-client/docs/UmaRpGetRptResponse.md +++ b/oxd-gen-client/docs/UmaRpGetRptResponse.md @@ -4,8 +4,10 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**UmaRpGetRptResponseData**](UmaRpGetRptResponseData.md) | | +**pct** | **String** | | +**updated** | **Boolean** | | +**accessToken** | **String** | | +**tokenType** | **String** | | diff --git a/oxd-gen-client/docs/UmaRpGetRptResponseData.md b/oxd-gen-client/docs/UmaRpGetRptResponseData.md deleted file mode 100644 index f9f07888e..000000000 --- a/oxd-gen-client/docs/UmaRpGetRptResponseData.md +++ /dev/null @@ -1,13 +0,0 @@ - -# UmaRpGetRptResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**pct** | **String** | | -**updated** | **Boolean** | | -**accessToken** | **String** | | -**tokenType** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRsCheckAccessResponse.md b/oxd-gen-client/docs/UmaRsCheckAccessResponse.md index 9b207e125..90fe5fc0a 100644 --- a/oxd-gen-client/docs/UmaRsCheckAccessResponse.md +++ b/oxd-gen-client/docs/UmaRsCheckAccessResponse.md @@ -4,8 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**UmaRsCheckAccessResponseData**](UmaRsCheckAccessResponseData.md) | | +**access** | **String** | Possible values are granted, denied | diff --git a/oxd-gen-client/docs/UmaRsCheckAccessResponseData.md b/oxd-gen-client/docs/UmaRsCheckAccessResponseData.md deleted file mode 100644 index e15439b84..000000000 --- a/oxd-gen-client/docs/UmaRsCheckAccessResponseData.md +++ /dev/null @@ -1,10 +0,0 @@ - -# UmaRsCheckAccessResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**access** | **String** | Possible values are granted, denied | - - - diff --git a/oxd-gen-client/docs/UpdateSiteResponse.md b/oxd-gen-client/docs/UpdateSiteResponse.md index 7afc641c1..d0e11d3f9 100644 --- a/oxd-gen-client/docs/UpdateSiteResponse.md +++ b/oxd-gen-client/docs/UpdateSiteResponse.md @@ -4,8 +4,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**status** | **String** | | -**data** | [**UpdateSiteResponseData**](UpdateSiteResponseData.md) | | +**oxdId** | **String** | | diff --git a/oxd-gen-client/docs/UpdateSiteResponseData.md b/oxd-gen-client/docs/UpdateSiteResponseData.md deleted file mode 100644 index 9a4c53050..000000000 --- a/oxd-gen-client/docs/UpdateSiteResponseData.md +++ /dev/null @@ -1,10 +0,0 @@ - -# UpdateSiteResponseData - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | - - - diff --git a/oxd-gen-client/pom.xml b/oxd-gen-client/pom.xml index 816479326..a90085b08 100644 --- a/oxd-gen-client/pom.xml +++ b/oxd-gen-client/pom.xml @@ -270,6 +270,11 @@ gson-fire ${gson-fire-version} + + org.threeten + threetenbp + ${threetenbp-version} + junit @@ -286,9 +291,9 @@ 1.5.18 2.7.5 2.8.1 + 1.3.5 1.0.0 4.12 UTF-8 - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/ApiCallback.java b/oxd-gen-client/src/main/java/io/swagger/client/ApiCallback.java index 036ce4e0e..e1c77e995 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/ApiCallback.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/ApiCallback.java @@ -13,10 +13,8 @@ package io.swagger.client; -import java.io.IOException; - -import java.util.Map; import java.util.List; +import java.util.Map; /** * Callback for asynchronous API call. diff --git a/oxd-gen-client/src/main/java/io/swagger/client/ApiClient.java b/oxd-gen-client/src/main/java/io/swagger/client/ApiClient.java index c60fbec3f..b175a2da3 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/ApiClient.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/ApiClient.java @@ -19,6 +19,9 @@ import com.squareup.okhttp.logging.HttpLoggingInterceptor.Level; import okio.BufferedSink; import okio.Okio; +import org.threeten.bp.LocalDate; +import org.threeten.bp.OffsetDateTime; +import org.threeten.bp.format.DateTimeFormatter; import javax.net.ssl.*; import java.io.File; @@ -36,9 +39,6 @@ import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; import java.text.DateFormat; -import java.time.LocalDate; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.TimeUnit; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/ApiException.java b/oxd-gen-client/src/main/java/io/swagger/client/ApiException.java index 69bb5efe6..5dd2a8775 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/ApiException.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/ApiException.java @@ -16,7 +16,7 @@ import java.util.Map; import java.util.List; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class ApiException extends Exception { private int code = 0; private Map> responseHeaders = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/Configuration.java b/oxd-gen-client/src/main/java/io/swagger/client/Configuration.java index c202a8b62..36f2af5f6 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/Configuration.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/Configuration.java @@ -13,7 +13,7 @@ package io.swagger.client; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class Configuration { private static ApiClient defaultApiClient = new ApiClient(); diff --git a/oxd-gen-client/src/main/java/io/swagger/client/JSON.java b/oxd-gen-client/src/main/java/io/swagger/client/JSON.java index 3dc9fb495..1c7ed4a9b 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/JSON.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/JSON.java @@ -23,6 +23,9 @@ import com.google.gson.JsonElement; import io.gsonfire.GsonFireBuilder; import io.gsonfire.TypeSelector; +import org.threeten.bp.LocalDate; +import org.threeten.bp.OffsetDateTime; +import org.threeten.bp.format.DateTimeFormatter; import io.swagger.client.model.*; @@ -32,9 +35,6 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.ParsePosition; -import java.time.LocalDate; -import java.time.OffsetDateTime; -import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.Map; import java.util.HashMap; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/Pair.java b/oxd-gen-client/src/main/java/io/swagger/client/Pair.java index d3b1cbd17..277228406 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/Pair.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/Pair.java @@ -13,7 +13,7 @@ package io.swagger.client; -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class Pair { private String name = ""; private String value = ""; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java b/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java index a353c2dda..4c7c5c926 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/StringUtil.java @@ -13,7 +13,7 @@ package io.swagger.client; -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class StringUtil { /** * Check if the given array contains the given value (with case-insensitive comparison). diff --git a/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java b/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java index 56b33ecb3..58a74d50f 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java @@ -13,51 +13,11 @@ package io.swagger.client.api; -import io.swagger.client.ApiCallback; -import io.swagger.client.ApiClient; -import io.swagger.client.ApiException; -import io.swagger.client.ApiResponse; -import io.swagger.client.Configuration; -import io.swagger.client.Pair; -import io.swagger.client.ProgressRequestBody; -import io.swagger.client.ProgressResponseBody; - import com.google.gson.reflect.TypeToken; +import io.swagger.client.*; +import io.swagger.client.model.*; import java.io.IOException; - - -import io.swagger.client.model.GetAccessTokenByRefreshTokenParams; -import io.swagger.client.model.GetAccessTokenByRefreshTokenResponse; -import io.swagger.client.model.GetAuthorizationUrlParams; -import io.swagger.client.model.GetAuthorizationUrlResponse; -import io.swagger.client.model.GetClientTokenParams; -import io.swagger.client.model.GetClientTokenResponse; -import io.swagger.client.model.GetLogoutUriParams; -import io.swagger.client.model.GetLogoutUriResponse; -import io.swagger.client.model.GetTokensByCodeParams; -import io.swagger.client.model.GetTokensByCodeResponse; -import io.swagger.client.model.GetUserInfoParams; -import io.swagger.client.model.GetUserInfoResponse; -import io.swagger.client.model.IntrospectAccessTokenParams; -import io.swagger.client.model.IntrospectAccessTokenResponse; -import io.swagger.client.model.IntrospectRptParams; -import io.swagger.client.model.IntrospectRptResponse; -import io.swagger.client.model.RegisterSiteParams; -import io.swagger.client.model.RegisterSiteResponse; -import io.swagger.client.model.RemoveSiteParams; -import io.swagger.client.model.RemoveSiteResponse; -import io.swagger.client.model.UmaRpGetClaimsGatheringUrlParams; -import io.swagger.client.model.UmaRpGetClaimsGatheringUrlResponse; -import io.swagger.client.model.UmaRpGetRptParams; -import io.swagger.client.model.UmaRpGetRptResponse; -import io.swagger.client.model.UmaRsCheckAccessParams; -import io.swagger.client.model.UmaRsCheckAccessResponse; -import io.swagger.client.model.UmaRsProtectParams; -import io.swagger.client.model.UmaRsProtectResponse; -import io.swagger.client.model.UpdateSiteParams; -import io.swagger.client.model.UpdateSiteResponse; - import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; @@ -1353,11 +1313,11 @@ private com.squareup.okhttp.Call removeSiteValidateBeforeCall(String authorizati * Removes site from oxd-server * @param authorization (optional) * @param removeSiteParams (optional) - * @return RemoveSiteResponse + * @return UpdateSiteResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public RemoveSiteResponse removeSite(String authorization, RemoveSiteParams removeSiteParams) throws ApiException { - ApiResponse resp = removeSiteWithHttpInfo(authorization, removeSiteParams); + public UpdateSiteResponse removeSite(String authorization, RemoveSiteParams removeSiteParams) throws ApiException { + ApiResponse resp = removeSiteWithHttpInfo(authorization, removeSiteParams); return resp.getData(); } @@ -1366,12 +1326,12 @@ public RemoveSiteResponse removeSite(String authorization, RemoveSiteParams remo * Removes site from oxd-server * @param authorization (optional) * @param removeSiteParams (optional) - * @return ApiResponse<RemoveSiteResponse> + * @return ApiResponse<UpdateSiteResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body */ - public ApiResponse removeSiteWithHttpInfo(String authorization, RemoveSiteParams removeSiteParams) throws ApiException { + public ApiResponse removeSiteWithHttpInfo(String authorization, RemoveSiteParams removeSiteParams) throws ApiException { com.squareup.okhttp.Call call = removeSiteValidateBeforeCall(authorization, removeSiteParams, null, null); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); return apiClient.execute(call, localVarReturnType); } @@ -1384,7 +1344,7 @@ public ApiResponse removeSiteWithHttpInfo(String authorizati * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object */ - public com.squareup.okhttp.Call removeSiteAsync(String authorization, RemoveSiteParams removeSiteParams, final ApiCallback callback) throws ApiException { + public com.squareup.okhttp.Call removeSiteAsync(String authorization, RemoveSiteParams removeSiteParams, final ApiCallback callback) throws ApiException { ProgressResponseBody.ProgressListener progressListener = null; ProgressRequestBody.ProgressRequestListener progressRequestListener = null; @@ -1406,7 +1366,7 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don } com.squareup.okhttp.Call call = removeSiteValidateBeforeCall(authorization, removeSiteParams, progressListener, progressRequestListener); - Type localVarReturnType = new TypeToken(){}.getType(); + Type localVarReturnType = new TypeToken(){}.getType(); apiClient.executeAsync(call, localVarReturnType, callback); return call; } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/auth/ApiKeyAuth.java b/oxd-gen-client/src/main/java/io/swagger/client/auth/ApiKeyAuth.java index 1b6b5af99..bb523dbbd 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/auth/ApiKeyAuth.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/auth/ApiKeyAuth.java @@ -18,7 +18,7 @@ import java.util.Map; import java.util.List; - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class ApiKeyAuth implements Authentication { private final String location; private final String paramName; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java b/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java index 02ff366ea..b16be9e61 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/auth/OAuth.java @@ -18,7 +18,7 @@ import java.util.Map; import java.util.List; -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:09:57.852Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class OAuth implements Authentication { private String accessToken; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java index 782cbcb25..8a7902724 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenParams.java @@ -28,7 +28,7 @@ /** * GetAccessTokenByRefreshTokenParams */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:09:57.852Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetAccessTokenByRefreshTokenParams { @SerializedName("oxd_id") private String oxdId = null; @@ -37,7 +37,7 @@ public class GetAccessTokenByRefreshTokenParams { private String refreshToken = null; @SerializedName("scope") - private List scope = new ArrayList<>(); + private List scope = new ArrayList(); public GetAccessTokenByRefreshTokenParams oxdId(String oxdId) { this.oxdId = oxdId; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponse.java index 85fa770de..2b18730ad 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponse.java @@ -21,54 +21,102 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetAccessTokenByRefreshTokenResponseData; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * GetAccessTokenByRefreshTokenResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetAccessTokenByRefreshTokenResponse { - @SerializedName("status") - private String status = null; + @SerializedName("scope") + private List scope = new ArrayList(); + + @SerializedName("access_token") + private String accessToken = null; + + @SerializedName("expires_in") + private Integer expiresIn = null; + + @SerializedName("refresh_token") + private String refreshToken = null; + + public GetAccessTokenByRefreshTokenResponse scope(List scope) { + this.scope = scope; + return this; + } + + public GetAccessTokenByRefreshTokenResponse addScopeItem(String scopeItem) { + this.scope.add(scopeItem); + return this; + } + + /** + * Get scope + * @return scope + **/ + @ApiModelProperty(example = "[\"openid\",\"profile\",\"uma_protection\",\"email\"]", required = true, value = "") + public List getScope() { + return scope; + } + + public void setScope(List scope) { + this.scope = scope; + } + + public GetAccessTokenByRefreshTokenResponse accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Get accessToken + * @return accessToken + **/ + @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") + public String getAccessToken() { + return accessToken; + } - @SerializedName("data") - private GetAccessTokenByRefreshTokenResponseData data = null; + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } - public GetAccessTokenByRefreshTokenResponse status(String status) { - this.status = status; + public GetAccessTokenByRefreshTokenResponse expiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; return this; } /** - * Get status - * @return status + * Get expiresIn + * @return expiresIn **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "299", required = true, value = "") + public Integer getExpiresIn() { + return expiresIn; } - public void setStatus(String status) { - this.status = status; + public void setExpiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; } - public GetAccessTokenByRefreshTokenResponse data(GetAccessTokenByRefreshTokenResponseData data) { - this.data = data; + public GetAccessTokenByRefreshTokenResponse refreshToken(String refreshToken) { + this.refreshToken = refreshToken; return this; } /** - * Get data - * @return data + * Get refreshToken + * @return refreshToken **/ - @ApiModelProperty(required = true, value = "") - public GetAccessTokenByRefreshTokenResponseData getData() { - return data; + @ApiModelProperty(example = "33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") + public String getRefreshToken() { + return refreshToken; } - public void setData(GetAccessTokenByRefreshTokenResponseData data) { - this.data = data; + public void setRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; } @@ -81,13 +129,15 @@ public boolean equals(java.lang.Object o) { return false; } GetAccessTokenByRefreshTokenResponse getAccessTokenByRefreshTokenResponse = (GetAccessTokenByRefreshTokenResponse) o; - return Objects.equals(this.status, getAccessTokenByRefreshTokenResponse.status) && - Objects.equals(this.data, getAccessTokenByRefreshTokenResponse.data); + return Objects.equals(this.scope, getAccessTokenByRefreshTokenResponse.scope) && + Objects.equals(this.accessToken, getAccessTokenByRefreshTokenResponse.accessToken) && + Objects.equals(this.expiresIn, getAccessTokenByRefreshTokenResponse.expiresIn) && + Objects.equals(this.refreshToken, getAccessTokenByRefreshTokenResponse.refreshToken); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(scope, accessToken, expiresIn, refreshToken); } @@ -96,8 +146,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetAccessTokenByRefreshTokenResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); + sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java deleted file mode 100644 index 2e4949b53..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAccessTokenByRefreshTokenResponseData.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * GetAccessTokenByRefreshTokenResponseData - */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-05T11:02:24.520Z") -public class GetAccessTokenByRefreshTokenResponseData { - @SerializedName("scope") - private List scope = new ArrayList<>(); - - @SerializedName("access_token") - private String accessToken = null; - - @SerializedName("expires_in") - private Integer expiresIn = null; - - @SerializedName("refresh_token") - private String refreshToken = null; - - public GetAccessTokenByRefreshTokenResponseData scope(List scope) { - this.scope = scope; - return this; - } - - public GetAccessTokenByRefreshTokenResponseData addScopeItem(String scopeItem) { - this.scope.add(scopeItem); - return this; - } - - /** - * Get scope - * @return scope - **/ - @ApiModelProperty(example = "[\"openid\",\"profile\",\"uma_protection\",\"email\"]", required = true, value = "") - public List getScope() { - return scope; - } - - public void setScope(List scope) { - this.scope = scope; - } - - public GetAccessTokenByRefreshTokenResponseData accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Get accessToken - * @return accessToken - **/ - @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public GetAccessTokenByRefreshTokenResponseData expiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - return this; - } - - /** - * Get expiresIn - * @return expiresIn - **/ - @ApiModelProperty(example = "299", required = true, value = "") - public Integer getExpiresIn() { - return expiresIn; - } - - public void setExpiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - } - - public GetAccessTokenByRefreshTokenResponseData refreshToken(String refreshToken) { - this.refreshToken = refreshToken; - return this; - } - - /** - * Get refreshToken - * @return refreshToken - **/ - @ApiModelProperty(example = "33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") - public String getRefreshToken() { - return refreshToken; - } - - public void setRefreshToken(String refreshToken) { - this.refreshToken = refreshToken; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetAccessTokenByRefreshTokenResponseData getAccessTokenByRefreshTokenResponseData = (GetAccessTokenByRefreshTokenResponseData) o; - return Objects.equals(this.scope, getAccessTokenByRefreshTokenResponseData.scope) && - Objects.equals(this.accessToken, getAccessTokenByRefreshTokenResponseData.accessToken) && - Objects.equals(this.expiresIn, getAccessTokenByRefreshTokenResponseData.expiresIn) && - Objects.equals(this.refreshToken, getAccessTokenByRefreshTokenResponseData.refreshToken); - } - - @Override - public int hashCode() { - return Objects.hash(scope, accessToken, expiresIn, refreshToken); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetAccessTokenByRefreshTokenResponseData {\n"); - - sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); - sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlParams.java index ae9186a68..fed194946 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlParams.java @@ -29,7 +29,7 @@ /** * GetAuthorizationUrlParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetAuthorizationUrlParams { @SerializedName("oxd_id") private String oxdId = null; @@ -71,7 +71,7 @@ public GetAuthorizationUrlParams scope(List scope) { public GetAuthorizationUrlParams addScopeItem(String scopeItem) { if (this.scope == null) { - this.scope = new ArrayList<>(); + this.scope = new ArrayList(); } this.scope.add(scopeItem); return this; @@ -97,7 +97,7 @@ public GetAuthorizationUrlParams acrValues(List acrValues) { public GetAuthorizationUrlParams addAcrValuesItem(String acrValuesItem) { if (this.acrValues == null) { - this.acrValues = new ArrayList<>(); + this.acrValues = new ArrayList(); } this.acrValues.add(acrValuesItem); return this; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponse.java index 57c0a99be..79afbcf83 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponse.java @@ -21,54 +21,32 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetAuthorizationUrlResponseData; import java.io.IOException; /** * GetAuthorizationUrlResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetAuthorizationUrlResponse { - @SerializedName("status") - private String status = null; - - @SerializedName("data") - private GetAuthorizationUrlResponseData data = null; - - public GetAuthorizationUrlResponse status(String status) { - this.status = status; - return this; - } - - /** - * Get status - * @return status - **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } + @SerializedName("authorization_url") + private String authorizationUrl = null; - public GetAuthorizationUrlResponse data(GetAuthorizationUrlResponseData data) { - this.data = data; + public GetAuthorizationUrlResponse authorizationUrl(String authorizationUrl) { + this.authorizationUrl = authorizationUrl; return this; } /** - * Get data - * @return data + * Get authorizationUrl + * @return authorizationUrl **/ - @ApiModelProperty(required = true, value = "") - public GetAuthorizationUrlResponseData getData() { - return data; + @ApiModelProperty(example = "https:///oxauth/restv1/authorize?response_type=code&client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!8A36.24E1.97DE.F4EF&redirect_uri=https://192.168.200.95/&scope=openid+profile+email+uma_protection+uma_authorization&state=473ot4nuqb4ubeokc139raur13&nonce=lbrdgorr974q66q6q9g454iccm", required = true, value = "") + public String getAuthorizationUrl() { + return authorizationUrl; } - public void setData(GetAuthorizationUrlResponseData data) { - this.data = data; + public void setAuthorizationUrl(String authorizationUrl) { + this.authorizationUrl = authorizationUrl; } @@ -81,13 +59,12 @@ public boolean equals(java.lang.Object o) { return false; } GetAuthorizationUrlResponse getAuthorizationUrlResponse = (GetAuthorizationUrlResponse) o; - return Objects.equals(this.status, getAuthorizationUrlResponse.status) && - Objects.equals(this.data, getAuthorizationUrlResponse.data); + return Objects.equals(this.authorizationUrl, getAuthorizationUrlResponse.authorizationUrl); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(authorizationUrl); } @@ -96,8 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetAuthorizationUrlResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" authorizationUrl: ").append(toIndentedString(authorizationUrl)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponseData.java deleted file mode 100644 index 0bfc88711..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetAuthorizationUrlResponseData.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * GetAuthorizationUrlResponseData - */ - -public class GetAuthorizationUrlResponseData { - @SerializedName("authorization_url") - private String authorizationUrl = null; - - public GetAuthorizationUrlResponseData authorizationUrl(String authorizationUrl) { - this.authorizationUrl = authorizationUrl; - return this; - } - - /** - * Get authorizationUrl - * @return authorizationUrl - **/ - @ApiModelProperty(example = "https:///oxauth/restv1/authorize?response_type=code&client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!8A36.24E1.97DE.F4EF&redirect_uri=https://192.168.200.95/&scope=openid+profile+email+uma_protection+uma_authorization&state=473ot4nuqb4ubeokc139raur13&nonce=lbrdgorr974q66q6q9g454iccm", required = true, value = "") - public String getAuthorizationUrl() { - return authorizationUrl; - } - - public void setAuthorizationUrl(String authorizationUrl) { - this.authorizationUrl = authorizationUrl; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetAuthorizationUrlResponseData getAuthorizationUrlResponseData = (GetAuthorizationUrlResponseData) o; - return Objects.equals(this.authorizationUrl, getAuthorizationUrlResponseData.authorizationUrl); - } - - @Override - public int hashCode() { - return Objects.hash(authorizationUrl); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetAuthorizationUrlResponseData {\n"); - - sb.append(" authorizationUrl: ").append(toIndentedString(authorizationUrl)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenParams.java index c1918f9fe..17ea969bc 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenParams.java @@ -28,7 +28,7 @@ /** * GetClientTokenParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetClientTokenParams { @SerializedName("op_host") private String opHost = null; @@ -97,7 +97,7 @@ public GetClientTokenParams scope(List scope) { public GetClientTokenParams addScopeItem(String scopeItem) { if (this.scope == null) { - this.scope = new ArrayList<>(); + this.scope = new ArrayList(); } this.scope.add(scopeItem); return this; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponse.java index 1216bf6ba..c862a3305 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponse.java @@ -21,54 +21,102 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetClientTokenResponseData; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * GetClientTokenResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetClientTokenResponse { - @SerializedName("status") - private String status = null; + @SerializedName("scope") + private List scope = new ArrayList(); + + @SerializedName("access_token") + private String accessToken = null; + + @SerializedName("expires_in") + private Integer expiresIn = null; + + @SerializedName("refresh_token") + private String refreshToken = null; + + public GetClientTokenResponse scope(List scope) { + this.scope = scope; + return this; + } + + public GetClientTokenResponse addScopeItem(String scopeItem) { + this.scope.add(scopeItem); + return this; + } + + /** + * Get scope + * @return scope + **/ + @ApiModelProperty(example = "[\"openid\",\"oxd\"]", required = true, value = "") + public List getScope() { + return scope; + } + + public void setScope(List scope) { + this.scope = scope; + } + + public GetClientTokenResponse accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Get accessToken + * @return accessToken + **/ + @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") + public String getAccessToken() { + return accessToken; + } - @SerializedName("data") - private GetClientTokenResponseData data = null; + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } - public GetClientTokenResponse status(String status) { - this.status = status; + public GetClientTokenResponse expiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; return this; } /** - * Get status - * @return status + * Get expiresIn + * @return expiresIn **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "299", required = true, value = "") + public Integer getExpiresIn() { + return expiresIn; } - public void setStatus(String status) { - this.status = status; + public void setExpiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; } - public GetClientTokenResponse data(GetClientTokenResponseData data) { - this.data = data; + public GetClientTokenResponse refreshToken(String refreshToken) { + this.refreshToken = refreshToken; return this; } /** - * Get data - * @return data + * Get refreshToken + * @return refreshToken **/ @ApiModelProperty(required = true, value = "") - public GetClientTokenResponseData getData() { - return data; + public String getRefreshToken() { + return refreshToken; } - public void setData(GetClientTokenResponseData data) { - this.data = data; + public void setRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; } @@ -81,13 +129,15 @@ public boolean equals(java.lang.Object o) { return false; } GetClientTokenResponse getClientTokenResponse = (GetClientTokenResponse) o; - return Objects.equals(this.status, getClientTokenResponse.status) && - Objects.equals(this.data, getClientTokenResponse.data); + return Objects.equals(this.scope, getClientTokenResponse.scope) && + Objects.equals(this.accessToken, getClientTokenResponse.accessToken) && + Objects.equals(this.expiresIn, getClientTokenResponse.expiresIn) && + Objects.equals(this.refreshToken, getClientTokenResponse.refreshToken); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(scope, accessToken, expiresIn, refreshToken); } @@ -96,8 +146,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetClientTokenResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); + sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponseData.java deleted file mode 100644 index a56464b4b..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetClientTokenResponseData.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * GetClientTokenResponseData - */ - -public class GetClientTokenResponseData { - @SerializedName("scope") - private List scope = new ArrayList<>(); - - @SerializedName("access_token") - private String accessToken = null; - - @SerializedName("expires_in") - private Integer expiresIn = null; - - @SerializedName("refresh_token") - private String refreshToken = null; - - public GetClientTokenResponseData scope(List scope) { - this.scope = scope; - return this; - } - - public GetClientTokenResponseData addScopeItem(String scopeItem) { - this.scope.add(scopeItem); - return this; - } - - /** - * Get scope - * @return scope - **/ - @ApiModelProperty(example = "[\"openid\",\"blah\"]", required = true, value = "") - public List getScope() { - return scope; - } - - public void setScope(List scope) { - this.scope = scope; - } - - public GetClientTokenResponseData accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Get accessToken - * @return accessToken - **/ - @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public GetClientTokenResponseData expiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - return this; - } - - /** - * Get expiresIn - * @return expiresIn - **/ - @ApiModelProperty(example = "299", required = true, value = "") - public Integer getExpiresIn() { - return expiresIn; - } - - public void setExpiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - } - - public GetClientTokenResponseData refreshToken(String refreshToken) { - this.refreshToken = refreshToken; - return this; - } - - /** - * Get refreshToken - * @return refreshToken - **/ - @ApiModelProperty(required = true, value = "") - public String getRefreshToken() { - return refreshToken; - } - - public void setRefreshToken(String refreshToken) { - this.refreshToken = refreshToken; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetClientTokenResponseData getClientTokenResponseData = (GetClientTokenResponseData) o; - return Objects.equals(this.scope, getClientTokenResponseData.scope) && - Objects.equals(this.accessToken, getClientTokenResponseData.accessToken) && - Objects.equals(this.expiresIn, getClientTokenResponseData.expiresIn) && - Objects.equals(this.refreshToken, getClientTokenResponseData.refreshToken); - } - - @Override - public int hashCode() { - return Objects.hash(scope, accessToken, expiresIn, refreshToken); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetClientTokenResponseData {\n"); - - sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); - sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriParams.java index 7ce9b8d81..524b9cced 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriParams.java @@ -26,7 +26,7 @@ /** * GetLogoutUriParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetLogoutUriParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java index a4f49c7a3..8261b948c 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java @@ -27,7 +27,7 @@ /** * GetLogoutUriResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetLogoutUriResponse { @SerializedName("claims") private GetLogoutUriResponseClaims claims = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponseClaims.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponseClaims.java index d9f111629..c084955e3 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponseClaims.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponseClaims.java @@ -26,7 +26,7 @@ /** * GetLogoutUriResponseClaims */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetLogoutUriResponseClaims { @SerializedName("url") private String url = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeParams.java index b8519ceee..bfc93ec62 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeParams.java @@ -26,7 +26,7 @@ /** * GetTokensByCodeParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetTokensByCodeParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponse.java index 8d5e4e08e..ec5cc9d7c 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponse.java @@ -21,54 +21,117 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetTokensByCodeResponseData; +import io.swagger.client.model.GetTokensByCodeResponseIdTokenClaims; import java.io.IOException; /** * GetTokensByCodeResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetTokensByCodeResponse { - @SerializedName("status") - private String status = null; + @SerializedName("access_token") + private String accessToken = null; + + @SerializedName("expires_in") + private Integer expiresIn = null; + + @SerializedName("id_token") + private String idToken = null; + + @SerializedName("refresh_token") + private String refreshToken = null; + + @SerializedName("id_token_claims") + private GetTokensByCodeResponseIdTokenClaims idTokenClaims = null; + + public GetTokensByCodeResponse accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } - @SerializedName("data") - private GetTokensByCodeResponseData data = null; + /** + * Get accessToken + * @return accessToken + **/ + @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + public GetTokensByCodeResponse expiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; + return this; + } + + /** + * Get expiresIn + * @return expiresIn + **/ + @ApiModelProperty(example = "299", required = true, value = "") + public Integer getExpiresIn() { + return expiresIn; + } + + public void setExpiresIn(Integer expiresIn) { + this.expiresIn = expiresIn; + } + + public GetTokensByCodeResponse idToken(String idToken) { + this.idToken = idToken; + return this; + } + + /** + * Get idToken + * @return idToken + **/ + @ApiModelProperty(example = "eyJraWQiOiI5MTUyNTU1Ni04YmIwLTQ2MzYtYTFhYy05ZGVlNjlhMDBmYWUiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJp", required = true, value = "") + public String getIdToken() { + return idToken; + } + + public void setIdToken(String idToken) { + this.idToken = idToken; + } - public GetTokensByCodeResponse status(String status) { - this.status = status; + public GetTokensByCodeResponse refreshToken(String refreshToken) { + this.refreshToken = refreshToken; return this; } /** - * Get status - * @return status + * Get refreshToken + * @return refreshToken **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") + public String getRefreshToken() { + return refreshToken; } - public void setStatus(String status) { - this.status = status; + public void setRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; } - public GetTokensByCodeResponse data(GetTokensByCodeResponseData data) { - this.data = data; + public GetTokensByCodeResponse idTokenClaims(GetTokensByCodeResponseIdTokenClaims idTokenClaims) { + this.idTokenClaims = idTokenClaims; return this; } /** - * Get data - * @return data + * Get idTokenClaims + * @return idTokenClaims **/ @ApiModelProperty(required = true, value = "") - public GetTokensByCodeResponseData getData() { - return data; + public GetTokensByCodeResponseIdTokenClaims getIdTokenClaims() { + return idTokenClaims; } - public void setData(GetTokensByCodeResponseData data) { - this.data = data; + public void setIdTokenClaims(GetTokensByCodeResponseIdTokenClaims idTokenClaims) { + this.idTokenClaims = idTokenClaims; } @@ -81,13 +144,16 @@ public boolean equals(java.lang.Object o) { return false; } GetTokensByCodeResponse getTokensByCodeResponse = (GetTokensByCodeResponse) o; - return Objects.equals(this.status, getTokensByCodeResponse.status) && - Objects.equals(this.data, getTokensByCodeResponse.data); + return Objects.equals(this.accessToken, getTokensByCodeResponse.accessToken) && + Objects.equals(this.expiresIn, getTokensByCodeResponse.expiresIn) && + Objects.equals(this.idToken, getTokensByCodeResponse.idToken) && + Objects.equals(this.refreshToken, getTokensByCodeResponse.refreshToken) && + Objects.equals(this.idTokenClaims, getTokensByCodeResponse.idTokenClaims); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(accessToken, expiresIn, idToken, refreshToken, idTokenClaims); } @@ -96,8 +162,11 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetTokensByCodeResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); + sb.append(" idToken: ").append(toIndentedString(idToken)).append("\n"); + sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); + sb.append(" idTokenClaims: ").append(toIndentedString(idTokenClaims)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseData.java deleted file mode 100644 index f3cf69194..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseData.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetTokensByCodeResponseDataIdTokenClaims; -import java.io.IOException; - -/** - * GetTokensByCodeResponseData - */ - -public class GetTokensByCodeResponseData { - @SerializedName("access_token") - private String accessToken = null; - - @SerializedName("expires_in") - private Integer expiresIn = null; - - @SerializedName("id_token") - private String idToken = null; - - @SerializedName("refresh_token") - private String refreshToken = null; - - @SerializedName("id_token_claims") - private GetTokensByCodeResponseDataIdTokenClaims idTokenClaims = null; - - public GetTokensByCodeResponseData accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Get accessToken - * @return accessToken - **/ - @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public GetTokensByCodeResponseData expiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - return this; - } - - /** - * Get expiresIn - * @return expiresIn - **/ - @ApiModelProperty(example = "299", required = true, value = "") - public Integer getExpiresIn() { - return expiresIn; - } - - public void setExpiresIn(Integer expiresIn) { - this.expiresIn = expiresIn; - } - - public GetTokensByCodeResponseData idToken(String idToken) { - this.idToken = idToken; - return this; - } - - /** - * Get idToken - * @return idToken - **/ - @ApiModelProperty(example = "eyJraWQiOiI5MTUyNTU1Ni04YmIwLTQ2MzYtYTFhYy05ZGVlNjlhMDBmYWUiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJp", required = true, value = "") - public String getIdToken() { - return idToken; - } - - public void setIdToken(String idToken) { - this.idToken = idToken; - } - - public GetTokensByCodeResponseData refreshToken(String refreshToken) { - this.refreshToken = refreshToken; - return this; - } - - /** - * Get refreshToken - * @return refreshToken - **/ - @ApiModelProperty(example = "33d7988e-6ffb-4fe5-8c2a-0e158691d446", required = true, value = "") - public String getRefreshToken() { - return refreshToken; - } - - public void setRefreshToken(String refreshToken) { - this.refreshToken = refreshToken; - } - - public GetTokensByCodeResponseData idTokenClaims(GetTokensByCodeResponseDataIdTokenClaims idTokenClaims) { - this.idTokenClaims = idTokenClaims; - return this; - } - - /** - * Get idTokenClaims - * @return idTokenClaims - **/ - @ApiModelProperty(required = true, value = "") - public GetTokensByCodeResponseDataIdTokenClaims getIdTokenClaims() { - return idTokenClaims; - } - - public void setIdTokenClaims(GetTokensByCodeResponseDataIdTokenClaims idTokenClaims) { - this.idTokenClaims = idTokenClaims; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetTokensByCodeResponseData getTokensByCodeResponseData = (GetTokensByCodeResponseData) o; - return Objects.equals(this.accessToken, getTokensByCodeResponseData.accessToken) && - Objects.equals(this.expiresIn, getTokensByCodeResponseData.expiresIn) && - Objects.equals(this.idToken, getTokensByCodeResponseData.idToken) && - Objects.equals(this.refreshToken, getTokensByCodeResponseData.refreshToken) && - Objects.equals(this.idTokenClaims, getTokensByCodeResponseData.idTokenClaims); - } - - @Override - public int hashCode() { - return Objects.hash(accessToken, expiresIn, idToken, refreshToken, idTokenClaims); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetTokensByCodeResponseData {\n"); - - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" expiresIn: ").append(toIndentedString(expiresIn)).append("\n"); - sb.append(" idToken: ").append(toIndentedString(idToken)).append("\n"); - sb.append(" refreshToken: ").append(toIndentedString(refreshToken)).append("\n"); - sb.append(" idTokenClaims: ").append(toIndentedString(idTokenClaims)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseDataIdTokenClaims.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseDataIdTokenClaims.java deleted file mode 100644 index 4bac03550..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseDataIdTokenClaims.java +++ /dev/null @@ -1,324 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * GetTokensByCodeResponseDataIdTokenClaims - */ - -public class GetTokensByCodeResponseDataIdTokenClaims { - @SerializedName("at_hash") - private List atHash = new ArrayList<>(); - - @SerializedName("aud") - private List aud = new ArrayList<>(); - - @SerializedName("sub") - private List sub = new ArrayList<>(); - - @SerializedName("auth_time") - private List authTime = new ArrayList<>(); - - @SerializedName("iss") - private List iss = new ArrayList<>(); - - @SerializedName("exp") - private List exp = new ArrayList<>(); - - @SerializedName("iat") - private List iat = new ArrayList<>(); - - @SerializedName("nonce") - private List nonce = new ArrayList<>(); - - @SerializedName("oxOpenIDConnectVersion") - private List oxOpenIDConnectVersion = new ArrayList<>(); - - public GetTokensByCodeResponseDataIdTokenClaims atHash(List atHash) { - this.atHash = atHash; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addAtHashItem(String atHashItem) { - this.atHash.add(atHashItem); - return this; - } - - /** - * Get atHash - * @return atHash - **/ - @ApiModelProperty(example = "[\"Cx2dz5Wvw_kBXAcTs3mFA\"]", required = true, value = "") - public List getAtHash() { - return atHash; - } - - public void setAtHash(List atHash) { - this.atHash = atHash; - } - - public GetTokensByCodeResponseDataIdTokenClaims aud(List aud) { - this.aud = aud; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addAudItem(String audItem) { - this.aud.add(audItem); - return this; - } - - /** - * Get aud - * @return aud - **/ - @ApiModelProperty(example = "[\"l238j323ds-23ij4\"]", required = true, value = "") - public List getAud() { - return aud; - } - - public void setAud(List aud) { - this.aud = aud; - } - - public GetTokensByCodeResponseDataIdTokenClaims sub(List sub) { - this.sub = sub; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addSubItem(String subItem) { - this.sub.add(subItem); - return this; - } - - /** - * Get sub - * @return sub - **/ - @ApiModelProperty(example = "[\"jblack\"]", required = true, value = "") - public List getSub() { - return sub; - } - - public void setSub(List sub) { - this.sub = sub; - } - - public GetTokensByCodeResponseDataIdTokenClaims authTime(List authTime) { - this.authTime = authTime; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addAuthTimeItem(String authTimeItem) { - this.authTime.add(authTimeItem); - return this; - } - - /** - * Get authTime - * @return authTime - **/ - @ApiModelProperty(required = true, value = "") - public List getAuthTime() { - return authTime; - } - - public void setAuthTime(List authTime) { - this.authTime = authTime; - } - - public GetTokensByCodeResponseDataIdTokenClaims iss(List iss) { - this.iss = iss; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addIssItem(String issItem) { - this.iss.add(issItem); - return this; - } - - /** - * Get iss - * @return iss - **/ - @ApiModelProperty(example = "[\"https://as.gluu.org/\"]", required = true, value = "") - public List getIss() { - return iss; - } - - public void setIss(List iss) { - this.iss = iss; - } - - public GetTokensByCodeResponseDataIdTokenClaims exp(List exp) { - this.exp = exp; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addExpItem(String expItem) { - this.exp.add(expItem); - return this; - } - - /** - * Get exp - * @return exp - **/ - @ApiModelProperty(required = true, value = "") - public List getExp() { - return exp; - } - - public void setExp(List exp) { - this.exp = exp; - } - - public GetTokensByCodeResponseDataIdTokenClaims iat(List iat) { - this.iat = iat; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addIatItem(String iatItem) { - this.iat.add(iatItem); - return this; - } - - /** - * Get iat - * @return iat - **/ - @ApiModelProperty(required = true, value = "") - public List getIat() { - return iat; - } - - public void setIat(List iat) { - this.iat = iat; - } - - public GetTokensByCodeResponseDataIdTokenClaims nonce(List nonce) { - this.nonce = nonce; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addNonceItem(String nonceItem) { - this.nonce.add(nonceItem); - return this; - } - - /** - * Get nonce - * @return nonce - **/ - @ApiModelProperty(required = true, value = "") - public List getNonce() { - return nonce; - } - - public void setNonce(List nonce) { - this.nonce = nonce; - } - - public GetTokensByCodeResponseDataIdTokenClaims oxOpenIDConnectVersion(List oxOpenIDConnectVersion) { - this.oxOpenIDConnectVersion = oxOpenIDConnectVersion; - return this; - } - - public GetTokensByCodeResponseDataIdTokenClaims addOxOpenIDConnectVersionItem(String oxOpenIDConnectVersionItem) { - this.oxOpenIDConnectVersion.add(oxOpenIDConnectVersionItem); - return this; - } - - /** - * Get oxOpenIDConnectVersion - * @return oxOpenIDConnectVersion - **/ - @ApiModelProperty(required = true, value = "") - public List getOxOpenIDConnectVersion() { - return oxOpenIDConnectVersion; - } - - public void setOxOpenIDConnectVersion(List oxOpenIDConnectVersion) { - this.oxOpenIDConnectVersion = oxOpenIDConnectVersion; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - GetTokensByCodeResponseDataIdTokenClaims getTokensByCodeResponseDataIdTokenClaims = (GetTokensByCodeResponseDataIdTokenClaims) o; - return Objects.equals(this.atHash, getTokensByCodeResponseDataIdTokenClaims.atHash) && - Objects.equals(this.aud, getTokensByCodeResponseDataIdTokenClaims.aud) && - Objects.equals(this.sub, getTokensByCodeResponseDataIdTokenClaims.sub) && - Objects.equals(this.authTime, getTokensByCodeResponseDataIdTokenClaims.authTime) && - Objects.equals(this.iss, getTokensByCodeResponseDataIdTokenClaims.iss) && - Objects.equals(this.exp, getTokensByCodeResponseDataIdTokenClaims.exp) && - Objects.equals(this.iat, getTokensByCodeResponseDataIdTokenClaims.iat) && - Objects.equals(this.nonce, getTokensByCodeResponseDataIdTokenClaims.nonce) && - Objects.equals(this.oxOpenIDConnectVersion, getTokensByCodeResponseDataIdTokenClaims.oxOpenIDConnectVersion); - } - - @Override - public int hashCode() { - return Objects.hash(atHash, aud, sub, authTime, iss, exp, iat, nonce, oxOpenIDConnectVersion); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class GetTokensByCodeResponseDataIdTokenClaims {\n"); - - sb.append(" atHash: ").append(toIndentedString(atHash)).append("\n"); - sb.append(" aud: ").append(toIndentedString(aud)).append("\n"); - sb.append(" sub: ").append(toIndentedString(sub)).append("\n"); - sb.append(" authTime: ").append(toIndentedString(authTime)).append("\n"); - sb.append(" iss: ").append(toIndentedString(iss)).append("\n"); - sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); - sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); - sb.append(" nonce: ").append(toIndentedString(nonce)).append("\n"); - sb.append(" oxOpenIDConnectVersion: ").append(toIndentedString(oxOpenIDConnectVersion)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoParams.java index 3db6a0a87..9300e9a88 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoParams.java @@ -26,7 +26,7 @@ /** * GetUserInfoParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetUserInfoParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java index 8556aee1c..2934e24f1 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java @@ -27,7 +27,7 @@ /** * GetUserInfoResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetUserInfoResponse { @SerializedName("claims") private GetUserInfoResponseClaims claims = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponseClaims.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponseClaims.java index ae52379d2..99886c69e 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponseClaims.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponseClaims.java @@ -28,52 +28,52 @@ /** * GetUserInfoResponseClaims */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetUserInfoResponseClaims { @SerializedName("sub") - private List sub = new ArrayList<>(); + private List sub = new ArrayList(); @SerializedName("zoneinfo") - private List zoneinfo = new ArrayList<>(); + private List zoneinfo = new ArrayList(); @SerializedName("website") - private List website = new ArrayList<>(); + private List website = new ArrayList(); @SerializedName("birthdate") - private List birthdate = new ArrayList<>(); + private List birthdate = new ArrayList(); @SerializedName("gender") - private List gender = new ArrayList<>(); + private List gender = new ArrayList(); @SerializedName("profile") - private List profile = new ArrayList<>(); + private List profile = new ArrayList(); @SerializedName("preferred_username") - private List preferredUsername = new ArrayList<>(); + private List preferredUsername = new ArrayList(); @SerializedName("middle_name") - private List middleName = new ArrayList<>(); + private List middleName = new ArrayList(); @SerializedName("locale") - private List locale = new ArrayList<>(); + private List locale = new ArrayList(); @SerializedName("given_name") - private List givenName = new ArrayList<>(); + private List givenName = new ArrayList(); @SerializedName("picture") - private List picture = new ArrayList<>(); + private List picture = new ArrayList(); @SerializedName("updated_at") - private List updatedAt = new ArrayList<>(); + private List updatedAt = new ArrayList(); @SerializedName("nickname") - private List nickname = new ArrayList<>(); + private List nickname = new ArrayList(); @SerializedName("name") - private List name = new ArrayList<>(); + private List name = new ArrayList(); @SerializedName("family_name") - private List familyName = new ArrayList<>(); + private List familyName = new ArrayList(); public GetUserInfoResponseClaims sub(List sub) { this.sub = sub; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetauthorizationurlCustomParameters.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetauthorizationurlCustomParameters.java index 8d338da5d..bc03acb01 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetauthorizationurlCustomParameters.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetauthorizationurlCustomParameters.java @@ -26,7 +26,7 @@ /** * GetauthorizationurlCustomParameters */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class GetauthorizationurlCustomParameters { @SerializedName("param1") private String param1 = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenParams.java index eaca8d920..02942a224 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenParams.java @@ -26,7 +26,7 @@ /** * IntrospectAccessTokenParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class IntrospectAccessTokenParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponse.java index 054f970f0..5a5d0cd4b 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponse.java @@ -21,54 +21,317 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.IntrospectAccessTokenResponseData; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * IntrospectAccessTokenResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class IntrospectAccessTokenResponse { - @SerializedName("status") - private String status = null; + @SerializedName("active") + private Boolean active = null; + + @SerializedName("client_id") + private String clientId = null; + + @SerializedName("username") + private String username = null; + + @SerializedName("scope") + private List scope = new ArrayList(); + + @SerializedName("token_type") + private String tokenType = null; + + @SerializedName("sub") + private String sub = null; + + @SerializedName("aud") + private String aud = null; + + @SerializedName("iss") + private String iss = null; + + @SerializedName("exp") + private Long exp = null; + + @SerializedName("iat") + private Long iat = null; + + @SerializedName("nbf") + private Long nbf = null; + + @SerializedName("jti") + private String jti = null; + + @SerializedName("acr_values") + private List acrValues = new ArrayList(); + + @SerializedName("extension_field") + private String extensionField = null; + + public IntrospectAccessTokenResponse active(Boolean active) { + this.active = active; + return this; + } + + /** + * Get active + * @return active + **/ + @ApiModelProperty(example = "true", required = true, value = "") + public Boolean isActive() { + return active; + } + + public void setActive(Boolean active) { + this.active = active; + } + + public IntrospectAccessTokenResponse clientId(String clientId) { + this.clientId = clientId; + return this; + } + + /** + * Get clientId + * @return clientId + **/ + @ApiModelProperty(example = "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", required = true, value = "") + public String getClientId() { + return clientId; + } - @SerializedName("data") - private IntrospectAccessTokenResponseData data = null; + public void setClientId(String clientId) { + this.clientId = clientId; + } - public IntrospectAccessTokenResponse status(String status) { - this.status = status; + public IntrospectAccessTokenResponse username(String username) { + this.username = username; return this; } /** - * Get status - * @return status + * Get username + * @return username **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "John Black", required = true, value = "") + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; } - public void setStatus(String status) { - this.status = status; + public IntrospectAccessTokenResponse scope(List scope) { + this.scope = scope; + return this; } - public IntrospectAccessTokenResponse data(IntrospectAccessTokenResponseData data) { - this.data = data; + public IntrospectAccessTokenResponse addScopeItem(String scopeItem) { + this.scope.add(scopeItem); return this; } /** - * Get data - * @return data + * Get scope + * @return scope **/ @ApiModelProperty(required = true, value = "") - public IntrospectAccessTokenResponseData getData() { - return data; + public List getScope() { + return scope; + } + + public void setScope(List scope) { + this.scope = scope; + } + + public IntrospectAccessTokenResponse tokenType(String tokenType) { + this.tokenType = tokenType; + return this; + } + + /** + * Get tokenType + * @return tokenType + **/ + @ApiModelProperty(example = "bearer", required = true, value = "") + public String getTokenType() { + return tokenType; + } + + public void setTokenType(String tokenType) { + this.tokenType = tokenType; + } + + public IntrospectAccessTokenResponse sub(String sub) { + this.sub = sub; + return this; + } + + /** + * Get sub + * @return sub + **/ + @ApiModelProperty(example = "jblack", required = true, value = "") + public String getSub() { + return sub; + } + + public void setSub(String sub) { + this.sub = sub; + } + + public IntrospectAccessTokenResponse aud(String aud) { + this.aud = aud; + return this; + } + + /** + * Get aud + * @return aud + **/ + @ApiModelProperty(example = "l238j323ds-23ij4", required = true, value = "") + public String getAud() { + return aud; + } + + public void setAud(String aud) { + this.aud = aud; + } + + public IntrospectAccessTokenResponse iss(String iss) { + this.iss = iss; + return this; + } + + /** + * Get iss + * @return iss + **/ + @ApiModelProperty(example = "https://as.gluu.org/", required = true, value = "") + public String getIss() { + return iss; + } + + public void setIss(String iss) { + this.iss = iss; + } + + public IntrospectAccessTokenResponse exp(Long exp) { + this.exp = exp; + return this; + } + + /** + * number of seconds since January 1 1970 UTC, indicating when this token will expire + * @return exp + **/ + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when this token will expire") + public Long getExp() { + return exp; + } + + public void setExp(Long exp) { + this.exp = exp; + } + + public IntrospectAccessTokenResponse iat(Long iat) { + this.iat = iat; + return this; + } + + /** + * number of seconds since January 1 1970 UTC, indicating when the token was issued at + * @return iat + **/ + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token was issued at") + public Long getIat() { + return iat; + } + + public void setIat(Long iat) { + this.iat = iat; + } + + public IntrospectAccessTokenResponse nbf(Long nbf) { + this.nbf = nbf; + return this; + } + + /** + * number of seconds since January 1 1970 UTC, indicating when the token not to be used before + * @return nbf + **/ + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token not to be used before") + public Long getNbf() { + return nbf; + } + + public void setNbf(Long nbf) { + this.nbf = nbf; + } + + public IntrospectAccessTokenResponse jti(String jti) { + this.jti = jti; + return this; + } + + /** + * a unique identifier for the JWT + * @return jti + **/ + @ApiModelProperty(required = true, value = "a unique identifier for the JWT") + public String getJti() { + return jti; + } + + public void setJti(String jti) { + this.jti = jti; + } + + public IntrospectAccessTokenResponse acrValues(List acrValues) { + this.acrValues = acrValues; + return this; + } + + public IntrospectAccessTokenResponse addAcrValuesItem(String acrValuesItem) { + this.acrValues.add(acrValuesItem); + return this; + } + + /** + * Get acrValues + * @return acrValues + **/ + @ApiModelProperty(example = "[\"basic\"]", required = true, value = "") + public List getAcrValues() { + return acrValues; + } + + public void setAcrValues(List acrValues) { + this.acrValues = acrValues; + } + + public IntrospectAccessTokenResponse extensionField(String extensionField) { + this.extensionField = extensionField; + return this; + } + + /** + * Get extensionField + * @return extensionField + **/ + @ApiModelProperty(example = "twenty-seven", required = true, value = "") + public String getExtensionField() { + return extensionField; } - public void setData(IntrospectAccessTokenResponseData data) { - this.data = data; + public void setExtensionField(String extensionField) { + this.extensionField = extensionField; } @@ -81,13 +344,25 @@ public boolean equals(java.lang.Object o) { return false; } IntrospectAccessTokenResponse introspectAccessTokenResponse = (IntrospectAccessTokenResponse) o; - return Objects.equals(this.status, introspectAccessTokenResponse.status) && - Objects.equals(this.data, introspectAccessTokenResponse.data); + return Objects.equals(this.active, introspectAccessTokenResponse.active) && + Objects.equals(this.clientId, introspectAccessTokenResponse.clientId) && + Objects.equals(this.username, introspectAccessTokenResponse.username) && + Objects.equals(this.scope, introspectAccessTokenResponse.scope) && + Objects.equals(this.tokenType, introspectAccessTokenResponse.tokenType) && + Objects.equals(this.sub, introspectAccessTokenResponse.sub) && + Objects.equals(this.aud, introspectAccessTokenResponse.aud) && + Objects.equals(this.iss, introspectAccessTokenResponse.iss) && + Objects.equals(this.exp, introspectAccessTokenResponse.exp) && + Objects.equals(this.iat, introspectAccessTokenResponse.iat) && + Objects.equals(this.nbf, introspectAccessTokenResponse.nbf) && + Objects.equals(this.jti, introspectAccessTokenResponse.jti) && + Objects.equals(this.acrValues, introspectAccessTokenResponse.acrValues) && + Objects.equals(this.extensionField, introspectAccessTokenResponse.extensionField); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(active, clientId, username, scope, tokenType, sub, aud, iss, exp, iat, nbf, jti, acrValues, extensionField); } @@ -96,8 +371,20 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IntrospectAccessTokenResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); + sb.append(" username: ").append(toIndentedString(username)).append("\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append(" tokenType: ").append(toIndentedString(tokenType)).append("\n"); + sb.append(" sub: ").append(toIndentedString(sub)).append("\n"); + sb.append(" aud: ").append(toIndentedString(aud)).append("\n"); + sb.append(" iss: ").append(toIndentedString(iss)).append("\n"); + sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); + sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); + sb.append(" nbf: ").append(toIndentedString(nbf)).append("\n"); + sb.append(" jti: ").append(toIndentedString(jti)).append("\n"); + sb.append(" acrValues: ").append(toIndentedString(acrValues)).append("\n"); + sb.append(" extensionField: ").append(toIndentedString(extensionField)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponseData.java deleted file mode 100644 index e42e1efce..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectAccessTokenResponseData.java +++ /dev/null @@ -1,404 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * IntrospectAccessTokenResponseData - */ - -public class IntrospectAccessTokenResponseData { - @SerializedName("active") - private Boolean active = null; - - @SerializedName("client_id") - private String clientId = null; - - @SerializedName("username") - private String username = null; - - @SerializedName("scope") - private List scope = new ArrayList<>(); - - @SerializedName("token_type") - private String tokenType = null; - - @SerializedName("sub") - private String sub = null; - - @SerializedName("aud") - private String aud = null; - - @SerializedName("iss") - private String iss = null; - - @SerializedName("exp") - private Long exp = null; - - @SerializedName("iat") - private Long iat = null; - - @SerializedName("nbf") - private Long nbf = null; - - @SerializedName("jti") - private String jti = null; - - @SerializedName("acr_values") - private List acrValues = new ArrayList<>(); - - @SerializedName("extension_field") - private String extensionField = null; - - public IntrospectAccessTokenResponseData active(Boolean active) { - this.active = active; - return this; - } - - /** - * Get active - * @return active - **/ - @ApiModelProperty(example = "true", required = true, value = "") - public Boolean isActive() { - return active; - } - - public void setActive(Boolean active) { - this.active = active; - } - - public IntrospectAccessTokenResponseData clientId(String clientId) { - this.clientId = clientId; - return this; - } - - /** - * Get clientId - * @return clientId - **/ - @ApiModelProperty(example = "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", required = true, value = "") - public String getClientId() { - return clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - public IntrospectAccessTokenResponseData username(String username) { - this.username = username; - return this; - } - - /** - * Get username - * @return username - **/ - @ApiModelProperty(example = "John Black", required = true, value = "") - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public IntrospectAccessTokenResponseData scope(List scope) { - this.scope = scope; - return this; - } - - public IntrospectAccessTokenResponseData addScopeItem(String scopeItem) { - this.scope.add(scopeItem); - return this; - } - - /** - * Get scope - * @return scope - **/ - @ApiModelProperty(required = true, value = "") - public List getScope() { - return scope; - } - - public void setScope(List scope) { - this.scope = scope; - } - - public IntrospectAccessTokenResponseData tokenType(String tokenType) { - this.tokenType = tokenType; - return this; - } - - /** - * Get tokenType - * @return tokenType - **/ - @ApiModelProperty(example = "bearer", required = true, value = "") - public String getTokenType() { - return tokenType; - } - - public void setTokenType(String tokenType) { - this.tokenType = tokenType; - } - - public IntrospectAccessTokenResponseData sub(String sub) { - this.sub = sub; - return this; - } - - /** - * Get sub - * @return sub - **/ - @ApiModelProperty(example = "jblack", required = true, value = "") - public String getSub() { - return sub; - } - - public void setSub(String sub) { - this.sub = sub; - } - - public IntrospectAccessTokenResponseData aud(String aud) { - this.aud = aud; - return this; - } - - /** - * Get aud - * @return aud - **/ - @ApiModelProperty(example = "l238j323ds-23ij4", required = true, value = "") - public String getAud() { - return aud; - } - - public void setAud(String aud) { - this.aud = aud; - } - - public IntrospectAccessTokenResponseData iss(String iss) { - this.iss = iss; - return this; - } - - /** - * Get iss - * @return iss - **/ - @ApiModelProperty(example = "https://as.gluu.org/", required = true, value = "") - public String getIss() { - return iss; - } - - public void setIss(String iss) { - this.iss = iss; - } - - public IntrospectAccessTokenResponseData exp(Long exp) { - this.exp = exp; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when this token will expire - * @return exp - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when this token will expire") - public Long getExp() { - return exp; - } - - public void setExp(Long exp) { - this.exp = exp; - } - - public IntrospectAccessTokenResponseData iat(Long iat) { - this.iat = iat; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when the token was issued at - * @return iat - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token was issued at") - public Long getIat() { - return iat; - } - - public void setIat(Long iat) { - this.iat = iat; - } - - public IntrospectAccessTokenResponseData nbf(Long nbf) { - this.nbf = nbf; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when the token not to be used before - * @return nbf - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token not to be used before") - public Long getNbf() { - return nbf; - } - - public void setNbf(Long nbf) { - this.nbf = nbf; - } - - public IntrospectAccessTokenResponseData jti(String jti) { - this.jti = jti; - return this; - } - - /** - * a unique identifier for the JWT - * @return jti - **/ - @ApiModelProperty(required = true, value = "a unique identifier for the JWT") - public String getJti() { - return jti; - } - - public void setJti(String jti) { - this.jti = jti; - } - - public IntrospectAccessTokenResponseData acrValues(List acrValues) { - this.acrValues = acrValues; - return this; - } - - public IntrospectAccessTokenResponseData addAcrValuesItem(String acrValuesItem) { - this.acrValues.add(acrValuesItem); - return this; - } - - /** - * Get acrValues - * @return acrValues - **/ - @ApiModelProperty(example = "[\"basic\"]", required = true, value = "") - public List getAcrValues() { - return acrValues; - } - - public void setAcrValues(List acrValues) { - this.acrValues = acrValues; - } - - public IntrospectAccessTokenResponseData extensionField(String extensionField) { - this.extensionField = extensionField; - return this; - } - - /** - * Get extensionField - * @return extensionField - **/ - @ApiModelProperty(example = "twenty-seven", required = true, value = "") - public String getExtensionField() { - return extensionField; - } - - public void setExtensionField(String extensionField) { - this.extensionField = extensionField; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IntrospectAccessTokenResponseData introspectAccessTokenResponseData = (IntrospectAccessTokenResponseData) o; - return Objects.equals(this.active, introspectAccessTokenResponseData.active) && - Objects.equals(this.clientId, introspectAccessTokenResponseData.clientId) && - Objects.equals(this.username, introspectAccessTokenResponseData.username) && - Objects.equals(this.scope, introspectAccessTokenResponseData.scope) && - Objects.equals(this.tokenType, introspectAccessTokenResponseData.tokenType) && - Objects.equals(this.sub, introspectAccessTokenResponseData.sub) && - Objects.equals(this.aud, introspectAccessTokenResponseData.aud) && - Objects.equals(this.iss, introspectAccessTokenResponseData.iss) && - Objects.equals(this.exp, introspectAccessTokenResponseData.exp) && - Objects.equals(this.iat, introspectAccessTokenResponseData.iat) && - Objects.equals(this.nbf, introspectAccessTokenResponseData.nbf) && - Objects.equals(this.jti, introspectAccessTokenResponseData.jti) && - Objects.equals(this.acrValues, introspectAccessTokenResponseData.acrValues) && - Objects.equals(this.extensionField, introspectAccessTokenResponseData.extensionField); - } - - @Override - public int hashCode() { - return Objects.hash(active, clientId, username, scope, tokenType, sub, aud, iss, exp, iat, nbf, jti, acrValues, extensionField); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IntrospectAccessTokenResponseData {\n"); - - sb.append(" active: ").append(toIndentedString(active)).append("\n"); - sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); - sb.append(" username: ").append(toIndentedString(username)).append("\n"); - sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); - sb.append(" tokenType: ").append(toIndentedString(tokenType)).append("\n"); - sb.append(" sub: ").append(toIndentedString(sub)).append("\n"); - sb.append(" aud: ").append(toIndentedString(aud)).append("\n"); - sb.append(" iss: ").append(toIndentedString(iss)).append("\n"); - sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); - sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); - sb.append(" nbf: ").append(toIndentedString(nbf)).append("\n"); - sb.append(" jti: ").append(toIndentedString(jti)).append("\n"); - sb.append(" acrValues: ").append(toIndentedString(acrValues)).append("\n"); - sb.append(" extensionField: ").append(toIndentedString(extensionField)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptParams.java index 1b8b196f3..9ea22199e 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptParams.java @@ -26,7 +26,7 @@ /** * IntrospectRptParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class IntrospectRptParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponse.java index c242100a7..9cbb37ed2 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponse.java @@ -21,54 +21,123 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.IntrospectRptResponseData; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; /** * IntrospectRptResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class IntrospectRptResponse { - @SerializedName("status") - private String status = null; + @SerializedName("active") + private Boolean active = null; + + @SerializedName("exp") + private Long exp = null; + + @SerializedName("iat") + private Long iat = null; + + @SerializedName("nbf") + private Long nbf = null; + + @SerializedName("permissions") + private List permissions = new ArrayList(); + + public IntrospectRptResponse active(Boolean active) { + this.active = active; + return this; + } + + /** + * Get active + * @return active + **/ + @ApiModelProperty(example = "true", required = true, value = "") + public Boolean isActive() { + return active; + } + + public void setActive(Boolean active) { + this.active = active; + } + + public IntrospectRptResponse exp(Long exp) { + this.exp = exp; + return this; + } - @SerializedName("data") - private IntrospectRptResponseData data = null; + /** + * number of seconds since January 1 1970 UTC, indicating when this token will expire + * @return exp + **/ + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when this token will expire") + public Long getExp() { + return exp; + } + + public void setExp(Long exp) { + this.exp = exp; + } - public IntrospectRptResponse status(String status) { - this.status = status; + public IntrospectRptResponse iat(Long iat) { + this.iat = iat; return this; } /** - * Get status - * @return status + * number of seconds since January 1 1970 UTC, indicating when the token was issued at + * @return iat **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token was issued at") + public Long getIat() { + return iat; } - public void setStatus(String status) { - this.status = status; + public void setIat(Long iat) { + this.iat = iat; + } + + public IntrospectRptResponse nbf(Long nbf) { + this.nbf = nbf; + return this; + } + + /** + * number of seconds since January 1 1970 UTC, indicating when the token not to be used before + * @return nbf + **/ + @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token not to be used before") + public Long getNbf() { + return nbf; + } + + public void setNbf(Long nbf) { + this.nbf = nbf; + } + + public IntrospectRptResponse permissions(List permissions) { + this.permissions = permissions; + return this; } - public IntrospectRptResponse data(IntrospectRptResponseData data) { - this.data = data; + public IntrospectRptResponse addPermissionsItem(Object permissionsItem) { + this.permissions.add(permissionsItem); return this; } /** - * Get data - * @return data + * Get permissions + * @return permissions **/ @ApiModelProperty(required = true, value = "") - public IntrospectRptResponseData getData() { - return data; + public List getPermissions() { + return permissions; } - public void setData(IntrospectRptResponseData data) { - this.data = data; + public void setPermissions(List permissions) { + this.permissions = permissions; } @@ -81,13 +150,16 @@ public boolean equals(java.lang.Object o) { return false; } IntrospectRptResponse introspectRptResponse = (IntrospectRptResponse) o; - return Objects.equals(this.status, introspectRptResponse.status) && - Objects.equals(this.data, introspectRptResponse.data); + return Objects.equals(this.active, introspectRptResponse.active) && + Objects.equals(this.exp, introspectRptResponse.exp) && + Objects.equals(this.iat, introspectRptResponse.iat) && + Objects.equals(this.nbf, introspectRptResponse.nbf) && + Objects.equals(this.permissions, introspectRptResponse.permissions); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(active, exp, iat, nbf, permissions); } @@ -96,8 +168,11 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class IntrospectRptResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); + sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); + sb.append(" nbf: ").append(toIndentedString(nbf)).append("\n"); + sb.append(" permissions: ").append(toIndentedString(permissions)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponseData.java deleted file mode 100644 index 6a71d50a1..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/IntrospectRptResponseData.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -/** - * IntrospectRptResponseData - */ - -public class IntrospectRptResponseData { - @SerializedName("active") - private Boolean active = null; - - @SerializedName("exp") - private Long exp = null; - - @SerializedName("iat") - private Long iat = null; - - @SerializedName("nbf") - private Long nbf = null; - - @SerializedName("permissions") - private List permissions = new ArrayList<>(); - - public IntrospectRptResponseData active(Boolean active) { - this.active = active; - return this; - } - - /** - * Get active - * @return active - **/ - @ApiModelProperty(example = "true", required = true, value = "") - public Boolean isActive() { - return active; - } - - public void setActive(Boolean active) { - this.active = active; - } - - public IntrospectRptResponseData exp(Long exp) { - this.exp = exp; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when this token will expire - * @return exp - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when this token will expire") - public Long getExp() { - return exp; - } - - public void setExp(Long exp) { - this.exp = exp; - } - - public IntrospectRptResponseData iat(Long iat) { - this.iat = iat; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when the token was issued at - * @return iat - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token was issued at") - public Long getIat() { - return iat; - } - - public void setIat(Long iat) { - this.iat = iat; - } - - public IntrospectRptResponseData nbf(Long nbf) { - this.nbf = nbf; - return this; - } - - /** - * number of seconds since January 1 1970 UTC, indicating when the token not to be used before - * @return nbf - **/ - @ApiModelProperty(example = "1535709072", required = true, value = "number of seconds since January 1 1970 UTC, indicating when the token not to be used before") - public Long getNbf() { - return nbf; - } - - public void setNbf(Long nbf) { - this.nbf = nbf; - } - - public IntrospectRptResponseData permissions(List permissions) { - this.permissions = permissions; - return this; - } - - public IntrospectRptResponseData addPermissionsItem(Object permissionsItem) { - this.permissions.add(permissionsItem); - return this; - } - - /** - * Get permissions - * @return permissions - **/ - @ApiModelProperty(required = true, value = "") - public List getPermissions() { - return permissions; - } - - public void setPermissions(List permissions) { - this.permissions = permissions; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - IntrospectRptResponseData introspectRptResponseData = (IntrospectRptResponseData) o; - return Objects.equals(this.active, introspectRptResponseData.active) && - Objects.equals(this.exp, introspectRptResponseData.exp) && - Objects.equals(this.iat, introspectRptResponseData.iat) && - Objects.equals(this.nbf, introspectRptResponseData.nbf) && - Objects.equals(this.permissions, introspectRptResponseData.permissions); - } - - @Override - public int hashCode() { - return Objects.hash(active, exp, iat, nbf, permissions); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class IntrospectRptResponseData {\n"); - - sb.append(" active: ").append(toIndentedString(active)).append("\n"); - sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); - sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); - sb.append(" nbf: ").append(toIndentedString(nbf)).append("\n"); - sb.append(" permissions: ").append(toIndentedString(permissions)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java index 723969b6c..ff7cdc10f 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java @@ -28,7 +28,7 @@ /** * RegisterSiteParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class RegisterSiteParams { @SerializedName("authorization_redirect_uri") private String authorizationRedirectUri = null; @@ -175,7 +175,7 @@ public RegisterSiteParams responseTypes(List responseTypes) { public RegisterSiteParams addResponseTypesItem(String responseTypesItem) { if (this.responseTypes == null) { - this.responseTypes = new ArrayList<>(); + this.responseTypes = new ArrayList(); } this.responseTypes.add(responseTypesItem); return this; @@ -201,7 +201,7 @@ public RegisterSiteParams grantTypes(List grantTypes) { public RegisterSiteParams addGrantTypesItem(String grantTypesItem) { if (this.grantTypes == null) { - this.grantTypes = new ArrayList<>(); + this.grantTypes = new ArrayList(); } this.grantTypes.add(grantTypesItem); return this; @@ -227,7 +227,7 @@ public RegisterSiteParams scope(List scope) { public RegisterSiteParams addScopeItem(String scopeItem) { if (this.scope == null) { - this.scope = new ArrayList<>(); + this.scope = new ArrayList(); } this.scope.add(scopeItem); return this; @@ -253,7 +253,7 @@ public RegisterSiteParams acrValues(List acrValues) { public RegisterSiteParams addAcrValuesItem(String acrValuesItem) { if (this.acrValues == null) { - this.acrValues = new ArrayList<>(); + this.acrValues = new ArrayList(); } this.acrValues.add(acrValuesItem); return this; @@ -333,7 +333,7 @@ public RegisterSiteParams clientRequestUris(List clientRequestUris) { public RegisterSiteParams addClientRequestUrisItem(String clientRequestUrisItem) { if (this.clientRequestUris == null) { - this.clientRequestUris = new ArrayList<>(); + this.clientRequestUris = new ArrayList(); } this.clientRequestUris.add(clientRequestUrisItem); return this; @@ -359,7 +359,7 @@ public RegisterSiteParams clientFrontchannelLogoutUris(List clientFrontc public RegisterSiteParams addClientFrontchannelLogoutUrisItem(String clientFrontchannelLogoutUrisItem) { if (this.clientFrontchannelLogoutUris == null) { - this.clientFrontchannelLogoutUris = new ArrayList<>(); + this.clientFrontchannelLogoutUris = new ArrayList(); } this.clientFrontchannelLogoutUris.add(clientFrontchannelLogoutUrisItem); return this; @@ -403,7 +403,7 @@ public RegisterSiteParams contacts(List contacts) { public RegisterSiteParams addContactsItem(String contactsItem) { if (this.contacts == null) { - this.contacts = new ArrayList<>(); + this.contacts = new ArrayList(); } this.contacts.add(contactsItem); return this; @@ -429,7 +429,7 @@ public RegisterSiteParams redirectUris(List redirectUris) { public RegisterSiteParams addRedirectUrisItem(String redirectUrisItem) { if (this.redirectUris == null) { - this.redirectUris = new ArrayList<>(); + this.redirectUris = new ArrayList(); } this.redirectUris.add(redirectUrisItem); return this; @@ -455,7 +455,7 @@ public RegisterSiteParams uiLocales(List uiLocales) { public RegisterSiteParams addUiLocalesItem(String uiLocalesItem) { if (this.uiLocales == null) { - this.uiLocales = new ArrayList<>(); + this.uiLocales = new ArrayList(); } this.uiLocales.add(uiLocalesItem); return this; @@ -481,7 +481,7 @@ public RegisterSiteParams claimsLocales(List claimsLocales) { public RegisterSiteParams addClaimsLocalesItem(String claimsLocalesItem) { if (this.claimsLocales == null) { - this.claimsLocales = new ArrayList<>(); + this.claimsLocales = new ArrayList(); } this.claimsLocales.add(claimsLocalesItem); return this; @@ -507,7 +507,7 @@ public RegisterSiteParams claimsRedirectUri(List claimsRedirectUri) { public RegisterSiteParams addClaimsRedirectUriItem(String claimsRedirectUriItem) { if (this.claimsRedirectUri == null) { - this.claimsRedirectUri = new ArrayList<>(); + this.claimsRedirectUri = new ArrayList(); } this.claimsRedirectUri.add(claimsRedirectUriItem); return this; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponse.java index 77dc78f5c..7de7ef44d 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponse.java @@ -21,54 +21,179 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.RegisterSiteResponseData; import java.io.IOException; /** * RegisterSiteResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class RegisterSiteResponse { - @SerializedName("status") - private String status = null; + @SerializedName("oxd_id") + private String oxdId = null; + + @SerializedName("op_host") + private String opHost = null; + + @SerializedName("client_id") + private String clientId = null; + + @SerializedName("client_secret") + private String clientSecret = null; + + @SerializedName("client_registration_access_token") + private String clientRegistrationAccessToken = null; + + @SerializedName("client_registration_client_uri") + private String clientRegistrationClientUri = null; + + @SerializedName("client_id_issued_at") + private Integer clientIdIssuedAt = null; + + @SerializedName("client_secret_expires_at") + private Integer clientSecretExpiresAt = null; - @SerializedName("data") - private RegisterSiteResponseData data = null; + public RegisterSiteResponse oxdId(String oxdId) { + this.oxdId = oxdId; + return this; + } + + /** + * Get oxdId + * @return oxdId + **/ + @ApiModelProperty(example = "bcad760f-91ba-46e1-a020-05e4281d91b6", required = true, value = "") + public String getOxdId() { + return oxdId; + } + + public void setOxdId(String oxdId) { + this.oxdId = oxdId; + } + + public RegisterSiteResponse opHost(String opHost) { + this.opHost = opHost; + return this; + } + + /** + * Get opHost + * @return opHost + **/ + @ApiModelProperty(example = "https://", required = true, value = "") + public String getOpHost() { + return opHost; + } + + public void setOpHost(String opHost) { + this.opHost = opHost; + } + + public RegisterSiteResponse clientId(String clientId) { + this.clientId = clientId; + return this; + } + + /** + * Get clientId + * @return clientId + **/ + @ApiModelProperty(example = "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", value = "") + public String getClientId() { + return clientId; + } + + public void setClientId(String clientId) { + this.clientId = clientId; + } + + public RegisterSiteResponse clientSecret(String clientSecret) { + this.clientSecret = clientSecret; + return this; + } + + /** + * Get clientSecret + * @return clientSecret + **/ + @ApiModelProperty(example = "f436b936-03fc-433f-9772-53c2bc9e1c74", value = "") + public String getClientSecret() { + return clientSecret; + } + + public void setClientSecret(String clientSecret) { + this.clientSecret = clientSecret; + } + + public RegisterSiteResponse clientRegistrationAccessToken(String clientRegistrationAccessToken) { + this.clientRegistrationAccessToken = clientRegistrationAccessToken; + return this; + } + + /** + * Get clientRegistrationAccessToken + * @return clientRegistrationAccessToken + **/ + @ApiModelProperty(example = "d836df94-44b0-445a-848a-d43189839b17", value = "") + public String getClientRegistrationAccessToken() { + return clientRegistrationAccessToken; + } + + public void setClientRegistrationAccessToken(String clientRegistrationAccessToken) { + this.clientRegistrationAccessToken = clientRegistrationAccessToken; + } + + public RegisterSiteResponse clientRegistrationClientUri(String clientRegistrationClientUri) { + this.clientRegistrationClientUri = clientRegistrationClientUri; + return this; + } + + /** + * Get clientRegistrationClientUri + * @return clientRegistrationClientUri + **/ + @ApiModelProperty(example = "https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", value = "") + public String getClientRegistrationClientUri() { + return clientRegistrationClientUri; + } + + public void setClientRegistrationClientUri(String clientRegistrationClientUri) { + this.clientRegistrationClientUri = clientRegistrationClientUri; + } - public RegisterSiteResponse status(String status) { - this.status = status; + public RegisterSiteResponse clientIdIssuedAt(Integer clientIdIssuedAt) { + this.clientIdIssuedAt = clientIdIssuedAt; return this; } /** - * Get status - * @return status + * Get clientIdIssuedAt + * @return clientIdIssuedAt **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "1501854943", value = "") + public Integer getClientIdIssuedAt() { + return clientIdIssuedAt; } - public void setStatus(String status) { - this.status = status; + public void setClientIdIssuedAt(Integer clientIdIssuedAt) { + this.clientIdIssuedAt = clientIdIssuedAt; } - public RegisterSiteResponse data(RegisterSiteResponseData data) { - this.data = data; + public RegisterSiteResponse clientSecretExpiresAt(Integer clientSecretExpiresAt) { + this.clientSecretExpiresAt = clientSecretExpiresAt; return this; } /** - * Get data - * @return data + * Get clientSecretExpiresAt + * @return clientSecretExpiresAt **/ - @ApiModelProperty(required = true, value = "") - public RegisterSiteResponseData getData() { - return data; + @ApiModelProperty(example = "1501941343", value = "") + public Integer getClientSecretExpiresAt() { + return clientSecretExpiresAt; } - public void setData(RegisterSiteResponseData data) { - this.data = data; + public void setClientSecretExpiresAt(Integer clientSecretExpiresAt) { + this.clientSecretExpiresAt = clientSecretExpiresAt; } @@ -81,13 +206,19 @@ public boolean equals(java.lang.Object o) { return false; } RegisterSiteResponse registerSiteResponse = (RegisterSiteResponse) o; - return Objects.equals(this.status, registerSiteResponse.status) && - Objects.equals(this.data, registerSiteResponse.data); + return Objects.equals(this.oxdId, registerSiteResponse.oxdId) && + Objects.equals(this.opHost, registerSiteResponse.opHost) && + Objects.equals(this.clientId, registerSiteResponse.clientId) && + Objects.equals(this.clientSecret, registerSiteResponse.clientSecret) && + Objects.equals(this.clientRegistrationAccessToken, registerSiteResponse.clientRegistrationAccessToken) && + Objects.equals(this.clientRegistrationClientUri, registerSiteResponse.clientRegistrationClientUri) && + Objects.equals(this.clientIdIssuedAt, registerSiteResponse.clientIdIssuedAt) && + Objects.equals(this.clientSecretExpiresAt, registerSiteResponse.clientSecretExpiresAt); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(oxdId, opHost, clientId, clientSecret, clientRegistrationAccessToken, clientRegistrationClientUri, clientIdIssuedAt, clientSecretExpiresAt); } @@ -96,8 +227,14 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class RegisterSiteResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); + sb.append(" opHost: ").append(toIndentedString(opHost)).append("\n"); + sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); + sb.append(" clientSecret: ").append(toIndentedString(clientSecret)).append("\n"); + sb.append(" clientRegistrationAccessToken: ").append(toIndentedString(clientRegistrationAccessToken)).append("\n"); + sb.append(" clientRegistrationClientUri: ").append(toIndentedString(clientRegistrationClientUri)).append("\n"); + sb.append(" clientIdIssuedAt: ").append(toIndentedString(clientIdIssuedAt)).append("\n"); + sb.append(" clientSecretExpiresAt: ").append(toIndentedString(clientSecretExpiresAt)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponseData.java deleted file mode 100644 index 95e2eb8cf..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteResponseData.java +++ /dev/null @@ -1,254 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * RegisterSiteResponseData - */ - -public class RegisterSiteResponseData { - @SerializedName("oxd_id") - private String oxdId = null; - - @SerializedName("op_host") - private String opHost = null; - - @SerializedName("client_id") - private String clientId = null; - - @SerializedName("client_secret") - private String clientSecret = null; - - @SerializedName("client_registration_access_token") - private String clientRegistrationAccessToken = null; - - @SerializedName("client_registration_client_uri") - private String clientRegistrationClientUri = null; - - @SerializedName("client_id_issued_at") - private Integer clientIdIssuedAt = null; - - @SerializedName("client_secret_expires_at") - private Integer clientSecretExpiresAt = null; - - public RegisterSiteResponseData oxdId(String oxdId) { - this.oxdId = oxdId; - return this; - } - - /** - * Get oxdId - * @return oxdId - **/ - @ApiModelProperty(example = "bcad760f-91ba-46e1-a020-05e4281d91b6", required = true, value = "") - public String getOxdId() { - return oxdId; - } - - public void setOxdId(String oxdId) { - this.oxdId = oxdId; - } - - public RegisterSiteResponseData opHost(String opHost) { - this.opHost = opHost; - return this; - } - - /** - * Get opHost - * @return opHost - **/ - @ApiModelProperty(example = "https://", required = true, value = "") - public String getOpHost() { - return opHost; - } - - public void setOpHost(String opHost) { - this.opHost = opHost; - } - - public RegisterSiteResponseData clientId(String clientId) { - this.clientId = clientId; - return this; - } - - /** - * Get clientId - * @return clientId - **/ - @ApiModelProperty(example = "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", value = "") - public String getClientId() { - return clientId; - } - - public void setClientId(String clientId) { - this.clientId = clientId; - } - - public RegisterSiteResponseData clientSecret(String clientSecret) { - this.clientSecret = clientSecret; - return this; - } - - /** - * Get clientSecret - * @return clientSecret - **/ - @ApiModelProperty(example = "f436b936-03fc-433f-9772-53c2bc9e1c74", value = "") - public String getClientSecret() { - return clientSecret; - } - - public void setClientSecret(String clientSecret) { - this.clientSecret = clientSecret; - } - - public RegisterSiteResponseData clientRegistrationAccessToken(String clientRegistrationAccessToken) { - this.clientRegistrationAccessToken = clientRegistrationAccessToken; - return this; - } - - /** - * Get clientRegistrationAccessToken - * @return clientRegistrationAccessToken - **/ - @ApiModelProperty(example = "d836df94-44b0-445a-848a-d43189839b17", value = "") - public String getClientRegistrationAccessToken() { - return clientRegistrationAccessToken; - } - - public void setClientRegistrationAccessToken(String clientRegistrationAccessToken) { - this.clientRegistrationAccessToken = clientRegistrationAccessToken; - } - - public RegisterSiteResponseData clientRegistrationClientUri(String clientRegistrationClientUri) { - this.clientRegistrationClientUri = clientRegistrationClientUri; - return this; - } - - /** - * Get clientRegistrationClientUri - * @return clientRegistrationClientUri - **/ - @ApiModelProperty(example = "https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387", value = "") - public String getClientRegistrationClientUri() { - return clientRegistrationClientUri; - } - - public void setClientRegistrationClientUri(String clientRegistrationClientUri) { - this.clientRegistrationClientUri = clientRegistrationClientUri; - } - - public RegisterSiteResponseData clientIdIssuedAt(Integer clientIdIssuedAt) { - this.clientIdIssuedAt = clientIdIssuedAt; - return this; - } - - /** - * Get clientIdIssuedAt - * @return clientIdIssuedAt - **/ - @ApiModelProperty(example = "1501854943", value = "") - public Integer getClientIdIssuedAt() { - return clientIdIssuedAt; - } - - public void setClientIdIssuedAt(Integer clientIdIssuedAt) { - this.clientIdIssuedAt = clientIdIssuedAt; - } - - public RegisterSiteResponseData clientSecretExpiresAt(Integer clientSecretExpiresAt) { - this.clientSecretExpiresAt = clientSecretExpiresAt; - return this; - } - - /** - * Get clientSecretExpiresAt - * @return clientSecretExpiresAt - **/ - @ApiModelProperty(example = "1501941343", value = "") - public Integer getClientSecretExpiresAt() { - return clientSecretExpiresAt; - } - - public void setClientSecretExpiresAt(Integer clientSecretExpiresAt) { - this.clientSecretExpiresAt = clientSecretExpiresAt; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RegisterSiteResponseData registerSiteResponseData = (RegisterSiteResponseData) o; - return Objects.equals(this.oxdId, registerSiteResponseData.oxdId) && - Objects.equals(this.opHost, registerSiteResponseData.opHost) && - Objects.equals(this.clientId, registerSiteResponseData.clientId) && - Objects.equals(this.clientSecret, registerSiteResponseData.clientSecret) && - Objects.equals(this.clientRegistrationAccessToken, registerSiteResponseData.clientRegistrationAccessToken) && - Objects.equals(this.clientRegistrationClientUri, registerSiteResponseData.clientRegistrationClientUri) && - Objects.equals(this.clientIdIssuedAt, registerSiteResponseData.clientIdIssuedAt) && - Objects.equals(this.clientSecretExpiresAt, registerSiteResponseData.clientSecretExpiresAt); - } - - @Override - public int hashCode() { - return Objects.hash(oxdId, opHost, clientId, clientSecret, clientRegistrationAccessToken, clientRegistrationClientUri, clientIdIssuedAt, clientSecretExpiresAt); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RegisterSiteResponseData {\n"); - - sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); - sb.append(" opHost: ").append(toIndentedString(opHost)).append("\n"); - sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); - sb.append(" clientSecret: ").append(toIndentedString(clientSecret)).append("\n"); - sb.append(" clientRegistrationAccessToken: ").append(toIndentedString(clientRegistrationAccessToken)).append("\n"); - sb.append(" clientRegistrationClientUri: ").append(toIndentedString(clientRegistrationClientUri)).append("\n"); - sb.append(" clientIdIssuedAt: ").append(toIndentedString(clientIdIssuedAt)).append("\n"); - sb.append(" clientSecretExpiresAt: ").append(toIndentedString(clientSecretExpiresAt)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteParams.java index 309b21479..1cd4b257a 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteParams.java @@ -26,7 +26,7 @@ /** * RemoveSiteParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class RemoveSiteParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponse.java deleted file mode 100644 index e29348143..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponse.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.RemoveSiteResponseData; -import java.io.IOException; - -/** - * RemoveSiteResponse - */ - -public class RemoveSiteResponse { - @SerializedName("status") - private String status = null; - - @SerializedName("data") - private RemoveSiteResponseData data = null; - - public RemoveSiteResponse status(String status) { - this.status = status; - return this; - } - - /** - * Get status - * @return status - **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public RemoveSiteResponse data(RemoveSiteResponseData data) { - this.data = data; - return this; - } - - /** - * Get data - * @return data - **/ - @ApiModelProperty(required = true, value = "") - public RemoveSiteResponseData getData() { - return data; - } - - public void setData(RemoveSiteResponseData data) { - this.data = data; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RemoveSiteResponse removeSiteResponse = (RemoveSiteResponse) o; - return Objects.equals(this.status, removeSiteResponse.status) && - Objects.equals(this.data, removeSiteResponse.data); - } - - @Override - public int hashCode() { - return Objects.hash(status, data); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RemoveSiteResponse {\n"); - - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponseData.java deleted file mode 100644 index 7af023264..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RemoveSiteResponseData.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * RemoveSiteResponseData - */ - -public class RemoveSiteResponseData { - @SerializedName("oxd_id") - private String oxdId = null; - - @SerializedName("error") - private String error = null; - - @SerializedName("errorDescription") - private String errorDescription = null; - - @SerializedName("details") - private Object details = null; - - public RemoveSiteResponseData oxdId(String oxdId) { - this.oxdId = oxdId; - return this; - } - - /** - * Get oxdId - * @return oxdId - **/ - @ApiModelProperty(required = true, value = "") - public String getOxdId() { - return oxdId; - } - - public void setOxdId(String oxdId) { - this.oxdId = oxdId; - } - - public RemoveSiteResponseData error(String error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @ApiModelProperty(value = "") - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - public RemoveSiteResponseData errorDescription(String errorDescription) { - this.errorDescription = errorDescription; - return this; - } - - /** - * Get errorDescription - * @return errorDescription - **/ - @ApiModelProperty(value = "") - public String getErrorDescription() { - return errorDescription; - } - - public void setErrorDescription(String errorDescription) { - this.errorDescription = errorDescription; - } - - public RemoveSiteResponseData details(Object details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @ApiModelProperty(value = "") - public Object getDetails() { - return details; - } - - public void setDetails(Object details) { - this.details = details; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - RemoveSiteResponseData removeSiteResponseData = (RemoveSiteResponseData) o; - return Objects.equals(this.oxdId, removeSiteResponseData.oxdId) && - Objects.equals(this.error, removeSiteResponseData.error) && - Objects.equals(this.errorDescription, removeSiteResponseData.errorDescription) && - Objects.equals(this.details, removeSiteResponseData.details); - } - - @Override - public int hashCode() { - return Objects.hash(oxdId, error, errorDescription, details); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class RemoveSiteResponseData {\n"); - - sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).append("\n"); - sb.append(" errorDescription: ").append(toIndentedString(errorDescription)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlParams.java index e8890e3da..f4c8eb21a 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlParams.java @@ -26,7 +26,7 @@ /** * UmaRpGetClaimsGatheringUrlParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRpGetClaimsGatheringUrlParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponse.java index d4aaf717c..131a366ff 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponse.java @@ -21,54 +21,53 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.UmaRpGetClaimsGatheringUrlResponseData; import java.io.IOException; /** * UmaRpGetClaimsGatheringUrlResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRpGetClaimsGatheringUrlResponse { - @SerializedName("status") - private String status = null; + @SerializedName("url") + private String url = null; - @SerializedName("data") - private UmaRpGetClaimsGatheringUrlResponseData data = null; + @SerializedName("state") + private String state = null; - public UmaRpGetClaimsGatheringUrlResponse status(String status) { - this.status = status; + public UmaRpGetClaimsGatheringUrlResponse url(String url) { + this.url = url; return this; } /** - * Get status - * @return status + * Get url + * @return url **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(example = "https:///oxauth/restv1/uma/gather_claims?client_id@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!4508.BF20.9B81.E904&ticket=fba00191-59ab-4ed6-ac99-a786a88a9f40&claims_redirect_uri=https://client.example.com/cb&state=d871gpie16np0f5kfv936sc33k", required = true, value = "") + public String getUrl() { + return url; } - public void setStatus(String status) { - this.status = status; + public void setUrl(String url) { + this.url = url; } - public UmaRpGetClaimsGatheringUrlResponse data(UmaRpGetClaimsGatheringUrlResponseData data) { - this.data = data; + public UmaRpGetClaimsGatheringUrlResponse state(String state) { + this.state = state; return this; } /** - * Get data - * @return data + * Get state + * @return state **/ - @ApiModelProperty(required = true, value = "") - public UmaRpGetClaimsGatheringUrlResponseData getData() { - return data; + @ApiModelProperty(example = "d871gpie16np0f5kfv936sc33k", required = true, value = "") + public String getState() { + return state; } - public void setData(UmaRpGetClaimsGatheringUrlResponseData data) { - this.data = data; + public void setState(String state) { + this.state = state; } @@ -81,13 +80,13 @@ public boolean equals(java.lang.Object o) { return false; } UmaRpGetClaimsGatheringUrlResponse umaRpGetClaimsGatheringUrlResponse = (UmaRpGetClaimsGatheringUrlResponse) o; - return Objects.equals(this.status, umaRpGetClaimsGatheringUrlResponse.status) && - Objects.equals(this.data, umaRpGetClaimsGatheringUrlResponse.data); + return Objects.equals(this.url, umaRpGetClaimsGatheringUrlResponse.url) && + Objects.equals(this.state, umaRpGetClaimsGatheringUrlResponse.state); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(url, state); } @@ -96,8 +95,8 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UmaRpGetClaimsGatheringUrlResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" url: ").append(toIndentedString(url)).append("\n"); + sb.append(" state: ").append(toIndentedString(state)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponseData.java deleted file mode 100644 index 5609efa98..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetClaimsGatheringUrlResponseData.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * UmaRpGetClaimsGatheringUrlResponseData - */ - -public class UmaRpGetClaimsGatheringUrlResponseData { - @SerializedName("url") - private String url = null; - - @SerializedName("state") - private String state = null; - - public UmaRpGetClaimsGatheringUrlResponseData url(String url) { - this.url = url; - return this; - } - - /** - * Get url - * @return url - **/ - @ApiModelProperty(example = "https:///oxauth/restv1/uma/gather_claims?client_id@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!4508.BF20.9B81.E904&ticket=fba00191-59ab-4ed6-ac99-a786a88a9f40&claims_redirect_uri=https://client.example.com/cb&state=d871gpie16np0f5kfv936sc33k", required = true, value = "") - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public UmaRpGetClaimsGatheringUrlResponseData state(String state) { - this.state = state; - return this; - } - - /** - * Get state - * @return state - **/ - @ApiModelProperty(example = "d871gpie16np0f5kfv936sc33k", required = true, value = "") - public String getState() { - return state; - } - - public void setState(String state) { - this.state = state; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UmaRpGetClaimsGatheringUrlResponseData umaRpGetClaimsGatheringUrlResponseData = (UmaRpGetClaimsGatheringUrlResponseData) o; - return Objects.equals(this.url, umaRpGetClaimsGatheringUrlResponseData.url) && - Objects.equals(this.state, umaRpGetClaimsGatheringUrlResponseData.state); - } - - @Override - public int hashCode() { - return Objects.hash(url, state); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UmaRpGetClaimsGatheringUrlResponseData {\n"); - - sb.append(" url: ").append(toIndentedString(url)).append("\n"); - sb.append(" state: ").append(toIndentedString(state)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptParams.java index 0671bba39..0c39cc454 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptParams.java @@ -28,7 +28,7 @@ /** * UmaRpGetRptParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRpGetRptParams { @SerializedName("oxd_id") private String oxdId = null; @@ -49,7 +49,7 @@ public class UmaRpGetRptParams { private String rpt = null; @SerializedName("scope") - private List scope = new ArrayList<>(); + private List scope = new ArrayList(); @SerializedName("state") private String state = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponse.java index 1719121f9..5960b6fa8 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponse.java @@ -21,54 +21,95 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.UmaRpGetRptResponseData; import java.io.IOException; /** * UmaRpGetRptResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRpGetRptResponse { - @SerializedName("status") - private String status = null; + @SerializedName("pct") + private String pct = null; + + @SerializedName("updated") + private Boolean updated = null; + + @SerializedName("access_token") + private String accessToken = null; - @SerializedName("data") - private UmaRpGetRptResponseData data = null; + @SerializedName("token_type") + private String tokenType = null; - public UmaRpGetRptResponse status(String status) { - this.status = status; + public UmaRpGetRptResponse pct(String pct) { + this.pct = pct; return this; } /** - * Get status - * @return status + * Get pct + * @return pct **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; + @ApiModelProperty(required = true, value = "") + public String getPct() { + return pct; } - public void setStatus(String status) { - this.status = status; + public void setPct(String pct) { + this.pct = pct; } - public UmaRpGetRptResponse data(UmaRpGetRptResponseData data) { - this.data = data; + public UmaRpGetRptResponse updated(Boolean updated) { + this.updated = updated; return this; } /** - * Get data - * @return data + * Get updated + * @return updated **/ @ApiModelProperty(required = true, value = "") - public UmaRpGetRptResponseData getData() { - return data; + public Boolean isUpdated() { + return updated; + } + + public void setUpdated(Boolean updated) { + this.updated = updated; + } + + public UmaRpGetRptResponse accessToken(String accessToken) { + this.accessToken = accessToken; + return this; + } + + /** + * Get accessToken + * @return accessToken + **/ + @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") + public String getAccessToken() { + return accessToken; + } + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + public UmaRpGetRptResponse tokenType(String tokenType) { + this.tokenType = tokenType; + return this; + } + + /** + * Get tokenType + * @return tokenType + **/ + @ApiModelProperty(example = "bearer", required = true, value = "") + public String getTokenType() { + return tokenType; } - public void setData(UmaRpGetRptResponseData data) { - this.data = data; + public void setTokenType(String tokenType) { + this.tokenType = tokenType; } @@ -81,13 +122,15 @@ public boolean equals(java.lang.Object o) { return false; } UmaRpGetRptResponse umaRpGetRptResponse = (UmaRpGetRptResponse) o; - return Objects.equals(this.status, umaRpGetRptResponse.status) && - Objects.equals(this.data, umaRpGetRptResponse.data); + return Objects.equals(this.pct, umaRpGetRptResponse.pct) && + Objects.equals(this.updated, umaRpGetRptResponse.updated) && + Objects.equals(this.accessToken, umaRpGetRptResponse.accessToken) && + Objects.equals(this.tokenType, umaRpGetRptResponse.tokenType); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(pct, updated, accessToken, tokenType); } @@ -96,8 +139,10 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UmaRpGetRptResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" pct: ").append(toIndentedString(pct)).append("\n"); + sb.append(" updated: ").append(toIndentedString(updated)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append(" tokenType: ").append(toIndentedString(tokenType)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponseData.java deleted file mode 100644 index 9d893a355..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRpGetRptResponseData.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * UmaRpGetRptResponseData - */ - -public class UmaRpGetRptResponseData { - @SerializedName("pct") - private String pct = null; - - @SerializedName("updated") - private Boolean updated = null; - - @SerializedName("access_token") - private String accessToken = null; - - @SerializedName("token_type") - private String tokenType = null; - - public UmaRpGetRptResponseData pct(String pct) { - this.pct = pct; - return this; - } - - /** - * Get pct - * @return pct - **/ - @ApiModelProperty(required = true, value = "") - public String getPct() { - return pct; - } - - public void setPct(String pct) { - this.pct = pct; - } - - public UmaRpGetRptResponseData updated(Boolean updated) { - this.updated = updated; - return this; - } - - /** - * Get updated - * @return updated - **/ - @ApiModelProperty(required = true, value = "") - public Boolean isUpdated() { - return updated; - } - - public void setUpdated(Boolean updated) { - this.updated = updated; - } - - public UmaRpGetRptResponseData accessToken(String accessToken) { - this.accessToken = accessToken; - return this; - } - - /** - * Get accessToken - * @return accessToken - **/ - @ApiModelProperty(example = "b75434ff-f465-4b70-92e4-b7ba6b6c58f2", required = true, value = "") - public String getAccessToken() { - return accessToken; - } - - public void setAccessToken(String accessToken) { - this.accessToken = accessToken; - } - - public UmaRpGetRptResponseData tokenType(String tokenType) { - this.tokenType = tokenType; - return this; - } - - /** - * Get tokenType - * @return tokenType - **/ - @ApiModelProperty(example = "bearer", required = true, value = "") - public String getTokenType() { - return tokenType; - } - - public void setTokenType(String tokenType) { - this.tokenType = tokenType; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UmaRpGetRptResponseData umaRpGetRptResponseData = (UmaRpGetRptResponseData) o; - return Objects.equals(this.pct, umaRpGetRptResponseData.pct) && - Objects.equals(this.updated, umaRpGetRptResponseData.updated) && - Objects.equals(this.accessToken, umaRpGetRptResponseData.accessToken) && - Objects.equals(this.tokenType, umaRpGetRptResponseData.tokenType); - } - - @Override - public int hashCode() { - return Objects.hash(pct, updated, accessToken, tokenType); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UmaRpGetRptResponseData {\n"); - - sb.append(" pct: ").append(toIndentedString(pct)).append("\n"); - sb.append(" updated: ").append(toIndentedString(updated)).append("\n"); - sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); - sb.append(" tokenType: ").append(toIndentedString(tokenType)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessParams.java index d23fa3d84..e7f239a02 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessParams.java @@ -26,7 +26,7 @@ /** * UmaRsCheckAccessParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRsCheckAccessParams { @SerializedName("oxd_id") private String oxdId = null; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java index cce61c37a..5290fe2b5 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java @@ -21,54 +21,32 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.UmaRsCheckAccessResponseData; import java.io.IOException; /** * UmaRsCheckAccessResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRsCheckAccessResponse { - @SerializedName("status") - private String status = null; - - @SerializedName("data") - private UmaRsCheckAccessResponseData data = null; - - public UmaRsCheckAccessResponse status(String status) { - this.status = status; - return this; - } - - /** - * Get status - * @return status - **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } + @SerializedName("access") + private String access = null; - public UmaRsCheckAccessResponse data(UmaRsCheckAccessResponseData data) { - this.data = data; + public UmaRsCheckAccessResponse access(String access) { + this.access = access; return this; } /** - * Get data - * @return data + * Possible values are granted, denied + * @return access **/ - @ApiModelProperty(required = true, value = "") - public UmaRsCheckAccessResponseData getData() { - return data; + @ApiModelProperty(example = "granted", required = true, value = "Possible values are granted, denied") + public String getAccess() { + return access; } - public void setData(UmaRsCheckAccessResponseData data) { - this.data = data; + public void setAccess(String access) { + this.access = access; } @@ -81,13 +59,12 @@ public boolean equals(java.lang.Object o) { return false; } UmaRsCheckAccessResponse umaRsCheckAccessResponse = (UmaRsCheckAccessResponse) o; - return Objects.equals(this.status, umaRsCheckAccessResponse.status) && - Objects.equals(this.data, umaRsCheckAccessResponse.data); + return Objects.equals(this.access, umaRsCheckAccessResponse.access); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(access); } @@ -96,8 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UmaRsCheckAccessResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" access: ").append(toIndentedString(access)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponseData.java deleted file mode 100644 index 9ab2cfd87..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponseData.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * UmaRsCheckAccessResponseData - */ - -public class UmaRsCheckAccessResponseData { - @SerializedName("access") - private String access = null; - - public UmaRsCheckAccessResponseData access(String access) { - this.access = access; - return this; - } - - /** - * Possible values are granted, denied - * @return access - **/ - @ApiModelProperty(example = "granted", required = true, value = "Possible values are granted, denied") - public String getAccess() { - return access; - } - - public void setAccess(String access) { - this.access = access; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UmaRsCheckAccessResponseData umaRsCheckAccessResponseData = (UmaRsCheckAccessResponseData) o; - return Objects.equals(this.access, umaRsCheckAccessResponseData.access); - } - - @Override - public int hashCode() { - return Objects.hash(access); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UmaRsCheckAccessResponseData {\n"); - - sb.append(" access: ").append(toIndentedString(access)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java index 4b5559c69..ef5c00e84 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java @@ -28,7 +28,7 @@ /** * UmaRsProtectParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRsProtectParams { @SerializedName("oxd_id") private String oxdId = null; @@ -37,7 +37,7 @@ public class UmaRsProtectParams { private Boolean overwrite = null; @SerializedName("resources") - private List resources = new ArrayList<>(); + private List resources = new ArrayList(); public UmaRsProtectParams oxdId(String oxdId) { this.oxdId = oxdId; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponse.java index 411af7a5f..222c9ac6f 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponse.java @@ -21,54 +21,32 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.UmaRsProtectResponseData; import java.io.IOException; /** * UmaRsProtectResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UmaRsProtectResponse { - @SerializedName("status") - private String status = null; - - @SerializedName("data") - private UmaRsProtectResponseData data = null; - - public UmaRsProtectResponse status(String status) { - this.status = status; - return this; - } - - /** - * Get status - * @return status - **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } + @SerializedName("oxd_id") + private String oxdId = null; - public UmaRsProtectResponse data(UmaRsProtectResponseData data) { - this.data = data; + public UmaRsProtectResponse oxdId(String oxdId) { + this.oxdId = oxdId; return this; } /** - * Get data - * @return data + * Get oxdId + * @return oxdId **/ - @ApiModelProperty(required = true, value = "") - public UmaRsProtectResponseData getData() { - return data; + @ApiModelProperty(example = "bcad760f-91ba-46e1-a020-05e4281d91b6", required = true, value = "") + public String getOxdId() { + return oxdId; } - public void setData(UmaRsProtectResponseData data) { - this.data = data; + public void setOxdId(String oxdId) { + this.oxdId = oxdId; } @@ -81,13 +59,12 @@ public boolean equals(java.lang.Object o) { return false; } UmaRsProtectResponse umaRsProtectResponse = (UmaRsProtectResponse) o; - return Objects.equals(this.status, umaRsProtectResponse.status) && - Objects.equals(this.data, umaRsProtectResponse.data); + return Objects.equals(this.oxdId, umaRsProtectResponse.oxdId); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(oxdId); } @@ -96,8 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UmaRsProtectResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponseData.java deleted file mode 100644 index 49694f648..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectResponseData.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * UmaRsProtectResponseData - */ - -public class UmaRsProtectResponseData { - @SerializedName("oxd_id") - private String oxdId = null; - - public UmaRsProtectResponseData oxdId(String oxdId) { - this.oxdId = oxdId; - return this; - } - - /** - * Get oxdId - * @return oxdId - **/ - @ApiModelProperty(example = "bcad760f-91ba-46e1-a020-05e4281d91b6", required = true, value = "") - public String getOxdId() { - return oxdId; - } - - public void setOxdId(String oxdId) { - this.oxdId = oxdId; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UmaRsProtectResponseData umaRsProtectResponseData = (UmaRsProtectResponseData) o; - return Objects.equals(this.oxdId, umaRsProtectResponseData.oxdId); - } - - @Override - public int hashCode() { - return Objects.hash(oxdId); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UmaRsProtectResponseData {\n"); - - sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java index 06cd763f6..1a23bd62e 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java @@ -28,7 +28,7 @@ /** * UpdateSiteParams */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UpdateSiteParams { @SerializedName("oxd_id") private String oxdId = null; @@ -136,7 +136,7 @@ public UpdateSiteParams responseTypes(List responseTypes) { public UpdateSiteParams addResponseTypesItem(String responseTypesItem) { if (this.responseTypes == null) { - this.responseTypes = new ArrayList<>(); + this.responseTypes = new ArrayList(); } this.responseTypes.add(responseTypesItem); return this; @@ -162,7 +162,7 @@ public UpdateSiteParams grantTypes(List grantTypes) { public UpdateSiteParams addGrantTypesItem(String grantTypesItem) { if (this.grantTypes == null) { - this.grantTypes = new ArrayList<>(); + this.grantTypes = new ArrayList(); } this.grantTypes.add(grantTypesItem); return this; @@ -188,7 +188,7 @@ public UpdateSiteParams scope(List scope) { public UpdateSiteParams addScopeItem(String scopeItem) { if (this.scope == null) { - this.scope = new ArrayList<>(); + this.scope = new ArrayList(); } this.scope.add(scopeItem); return this; @@ -214,7 +214,7 @@ public UpdateSiteParams acrValues(List acrValues) { public UpdateSiteParams addAcrValuesItem(String acrValuesItem) { if (this.acrValues == null) { - this.acrValues = new ArrayList<>(); + this.acrValues = new ArrayList(); } this.acrValues.add(acrValuesItem); return this; @@ -276,7 +276,7 @@ public UpdateSiteParams clientRequestUris(List clientRequestUris) { public UpdateSiteParams addClientRequestUrisItem(String clientRequestUrisItem) { if (this.clientRequestUris == null) { - this.clientRequestUris = new ArrayList<>(); + this.clientRequestUris = new ArrayList(); } this.clientRequestUris.add(clientRequestUrisItem); return this; @@ -338,7 +338,7 @@ public UpdateSiteParams contacts(List contacts) { public UpdateSiteParams addContactsItem(String contactsItem) { if (this.contacts == null) { - this.contacts = new ArrayList<>(); + this.contacts = new ArrayList(); } this.contacts.add(contactsItem); return this; @@ -364,7 +364,7 @@ public UpdateSiteParams uiLocales(List uiLocales) { public UpdateSiteParams addUiLocalesItem(String uiLocalesItem) { if (this.uiLocales == null) { - this.uiLocales = new ArrayList<>(); + this.uiLocales = new ArrayList(); } this.uiLocales.add(uiLocalesItem); return this; @@ -390,7 +390,7 @@ public UpdateSiteParams claimsLocales(List claimsLocales) { public UpdateSiteParams addClaimsLocalesItem(String claimsLocalesItem) { if (this.claimsLocales == null) { - this.claimsLocales = new ArrayList<>(); + this.claimsLocales = new ArrayList(); } this.claimsLocales.add(claimsLocalesItem); return this; diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponse.java index 5b58f6962..5d66a3ea6 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponse.java @@ -21,54 +21,32 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.UpdateSiteResponseData; import java.io.IOException; /** * UpdateSiteResponse */ - +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") public class UpdateSiteResponse { - @SerializedName("status") - private String status = null; - - @SerializedName("data") - private UpdateSiteResponseData data = null; - - public UpdateSiteResponse status(String status) { - this.status = status; - return this; - } - - /** - * Get status - * @return status - **/ - @ApiModelProperty(example = "ok", required = true, value = "") - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } + @SerializedName("oxd_id") + private String oxdId = null; - public UpdateSiteResponse data(UpdateSiteResponseData data) { - this.data = data; + public UpdateSiteResponse oxdId(String oxdId) { + this.oxdId = oxdId; return this; } /** - * Get data - * @return data + * Get oxdId + * @return oxdId **/ @ApiModelProperty(required = true, value = "") - public UpdateSiteResponseData getData() { - return data; + public String getOxdId() { + return oxdId; } - public void setData(UpdateSiteResponseData data) { - this.data = data; + public void setOxdId(String oxdId) { + this.oxdId = oxdId; } @@ -81,13 +59,12 @@ public boolean equals(java.lang.Object o) { return false; } UpdateSiteResponse updateSiteResponse = (UpdateSiteResponse) o; - return Objects.equals(this.status, updateSiteResponse.status) && - Objects.equals(this.data, updateSiteResponse.data); + return Objects.equals(this.oxdId, updateSiteResponse.oxdId); } @Override public int hashCode() { - return Objects.hash(status, data); + return Objects.hash(oxdId); } @@ -96,8 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateSiteResponse {\n"); - sb.append(" status: ").append(toIndentedString(status)).append("\n"); - sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponseData.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponseData.java deleted file mode 100644 index 815b2c077..000000000 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteResponseData.java +++ /dev/null @@ -1,162 +0,0 @@ -/* - * oxd-server - * oxd-server - * - * OpenAPI spec version: 4.0.0 - * Contact: yuriyz@gluu.org - * - * NOTE: This class is auto generated by the swagger code generator program. - * https://github.com/swagger-api/swagger-codegen.git - * Do not edit the class manually. - */ - - -package io.swagger.client.model; - -import java.util.Objects; -import com.google.gson.TypeAdapter; -import com.google.gson.annotations.JsonAdapter; -import com.google.gson.annotations.SerializedName; -import com.google.gson.stream.JsonReader; -import com.google.gson.stream.JsonWriter; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import java.io.IOException; - -/** - * UpdateSiteResponseData - */ - -public class UpdateSiteResponseData { - @SerializedName("oxd_id") - private String oxdId = null; - - @SerializedName("error") - private String error = null; - - @SerializedName("errorDescription") - private String errorDescription = null; - - @SerializedName("details") - private Object details = null; - - public UpdateSiteResponseData oxdId(String oxdId) { - this.oxdId = oxdId; - return this; - } - - /** - * Get oxdId - * @return oxdId - **/ - @ApiModelProperty(required = true, value = "") - public String getOxdId() { - return oxdId; - } - - public void setOxdId(String oxdId) { - this.oxdId = oxdId; - } - - public UpdateSiteResponseData error(String error) { - this.error = error; - return this; - } - - /** - * Get error - * @return error - **/ - @ApiModelProperty(value = "") - public String getError() { - return error; - } - - public void setError(String error) { - this.error = error; - } - - public UpdateSiteResponseData errorDescription(String errorDescription) { - this.errorDescription = errorDescription; - return this; - } - - /** - * Get errorDescription - * @return errorDescription - **/ - @ApiModelProperty(value = "") - public String getErrorDescription() { - return errorDescription; - } - - public void setErrorDescription(String errorDescription) { - this.errorDescription = errorDescription; - } - - public UpdateSiteResponseData details(Object details) { - this.details = details; - return this; - } - - /** - * Get details - * @return details - **/ - @ApiModelProperty(value = "") - public Object getDetails() { - return details; - } - - public void setDetails(Object details) { - this.details = details; - } - - - @Override - public boolean equals(java.lang.Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - UpdateSiteResponseData updateSiteResponseData = (UpdateSiteResponseData) o; - return Objects.equals(this.oxdId, updateSiteResponseData.oxdId) && - Objects.equals(this.error, updateSiteResponseData.error) && - Objects.equals(this.errorDescription, updateSiteResponseData.errorDescription) && - Objects.equals(this.details, updateSiteResponseData.details); - } - - @Override - public int hashCode() { - return Objects.hash(oxdId, error, errorDescription, details); - } - - - @Override - public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("class UpdateSiteResponseData {\n"); - - sb.append(" oxdId: ").append(toIndentedString(oxdId)).append("\n"); - sb.append(" error: ").append(toIndentedString(error)).append("\n"); - sb.append(" errorDescription: ").append(toIndentedString(errorDescription)).append("\n"); - sb.append(" details: ").append(toIndentedString(details)).append("\n"); - sb.append("}"); - return sb.toString(); - } - - /** - * Convert the given object to string with each line indented by 4 spaces - * (except the first line). - */ - private String toIndentedString(java.lang.Object o) { - if (o == null) { - return "null"; - } - return o.toString().replace("\n", "\n "); - } - -} - diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 7349074e7..907d56039 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -89,33 +89,24 @@ paths: type: object title: GetClientTokenResponse required: - - status - - data + - scope + - access_token + - expires_in + - refresh_token properties: - status: + scope: + type: array + items: + type: string + example: ["openid","oxd"] + access_token: + type: string + example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 + expires_in: + type: integer + example: 299 + refresh_token: type: string - example: ok - data: - type: object - required: - - scope - - access_token - - expires_in - - refresh_token - properties: - scope: - type: array - items: - type: string - example: ["openid","oxd"] - access_token: - type: string - example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 - expires_in: - type: integer - example: 299 - refresh_token: - type: string 400: description: Invalid parameters are provided to endpoint. 403: @@ -159,81 +150,72 @@ paths: type: object title: IntrospectAccessTokenResponse required: - - status - - data + - active + - client_id + - username + - scope + - token_type + - sub + - aud + - iss + - exp + - iat + - acr_values + - extension_field + - nbf + - jti properties: - status: + active: + type: boolean + example: true + client_id: type: string - example: ok - data: - type: object - required: - - active - - client_id - - username - - scope - - token_type - - sub - - aud - - iss - - exp - - iat - - acr_values - - extension_field - - nbf - - jti - properties: - active: - type: boolean - example: true - client_id: - type: string - example: '@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387' - username: - type: string - example: John Black - scope: - type: array - items: - type: string - token_type: - type: string - example: bearer - sub: - type: string - example: jblack - aud: - type: string - example: l238j323ds-23ij4 - iss: - type: string - example: https://as.gluu.org/ - exp: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when this token will expire - example: 1535709072 - iat: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when the token was issued at - example: 1535709072 - nbf: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when the token not to be used before - example: 1535709072 - jti: - type: string - description: a unique identifier for the JWT - acr_values: - type: array - items: - type: string - example: ["basic"] - extension_field: - type: string - example: twenty-seven + example: '@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387' + username: + type: string + example: John Black + scope: + type: array + items: + type: string + token_type: + type: string + example: bearer + sub: + type: string + example: jblack + aud: + type: string + example: l238j323ds-23ij4 + iss: + type: string + example: https://as.gluu.org/ + exp: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when this token will expire + example: 1535709072 + iat: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when the token was issued at + example: 1535709072 + nbf: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when the token not to be used before + example: 1535709072 + jti: + type: string + description: a unique identifier for the JWT + acr_values: + type: array + items: + type: string + example: ["basic"] + extension_field: + type: string + example: twenty-seven 400: description: Invalid parameters are provided to endpoint. 403: @@ -349,42 +331,33 @@ paths: type: object title: RegisterSiteResponse required: - - status - - data + - oxd_id + - op_host properties: - status: + oxd_id: type: string - example: ok - data: - type: object - required: - - oxd_id - - op_host - properties: - oxd_id: - type: string - example: bcad760f-91ba-46e1-a020-05e4281d91b6 - op_host: - type: string - example: https:// - client_id: - type: string - example: "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387" - client_secret: - type: string - example: f436b936-03fc-433f-9772-53c2bc9e1c74 - client_registration_access_token: - type: string - example: d836df94-44b0-445a-848a-d43189839b17 - client_registration_client_uri: - type: string - example: https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387 - client_id_issued_at: - type: integer - example: 1501854943 - client_secret_expires_at: - type: integer - example: 1501941343 + example: bcad760f-91ba-46e1-a020-05e4281d91b6 + op_host: + type: string + example: https:// + client_id: + type: string + example: "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387" + client_secret: + type: string + example: f436b936-03fc-433f-9772-53c2bc9e1c74 + client_registration_access_token: + type: string + example: d836df94-44b0-445a-848a-d43189839b17 + client_registration_client_uri: + type: string + example: https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387 + client_id_issued_at: + type: integer + example: 1501854943 + client_secret_expires_at: + type: integer + example: 1501941343 400: description: Invalid parameters are provided to endpoint. 403: @@ -478,15 +451,10 @@ paths: type: object title: UpdateSiteResponse required: - - status - - data + - oxd_id properties: - status: - type: string - example: ok - data: - $ref: "#/definitions/UpdateSiteResponseData" - + oxd_id: + $ref: "#/definitions/oxd_id" 400: description: Invalid parameters are provided to endpoint. 403: @@ -526,14 +494,10 @@ paths: type: object title: RemoveSiteResponse required: - - status - - data + - oxd_id properties: - status: - type: string - example: ok - data: - $ref: "#/definitions/RemoveSiteResponseData" + oxd_id: + $ref: "#/definitions/oxd_id" 400: description: Invalid parameters are provided to endpoint. 403: @@ -595,20 +559,11 @@ paths: type: object title: GetAuthorizationUrlResponse required: - - status - - data + - authorization_url properties: - status: + authorization_url: type: string - example: ok - data: - type: object - required: - - authorization_url - properties: - authorization_url: - type: string - example: https:///oxauth/restv1/authorize?response_type=code&client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!8A36.24E1.97DE.F4EF&redirect_uri=https://192.168.200.95/&scope=openid+profile+email+uma_protection+uma_authorization&state=473ot4nuqb4ubeokc139raur13&nonce=lbrdgorr974q66q6q9g454iccm + example: https:///oxauth/restv1/authorize?response_type=code&client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!8A36.24E1.97DE.F4EF&redirect_uri=https://192.168.200.95/&scope=openid+profile+email+uma_protection+uma_authorization&state=473ot4nuqb4ubeokc139raur13&nonce=lbrdgorr974q66q6q9g454iccm 400: description: Invalid parameters are provided to endpoint. 403: @@ -656,86 +611,77 @@ paths: type: object title: GetTokensByCodeResponse required: - - status - - data + - access_token + - expires_in + - id_token + - refresh_token + - id_token_claims properties: - status: + access_token: + type: string + example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 + expires_in: + type: integer + example: 299 + id_token: + type: string + example: eyJraWQiOiI5MTUyNTU1Ni04YmIwLTQ2MzYtYTFhYy05ZGVlNjlhMDBmYWUiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJp + refresh_token: type: string - example: ok - data: + example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 + id_token_claims: type: object required: - - access_token - - expires_in - - id_token - - refresh_token - - id_token_claims + - at_hash + - aud + - sub + - auth_time + - iss + - exp + - iat + - nonce + - oxOpenIDConnectVersion properties: - access_token: - type: string - example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 - expires_in: - type: integer - example: 299 - id_token: - type: string - example: eyJraWQiOiI5MTUyNTU1Ni04YmIwLTQ2MzYtYTFhYy05ZGVlNjlhMDBmYWUiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJp - refresh_token: - type: string - example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 - id_token_claims: - type: object - required: - - at_hash - - aud - - sub - - auth_time - - iss - - exp - - iat - - nonce - - oxOpenIDConnectVersion - properties: - at_hash: - type: array - items: - type: string - example: ["Cx2dz5Wvw_kBXAcTs3mFA"] - aud: - type: array - items: - type: string - example: ["l238j323ds-23ij4"] - sub: - type: array - items: - type: string - example: ["jblack"] - auth_time: - type: array - items: - type: string - iss: - type: array - items: - type: string - example: ["https://as.gluu.org/"] - exp: - type: array - items: - type: string - iat: - type: array - items: - type: string - nonce: - type: array - items: - type: string - oxOpenIDConnectVersion: - type: array - items: - type: string + at_hash: + type: array + items: + type: string + example: ["Cx2dz5Wvw_kBXAcTs3mFA"] + aud: + type: array + items: + type: string + example: ["l238j323ds-23ij4"] + sub: + type: array + items: + type: string + example: ["jblack"] + auth_time: + type: array + items: + type: string + iss: + type: array + items: + type: string + example: ["https://as.gluu.org/"] + exp: + type: array + items: + type: string + iat: + type: array + items: + type: string + nonce: + type: array + items: + type: string + oxOpenIDConnectVersion: + type: array + items: + type: string 400: description: Invalid parameters are provided to endpoint. 403: @@ -973,34 +919,25 @@ paths: type: object title: GetAccessTokenByRefreshTokenResponse required: - - status - - data + - scope + - access_token + - expires_in + - refresh_token properties: - status: + scope: + type: array + items: + type: string + example: ["openid", "profile", "uma_protection", "email"] + access_token: type: string - example: ok - data: - type: object - required: - - scope - - access_token - - expires_in - - refresh_token - properties: - scope: - type: array - items: - type: string - example: ["openid", "profile", "uma_protection", "email"] - access_token: - type: string - example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 - expires_in: - type: integer - example: 299 - refresh_token: - type: string - example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 + example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 + expires_in: + type: integer + example: 299 + refresh_token: + type: string + example: 33d7988e-6ffb-4fe5-8c2a-0e158691d446 400: description: Invalid parameters are provided to endpoint. 403: @@ -1048,20 +985,11 @@ paths: type: object title: UmaRsProtectResponse required: - - status - - data + - oxd_id properties: - status: + oxd_id: type: string - example: ok - data: - type: object - required: - - oxd_id - properties: - oxd_id: - type: string - example: "bcad760f-91ba-46e1-a020-05e4281d91b6" + example: "bcad760f-91ba-46e1-a020-05e4281d91b6" 400: description: Invalid parameters are provided to endpoint. 403: @@ -1110,21 +1038,12 @@ paths: type: object title: UmaRsCheckAccessResponse required: - - status - - data + - access properties: - status: + access: type: string - example: ok - data: - type: object - required: - - access - properties: - access: - type: string - example: granted - description: Possible values are granted, denied + example: granted + description: Possible values are granted, denied 400: description: Invalid parameters are provided to endpoint. 403: @@ -1167,43 +1086,34 @@ paths: type: object title: IntrospectRptResponse required: - - status - - data + - active + - exp + - iat + - nbf + - permissions properties: - status: - type: string - example: ok - data: - type: object - required: - - active - - exp - - iat - - nbf - - permissions - properties: - active: - type: boolean - example: true - exp: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when this token will expire - example: 1535709072 - iat: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when the token was issued at - example: 1535709072 - nbf: - type: integer - format: int64 - description: number of seconds since January 1 1970 UTC, indicating when the token not to be used before - example: 1535709072 - permissions: - type: array - items: - type: object + active: + type: boolean + example: true + exp: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when this token will expire + example: 1535709072 + iat: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when the token was issued at + example: 1535709072 + nbf: + type: integer + format: int64 + description: number of seconds since January 1 1970 UTC, indicating when the token not to be used before + example: 1535709072 + permissions: + type: array + items: + type: object 400: description: Invalid parameters are provided to endpoint. 403: @@ -1267,30 +1177,21 @@ paths: type: object title: UmaRpGetRptResponse required: - - status - - data + - pct + - updated + - access_token + - token_type properties: - status: + pct: type: string - example: ok - data: - type: object - required: - - pct - - updated - - access_token - - token_type - properties: - pct: - type: string - updated: - type: boolean - access_token: - type: string - example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 - token_type: - type: string - example: bearer + updated: + type: boolean + access_token: + type: string + example: b75434ff-f465-4b70-92e4-b7ba6b6c58f2 + token_type: + type: string + example: bearer 400: description: Invalid parameters are provided to endpoint. 403: @@ -1338,24 +1239,15 @@ paths: type: object title: UmaRpGetClaimsGatheringUrlResponse required: - - status - - data + - url + - state properties: - status: + url: type: string - example: ok - data: - type: object - required: - - url - - state - properties: - url: - type: string - example: https:///oxauth/restv1/uma/gather_claims?client_id@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!4508.BF20.9B81.E904&ticket=fba00191-59ab-4ed6-ac99-a786a88a9f40&claims_redirect_uri=https://client.example.com/cb&state=d871gpie16np0f5kfv936sc33k - state: - type: string - example: d871gpie16np0f5kfv936sc33k + example: https:///oxauth/restv1/uma/gather_claims?client_id@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!4508.BF20.9B81.E904&ticket=fba00191-59ab-4ed6-ac99-a786a88a9f40&claims_redirect_uri=https://client.example.com/cb&state=d871gpie16np0f5kfv936sc33k + state: + type: string + example: d871gpie16np0f5kfv936sc33k 400: description: Invalid parameters are provided to endpoint. 403: @@ -1368,33 +1260,3 @@ definitions: oxd_id: type: string example: bcad760f-91ba-46e1-a020-05e4281d91b6 - - # Schemas - UpdateSiteResponseData: - type: object - required: - - oxd_id - properties: - oxd_id: - $ref: "#/definitions/oxd_id" - error: - type: string - errorDescription: - type: string - details: - type: object - - RemoveSiteResponseData: - type: object - required: - - oxd_id - properties: - oxd_id: - $ref: "#/definitions/oxd_id" - error: - type: string - errorDescription: - type: string - details: - type: object - From 2957de05bb6c6e73ba0648c8d3e82f5ba1ad6c2f Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 10:55:40 +0300 Subject: [PATCH 057/230] #225 : added missed GetTokensByCodeResponseIdTokenClaims generated class --- .../GetTokensByCodeResponseIdTokenClaims.java | 324 ++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseIdTokenClaims.java diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseIdTokenClaims.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseIdTokenClaims.java new file mode 100644 index 000000000..4c462a19c --- /dev/null +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetTokensByCodeResponseIdTokenClaims.java @@ -0,0 +1,324 @@ +/* + * oxd-server + * oxd-server + * + * OpenAPI spec version: 4.0.0 + * Contact: yuriyz@gluu.org + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package io.swagger.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * GetTokensByCodeResponseIdTokenClaims + */ +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +public class GetTokensByCodeResponseIdTokenClaims { + @SerializedName("at_hash") + private List atHash = new ArrayList(); + + @SerializedName("aud") + private List aud = new ArrayList(); + + @SerializedName("sub") + private List sub = new ArrayList(); + + @SerializedName("auth_time") + private List authTime = new ArrayList(); + + @SerializedName("iss") + private List iss = new ArrayList(); + + @SerializedName("exp") + private List exp = new ArrayList(); + + @SerializedName("iat") + private List iat = new ArrayList(); + + @SerializedName("nonce") + private List nonce = new ArrayList(); + + @SerializedName("oxOpenIDConnectVersion") + private List oxOpenIDConnectVersion = new ArrayList(); + + public GetTokensByCodeResponseIdTokenClaims atHash(List atHash) { + this.atHash = atHash; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addAtHashItem(String atHashItem) { + this.atHash.add(atHashItem); + return this; + } + + /** + * Get atHash + * @return atHash + **/ + @ApiModelProperty(example = "[\"Cx2dz5Wvw_kBXAcTs3mFA\"]", required = true, value = "") + public List getAtHash() { + return atHash; + } + + public void setAtHash(List atHash) { + this.atHash = atHash; + } + + public GetTokensByCodeResponseIdTokenClaims aud(List aud) { + this.aud = aud; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addAudItem(String audItem) { + this.aud.add(audItem); + return this; + } + + /** + * Get aud + * @return aud + **/ + @ApiModelProperty(example = "[\"l238j323ds-23ij4\"]", required = true, value = "") + public List getAud() { + return aud; + } + + public void setAud(List aud) { + this.aud = aud; + } + + public GetTokensByCodeResponseIdTokenClaims sub(List sub) { + this.sub = sub; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addSubItem(String subItem) { + this.sub.add(subItem); + return this; + } + + /** + * Get sub + * @return sub + **/ + @ApiModelProperty(example = "[\"jblack\"]", required = true, value = "") + public List getSub() { + return sub; + } + + public void setSub(List sub) { + this.sub = sub; + } + + public GetTokensByCodeResponseIdTokenClaims authTime(List authTime) { + this.authTime = authTime; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addAuthTimeItem(String authTimeItem) { + this.authTime.add(authTimeItem); + return this; + } + + /** + * Get authTime + * @return authTime + **/ + @ApiModelProperty(required = true, value = "") + public List getAuthTime() { + return authTime; + } + + public void setAuthTime(List authTime) { + this.authTime = authTime; + } + + public GetTokensByCodeResponseIdTokenClaims iss(List iss) { + this.iss = iss; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addIssItem(String issItem) { + this.iss.add(issItem); + return this; + } + + /** + * Get iss + * @return iss + **/ + @ApiModelProperty(example = "[\"https://as.gluu.org/\"]", required = true, value = "") + public List getIss() { + return iss; + } + + public void setIss(List iss) { + this.iss = iss; + } + + public GetTokensByCodeResponseIdTokenClaims exp(List exp) { + this.exp = exp; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addExpItem(String expItem) { + this.exp.add(expItem); + return this; + } + + /** + * Get exp + * @return exp + **/ + @ApiModelProperty(required = true, value = "") + public List getExp() { + return exp; + } + + public void setExp(List exp) { + this.exp = exp; + } + + public GetTokensByCodeResponseIdTokenClaims iat(List iat) { + this.iat = iat; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addIatItem(String iatItem) { + this.iat.add(iatItem); + return this; + } + + /** + * Get iat + * @return iat + **/ + @ApiModelProperty(required = true, value = "") + public List getIat() { + return iat; + } + + public void setIat(List iat) { + this.iat = iat; + } + + public GetTokensByCodeResponseIdTokenClaims nonce(List nonce) { + this.nonce = nonce; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addNonceItem(String nonceItem) { + this.nonce.add(nonceItem); + return this; + } + + /** + * Get nonce + * @return nonce + **/ + @ApiModelProperty(required = true, value = "") + public List getNonce() { + return nonce; + } + + public void setNonce(List nonce) { + this.nonce = nonce; + } + + public GetTokensByCodeResponseIdTokenClaims oxOpenIDConnectVersion(List oxOpenIDConnectVersion) { + this.oxOpenIDConnectVersion = oxOpenIDConnectVersion; + return this; + } + + public GetTokensByCodeResponseIdTokenClaims addOxOpenIDConnectVersionItem(String oxOpenIDConnectVersionItem) { + this.oxOpenIDConnectVersion.add(oxOpenIDConnectVersionItem); + return this; + } + + /** + * Get oxOpenIDConnectVersion + * @return oxOpenIDConnectVersion + **/ + @ApiModelProperty(required = true, value = "") + public List getOxOpenIDConnectVersion() { + return oxOpenIDConnectVersion; + } + + public void setOxOpenIDConnectVersion(List oxOpenIDConnectVersion) { + this.oxOpenIDConnectVersion = oxOpenIDConnectVersion; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetTokensByCodeResponseIdTokenClaims getTokensByCodeResponseIdTokenClaims = (GetTokensByCodeResponseIdTokenClaims) o; + return Objects.equals(this.atHash, getTokensByCodeResponseIdTokenClaims.atHash) && + Objects.equals(this.aud, getTokensByCodeResponseIdTokenClaims.aud) && + Objects.equals(this.sub, getTokensByCodeResponseIdTokenClaims.sub) && + Objects.equals(this.authTime, getTokensByCodeResponseIdTokenClaims.authTime) && + Objects.equals(this.iss, getTokensByCodeResponseIdTokenClaims.iss) && + Objects.equals(this.exp, getTokensByCodeResponseIdTokenClaims.exp) && + Objects.equals(this.iat, getTokensByCodeResponseIdTokenClaims.iat) && + Objects.equals(this.nonce, getTokensByCodeResponseIdTokenClaims.nonce) && + Objects.equals(this.oxOpenIDConnectVersion, getTokensByCodeResponseIdTokenClaims.oxOpenIDConnectVersion); + } + + @Override + public int hashCode() { + return Objects.hash(atHash, aud, sub, authTime, iss, exp, iat, nonce, oxOpenIDConnectVersion); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetTokensByCodeResponseIdTokenClaims {\n"); + + sb.append(" atHash: ").append(toIndentedString(atHash)).append("\n"); + sb.append(" aud: ").append(toIndentedString(aud)).append("\n"); + sb.append(" sub: ").append(toIndentedString(sub)).append("\n"); + sb.append(" authTime: ").append(toIndentedString(authTime)).append("\n"); + sb.append(" iss: ").append(toIndentedString(iss)).append("\n"); + sb.append(" exp: ").append(toIndentedString(exp)).append("\n"); + sb.append(" iat: ").append(toIndentedString(iat)).append("\n"); + sb.append(" nonce: ").append(toIndentedString(nonce)).append("\n"); + sb.append(" oxOpenIDConnectVersion: ").append(toIndentedString(oxOpenIDConnectVersion)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + From 361a0567dbfa5ede681a715bfbaa57f65dee657e Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 10:56:35 +0300 Subject: [PATCH 058/230] #225 : removed generated docs --- oxd-gen-client/docs/DevelopersApi.md | 765 ------------------ .../GetAccessTokenByRefreshTokenParams.md | 12 - .../GetAccessTokenByRefreshTokenResponse.md | 13 - .../docs/GetAuthorizationUrlParams.md | 14 - .../docs/GetAuthorizationUrlResponse.md | 10 - oxd-gen-client/docs/GetClientTokenParams.md | 17 - oxd-gen-client/docs/GetClientTokenResponse.md | 13 - oxd-gen-client/docs/GetLogoutUriParams.md | 14 - oxd-gen-client/docs/GetLogoutUriResponse.md | 10 - .../docs/GetLogoutUriResponseClaims.md | 10 - oxd-gen-client/docs/GetTokensByCodeParams.md | 12 - .../docs/GetTokensByCodeResponse.md | 14 - oxd-gen-client/docs/GetUserInfoParams.md | 11 - oxd-gen-client/docs/GetUserInfoResponse.md | 10 - .../docs/GetUserInfoResponseClaims.md | 24 - .../GetauthorizationurlCustomParameters.md | 11 - .../docs/IntrospectAccessTokenResponse.md | 23 - oxd-gen-client/docs/IntrospectRptParams.md | 11 - oxd-gen-client/docs/IntrospectRptResponse.md | 14 - .../docs/IntrospectaccesstokenParams.md | 11 - oxd-gen-client/docs/RegisterSiteParams.md | 31 - oxd-gen-client/docs/RegisterSiteResponse.md | 17 - oxd-gen-client/docs/RemoveSiteParams.md | 10 - .../docs/UmaRpGetClaimsGatheringUrlParams.md | 12 - .../UmaRpGetClaimsGatheringUrlResponse.md | 11 - oxd-gen-client/docs/UmaRpGetRptParams.md | 17 - oxd-gen-client/docs/UmaRpGetRptResponse.md | 13 - oxd-gen-client/docs/UmaRsCheckAccessParams.md | 13 - .../docs/UmaRsCheckAccessResponse.md | 10 - oxd-gen-client/docs/UmaRsProtectParams.md | 12 - oxd-gen-client/docs/UpdateSiteParams.md | 24 - oxd-gen-client/docs/UpdateSiteResponse.md | 10 - 32 files changed, 1199 deletions(-) delete mode 100644 oxd-gen-client/docs/DevelopersApi.md delete mode 100644 oxd-gen-client/docs/GetAccessTokenByRefreshTokenParams.md delete mode 100644 oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md delete mode 100644 oxd-gen-client/docs/GetAuthorizationUrlParams.md delete mode 100644 oxd-gen-client/docs/GetAuthorizationUrlResponse.md delete mode 100644 oxd-gen-client/docs/GetClientTokenParams.md delete mode 100644 oxd-gen-client/docs/GetClientTokenResponse.md delete mode 100644 oxd-gen-client/docs/GetLogoutUriParams.md delete mode 100644 oxd-gen-client/docs/GetLogoutUriResponse.md delete mode 100644 oxd-gen-client/docs/GetLogoutUriResponseClaims.md delete mode 100644 oxd-gen-client/docs/GetTokensByCodeParams.md delete mode 100644 oxd-gen-client/docs/GetTokensByCodeResponse.md delete mode 100644 oxd-gen-client/docs/GetUserInfoParams.md delete mode 100644 oxd-gen-client/docs/GetUserInfoResponse.md delete mode 100644 oxd-gen-client/docs/GetUserInfoResponseClaims.md delete mode 100644 oxd-gen-client/docs/GetauthorizationurlCustomParameters.md delete mode 100644 oxd-gen-client/docs/IntrospectAccessTokenResponse.md delete mode 100644 oxd-gen-client/docs/IntrospectRptParams.md delete mode 100644 oxd-gen-client/docs/IntrospectRptResponse.md delete mode 100644 oxd-gen-client/docs/IntrospectaccesstokenParams.md delete mode 100644 oxd-gen-client/docs/RegisterSiteParams.md delete mode 100644 oxd-gen-client/docs/RegisterSiteResponse.md delete mode 100644 oxd-gen-client/docs/RemoveSiteParams.md delete mode 100644 oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlParams.md delete mode 100644 oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md delete mode 100644 oxd-gen-client/docs/UmaRpGetRptParams.md delete mode 100644 oxd-gen-client/docs/UmaRpGetRptResponse.md delete mode 100644 oxd-gen-client/docs/UmaRsCheckAccessParams.md delete mode 100644 oxd-gen-client/docs/UmaRsCheckAccessResponse.md delete mode 100644 oxd-gen-client/docs/UmaRsProtectParams.md delete mode 100644 oxd-gen-client/docs/UpdateSiteParams.md delete mode 100644 oxd-gen-client/docs/UpdateSiteResponse.md diff --git a/oxd-gen-client/docs/DevelopersApi.md b/oxd-gen-client/docs/DevelopersApi.md deleted file mode 100644 index a4bebe3e4..000000000 --- a/oxd-gen-client/docs/DevelopersApi.md +++ /dev/null @@ -1,765 +0,0 @@ -# DevelopersApi - -All URIs are relative to *https://gluu.org/oxd/4.0.0* - -Method | HTTP request | Description -------------- | ------------- | ------------- -[**getAccessTokenByRefreshToken**](DevelopersApi.md#getAccessTokenByRefreshToken) | **POST** /get-access-token-by-refresh-token | Get Access Token By Refresh Token -[**getAuthorizationUrl**](DevelopersApi.md#getAuthorizationUrl) | **POST** /get-authorization-url | Get Authorization Url -[**getClientToken**](DevelopersApi.md#getClientToken) | **POST** /get-client-token | Get Client Token -[**getLogoutUri**](DevelopersApi.md#getLogoutUri) | **POST** /get-logout-uri | Get Logout URL -[**getTokensByCode**](DevelopersApi.md#getTokensByCode) | **POST** /get-tokens-by-code | Get Tokens By Code -[**getUserInfo**](DevelopersApi.md#getUserInfo) | **POST** /get-user-info | Get User Info -[**healthCheck**](DevelopersApi.md#healthCheck) | **GET** /health-check | Health Check -[**introspectAccessToken**](DevelopersApi.md#introspectAccessToken) | **POST** /introspect-access-token | Introspect Access Token -[**introspectRpt**](DevelopersApi.md#introspectRpt) | **POST** /introspect-rpt | Introspect RPT -[**registerSite**](DevelopersApi.md#registerSite) | **POST** /register-site | Register Site -[**removeSite**](DevelopersApi.md#removeSite) | **POST** /remove-site | Remove Site -[**umaRpGetClaimsGatheringUrl**](DevelopersApi.md#umaRpGetClaimsGatheringUrl) | **POST** /uma-rp-get-claims-gathering-url | UMA RP Get Claims Gathering URL -[**umaRpGetRpt**](DevelopersApi.md#umaRpGetRpt) | **POST** /uma-rp-get-rpt | UMA RP Get RPT -[**umaRsCheckAccess**](DevelopersApi.md#umaRsCheckAccess) | **POST** /uma-rs-check-access | UMA RS Check Access -[**umaRsProtect**](DevelopersApi.md#umaRsProtect) | **POST** /uma-rs-protect | UMA RS Protect Resources -[**updateSite**](DevelopersApi.md#updateSite) | **POST** /update-site | Update Site - - - -# **getAccessTokenByRefreshToken** -> GetAccessTokenByRefreshTokenResponse getAccessTokenByRefreshToken(authorization, getAccessTokenByRefreshTokenParams) - -Get Access Token By Refresh Token - -Get Access Token By Refresh Token - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -GetAccessTokenByRefreshTokenParams getAccessTokenByRefreshTokenParams = new GetAccessTokenByRefreshTokenParams(); // GetAccessTokenByRefreshTokenParams | -try { - GetAccessTokenByRefreshTokenResponse result = apiInstance.getAccessTokenByRefreshToken(authorization, getAccessTokenByRefreshTokenParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getAccessTokenByRefreshToken"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **getAccessTokenByRefreshTokenParams** | [**GetAccessTokenByRefreshTokenParams**](GetAccessTokenByRefreshTokenParams.md)| | [optional] - -### Return type - -[**GetAccessTokenByRefreshTokenResponse**](GetAccessTokenByRefreshTokenResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **getAuthorizationUrl** -> GetAuthorizationUrlResponse getAuthorizationUrl(authorization, getAuthorizationUrlParams) - -Get Authorization Url - -Gets authorization url - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -GetAuthorizationUrlParams getAuthorizationUrlParams = new GetAuthorizationUrlParams(); // GetAuthorizationUrlParams | -try { - GetAuthorizationUrlResponse result = apiInstance.getAuthorizationUrl(authorization, getAuthorizationUrlParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getAuthorizationUrl"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **getAuthorizationUrlParams** | [**GetAuthorizationUrlParams**](GetAuthorizationUrlParams.md)| | [optional] - -### Return type - -[**GetAuthorizationUrlResponse**](GetAuthorizationUrlResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **getClientToken** -> GetClientTokenResponse getClientToken(getClientTokenParams) - -Get Client Token - -Gets Client Token - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -GetClientTokenParams getClientTokenParams = new GetClientTokenParams(); // GetClientTokenParams | -try { - GetClientTokenResponse result = apiInstance.getClientToken(getClientTokenParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getClientToken"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **getClientTokenParams** | [**GetClientTokenParams**](GetClientTokenParams.md)| | [optional] - -### Return type - -[**GetClientTokenResponse**](GetClientTokenResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **getLogoutUri** -> GetLogoutUriResponse getLogoutUri(authorization, getLogoutUriParams) - -Get Logout URL - -Get Logout URL - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -GetLogoutUriParams getLogoutUriParams = new GetLogoutUriParams(); // GetLogoutUriParams | -try { - GetLogoutUriResponse result = apiInstance.getLogoutUri(authorization, getLogoutUriParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getLogoutUri"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **getLogoutUriParams** | [**GetLogoutUriParams**](GetLogoutUriParams.md)| | [optional] - -### Return type - -[**GetLogoutUriResponse**](GetLogoutUriResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **getTokensByCode** -> GetTokensByCodeResponse getTokensByCode(authorization, getTokensByCodeParams) - -Get Tokens By Code - -Get tokens by code - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -GetTokensByCodeParams getTokensByCodeParams = new GetTokensByCodeParams(); // GetTokensByCodeParams | -try { - GetTokensByCodeResponse result = apiInstance.getTokensByCode(authorization, getTokensByCodeParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getTokensByCode"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **getTokensByCodeParams** | [**GetTokensByCodeParams**](GetTokensByCodeParams.md)| | [optional] - -### Return type - -[**GetTokensByCodeResponse**](GetTokensByCodeResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **getUserInfo** -> GetUserInfoResponse getUserInfo(authorization, getUserInfoParams) - -Get User Info - -Get User Info - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -GetUserInfoParams getUserInfoParams = new GetUserInfoParams(); // GetUserInfoParams | -try { - GetUserInfoResponse result = apiInstance.getUserInfo(authorization, getUserInfoParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#getUserInfo"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **getUserInfoParams** | [**GetUserInfoParams**](GetUserInfoParams.md)| | [optional] - -### Return type - -[**GetUserInfoResponse**](GetUserInfoResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **healthCheck** -> healthCheck() - -Health Check - -Health Check endpoint is for quick check whether oxd-server is alive. - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -try { - apiInstance.healthCheck(); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#healthCheck"); - e.printStackTrace(); -} -``` - -### Parameters -This endpoint does not need any parameter. - -### Return type - -null (empty response body) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: Not defined - - **Accept**: Not defined - - -# **introspectAccessToken** -> IntrospectAccessTokenResponse introspectAccessToken(authorization, introspectAccessTokenParams) - -Introspect Access Token - -Introspect Access Token - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -IntrospectAccessTokenParams introspectAccessTokenParams = new IntrospectAccessTokenParams(); // IntrospectAccessTokenParams | -try { - IntrospectAccessTokenResponse result = apiInstance.introspectAccessToken(authorization, introspectAccessTokenParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#introspectAccessToken"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **introspectAccessTokenParams** | [**IntrospectAccessTokenParams**](IntrospectAccessTokenParams.md)| | [optional] - -### Return type - -[**IntrospectAccessTokenResponse**](IntrospectAccessTokenResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **introspectRpt** -> IntrospectRptResponse introspectRpt(authorization, introspectRptParams) - -Introspect RPT - -Introspect RPT - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -IntrospectRptParams introspectRptParams = new IntrospectRptParams(); // IntrospectRptParams | -try { - IntrospectRptResponse result = apiInstance.introspectRpt(authorization, introspectRptParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#introspectRpt"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **introspectRptParams** | [**IntrospectRptParams**](IntrospectRptParams.md)| | [optional] - -### Return type - -[**IntrospectRptResponse**](IntrospectRptResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **registerSite** -> RegisterSiteResponse registerSite(registerSiteParams) - -Register Site - -Registers site at oxd-server - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -RegisterSiteParams registerSiteParams = new RegisterSiteParams(); // RegisterSiteParams | -try { - RegisterSiteResponse result = apiInstance.registerSite(registerSiteParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#registerSite"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **registerSiteParams** | [**RegisterSiteParams**](RegisterSiteParams.md)| | [optional] - -### Return type - -[**RegisterSiteResponse**](RegisterSiteResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **removeSite** -> UpdateSiteResponse removeSite(authorization, removeSiteParams) - -Remove Site - -Removes site from oxd-server - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -RemoveSiteParams removeSiteParams = new RemoveSiteParams(); // RemoveSiteParams | -try { - UpdateSiteResponse result = apiInstance.removeSite(authorization, removeSiteParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#removeSite"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **removeSiteParams** | [**RemoveSiteParams**](RemoveSiteParams.md)| | [optional] - -### Return type - -[**UpdateSiteResponse**](UpdateSiteResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **umaRpGetClaimsGatheringUrl** -> UmaRpGetClaimsGatheringUrlResponse umaRpGetClaimsGatheringUrl(authorization, umaRpGetClaimsGatheringUrlParams) - -UMA RP Get Claims Gathering URL - -UMA RP Get Claims Gathering URL - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -UmaRpGetClaimsGatheringUrlParams umaRpGetClaimsGatheringUrlParams = new UmaRpGetClaimsGatheringUrlParams(); // UmaRpGetClaimsGatheringUrlParams | -try { - UmaRpGetClaimsGatheringUrlResponse result = apiInstance.umaRpGetClaimsGatheringUrl(authorization, umaRpGetClaimsGatheringUrlParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#umaRpGetClaimsGatheringUrl"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **umaRpGetClaimsGatheringUrlParams** | [**UmaRpGetClaimsGatheringUrlParams**](UmaRpGetClaimsGatheringUrlParams.md)| | [optional] - -### Return type - -[**UmaRpGetClaimsGatheringUrlResponse**](UmaRpGetClaimsGatheringUrlResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **umaRpGetRpt** -> UmaRpGetRptResponse umaRpGetRpt(authorization, umaRpGetRptParams) - -UMA RP Get RPT - -UMA RP Get RPT - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -UmaRpGetRptParams umaRpGetRptParams = new UmaRpGetRptParams(); // UmaRpGetRptParams | -try { - UmaRpGetRptResponse result = apiInstance.umaRpGetRpt(authorization, umaRpGetRptParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#umaRpGetRpt"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **umaRpGetRptParams** | [**UmaRpGetRptParams**](UmaRpGetRptParams.md)| | [optional] - -### Return type - -[**UmaRpGetRptResponse**](UmaRpGetRptResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **umaRsCheckAccess** -> UmaRsCheckAccessResponse umaRsCheckAccess(authorization, umaRsCheckAccessParams) - -UMA RS Check Access - -UMA RS Check Access - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -UmaRsCheckAccessParams umaRsCheckAccessParams = new UmaRsCheckAccessParams(); // UmaRsCheckAccessParams | -try { - UmaRsCheckAccessResponse result = apiInstance.umaRsCheckAccess(authorization, umaRsCheckAccessParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#umaRsCheckAccess"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **umaRsCheckAccessParams** | [**UmaRsCheckAccessParams**](UmaRsCheckAccessParams.md)| | [optional] - -### Return type - -[**UmaRsCheckAccessResponse**](UmaRsCheckAccessResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **umaRsProtect** -> UmaRsProtectResponse umaRsProtect(authorization, umaRsProtectParams) - -UMA RS Protect Resources - -UMA RS Protect Resources. It's important to have a single HTTP method, mentioned only once within a given path in JSON, otherwise, the operation will fail. - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -UmaRsProtectParams umaRsProtectParams = new UmaRsProtectParams(); // UmaRsProtectParams | -try { - UmaRsProtectResponse result = apiInstance.umaRsProtect(authorization, umaRsProtectParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#umaRsProtect"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **umaRsProtectParams** | [**UmaRsProtectParams**](UmaRsProtectParams.md)| | [optional] - -### Return type - -[**UmaRsProtectResponse**](UmaRsProtectResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - - -# **updateSite** -> UpdateSiteResponse updateSite(authorization, updateSiteParams) - -Update Site - -Updates site at oxd-server - -### Example -```java -// Import classes: -//import io.swagger.client.ApiException; -//import io.swagger.client.api.DevelopersApi; - - -DevelopersApi apiInstance = new DevelopersApi(); -String authorization = "authorization_example"; // String | -UpdateSiteParams updateSiteParams = new UpdateSiteParams(); // UpdateSiteParams | -try { - UpdateSiteResponse result = apiInstance.updateSite(authorization, updateSiteParams); - System.out.println(result); -} catch (ApiException e) { - System.err.println("Exception when calling DevelopersApi#updateSite"); - e.printStackTrace(); -} -``` - -### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **authorization** | **String**| | [optional] - **updateSiteParams** | [**UpdateSiteParams**](UpdateSiteParams.md)| | [optional] - -### Return type - -[**UpdateSiteResponse**](UpdateSiteResponse.md) - -### Authorization - -No authorization required - -### HTTP request headers - - - **Content-Type**: application/json - - **Accept**: application/json - diff --git a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenParams.md b/oxd-gen-client/docs/GetAccessTokenByRefreshTokenParams.md deleted file mode 100644 index 14946b914..000000000 --- a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenParams.md +++ /dev/null @@ -1,12 +0,0 @@ - -# GetAccessTokenByRefreshTokenParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**refreshToken** | **String** | | -**scope** | **List<String>** | | - - - diff --git a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md b/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md deleted file mode 100644 index 8eda42672..000000000 --- a/oxd-gen-client/docs/GetAccessTokenByRefreshTokenResponse.md +++ /dev/null @@ -1,13 +0,0 @@ - -# GetAccessTokenByRefreshTokenResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | **List<String>** | | -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**refreshToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetAuthorizationUrlParams.md b/oxd-gen-client/docs/GetAuthorizationUrlParams.md deleted file mode 100644 index b1adb85c2..000000000 --- a/oxd-gen-client/docs/GetAuthorizationUrlParams.md +++ /dev/null @@ -1,14 +0,0 @@ - -# GetAuthorizationUrlParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**scope** | **List<String>** | | [optional] -**acrValues** | **List<String>** | | [optional] -**prompt** | **String** | | [optional] -**customParameters** | [**GetauthorizationurlCustomParameters**](GetauthorizationurlCustomParameters.md) | | [optional] - - - diff --git a/oxd-gen-client/docs/GetAuthorizationUrlResponse.md b/oxd-gen-client/docs/GetAuthorizationUrlResponse.md deleted file mode 100644 index bb48534df..000000000 --- a/oxd-gen-client/docs/GetAuthorizationUrlResponse.md +++ /dev/null @@ -1,10 +0,0 @@ - -# GetAuthorizationUrlResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**authorizationUrl** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetClientTokenParams.md b/oxd-gen-client/docs/GetClientTokenParams.md deleted file mode 100644 index 0125b59d9..000000000 --- a/oxd-gen-client/docs/GetClientTokenParams.md +++ /dev/null @@ -1,17 +0,0 @@ - -# GetClientTokenParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**opHost** | **String** | | -**opDiscoveryPath** | **String** | | [optional] -**scope** | **List<String>** | | [optional] -**clientId** | **String** | | -**clientSecret** | **String** | | -**authenticationMethod** | **String** | if value is missed then basic authentication is used. Otherwise it's possible to set `private_key_jwt` value for Private Key authentication. | [optional] -**algorithm** | **String** | optional but is required if authentication_method=private_key_jwt. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 | [optional] -**keyId** | **String** | optional but is required if authentication_method=private_key_jwt. It has to be valid key id from key store. | [optional] - - - diff --git a/oxd-gen-client/docs/GetClientTokenResponse.md b/oxd-gen-client/docs/GetClientTokenResponse.md deleted file mode 100644 index a6b3cffeb..000000000 --- a/oxd-gen-client/docs/GetClientTokenResponse.md +++ /dev/null @@ -1,13 +0,0 @@ - -# GetClientTokenResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**scope** | **List<String>** | | -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**refreshToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetLogoutUriParams.md b/oxd-gen-client/docs/GetLogoutUriParams.md deleted file mode 100644 index ae214cf29..000000000 --- a/oxd-gen-client/docs/GetLogoutUriParams.md +++ /dev/null @@ -1,14 +0,0 @@ - -# GetLogoutUriParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**idTokenHint** | **String** | | -**postLogoutRedirectUri** | **String** | | -**state** | **String** | | -**sessionState** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetLogoutUriResponse.md b/oxd-gen-client/docs/GetLogoutUriResponse.md deleted file mode 100644 index 8899ec4c4..000000000 --- a/oxd-gen-client/docs/GetLogoutUriResponse.md +++ /dev/null @@ -1,10 +0,0 @@ - -# GetLogoutUriResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**claims** | [**GetLogoutUriResponseClaims**](GetLogoutUriResponseClaims.md) | | [optional] - - - diff --git a/oxd-gen-client/docs/GetLogoutUriResponseClaims.md b/oxd-gen-client/docs/GetLogoutUriResponseClaims.md deleted file mode 100644 index 5b4312547..000000000 --- a/oxd-gen-client/docs/GetLogoutUriResponseClaims.md +++ /dev/null @@ -1,10 +0,0 @@ - -# GetLogoutUriResponseClaims - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetTokensByCodeParams.md b/oxd-gen-client/docs/GetTokensByCodeParams.md deleted file mode 100644 index 3f87a53f8..000000000 --- a/oxd-gen-client/docs/GetTokensByCodeParams.md +++ /dev/null @@ -1,12 +0,0 @@ - -# GetTokensByCodeParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**code** | **String** | | -**state** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetTokensByCodeResponse.md b/oxd-gen-client/docs/GetTokensByCodeResponse.md deleted file mode 100644 index ffad4d3cb..000000000 --- a/oxd-gen-client/docs/GetTokensByCodeResponse.md +++ /dev/null @@ -1,14 +0,0 @@ - -# GetTokensByCodeResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**accessToken** | **String** | | -**expiresIn** | **Integer** | | -**idToken** | **String** | | -**refreshToken** | **String** | | -**idTokenClaims** | [**GetTokensByCodeResponseIdTokenClaims**](GetTokensByCodeResponseIdTokenClaims.md) | | - - - diff --git a/oxd-gen-client/docs/GetUserInfoParams.md b/oxd-gen-client/docs/GetUserInfoParams.md deleted file mode 100644 index 967185062..000000000 --- a/oxd-gen-client/docs/GetUserInfoParams.md +++ /dev/null @@ -1,11 +0,0 @@ - -# GetUserInfoParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**accessToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/GetUserInfoResponse.md b/oxd-gen-client/docs/GetUserInfoResponse.md deleted file mode 100644 index 633263ba0..000000000 --- a/oxd-gen-client/docs/GetUserInfoResponse.md +++ /dev/null @@ -1,10 +0,0 @@ - -# GetUserInfoResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**claims** | [**GetUserInfoResponseClaims**](GetUserInfoResponseClaims.md) | | - - - diff --git a/oxd-gen-client/docs/GetUserInfoResponseClaims.md b/oxd-gen-client/docs/GetUserInfoResponseClaims.md deleted file mode 100644 index b1aea97ec..000000000 --- a/oxd-gen-client/docs/GetUserInfoResponseClaims.md +++ /dev/null @@ -1,24 +0,0 @@ - -# GetUserInfoResponseClaims - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**sub** | **List<String>** | | -**zoneinfo** | **List<String>** | | -**website** | **List<String>** | | -**birthdate** | **List<String>** | | -**gender** | **List<String>** | | -**profile** | **List<String>** | | -**preferredUsername** | **List<String>** | | -**middleName** | **List<String>** | | -**locale** | **List<String>** | | -**givenName** | **List<String>** | | -**picture** | **List<String>** | | -**updatedAt** | **List<String>** | | -**nickname** | **List<String>** | | -**name** | **List<String>** | | -**familyName** | **List<String>** | | - - - diff --git a/oxd-gen-client/docs/GetauthorizationurlCustomParameters.md b/oxd-gen-client/docs/GetauthorizationurlCustomParameters.md deleted file mode 100644 index a89c30e94..000000000 --- a/oxd-gen-client/docs/GetauthorizationurlCustomParameters.md +++ /dev/null @@ -1,11 +0,0 @@ - -# GetauthorizationurlCustomParameters - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**param1** | **String** | | -**param2** | **String** | | - - - diff --git a/oxd-gen-client/docs/IntrospectAccessTokenResponse.md b/oxd-gen-client/docs/IntrospectAccessTokenResponse.md deleted file mode 100644 index 1f4fe1a96..000000000 --- a/oxd-gen-client/docs/IntrospectAccessTokenResponse.md +++ /dev/null @@ -1,23 +0,0 @@ - -# IntrospectAccessTokenResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | **Boolean** | | -**clientId** | **String** | | -**username** | **String** | | -**scope** | **List<String>** | | -**tokenType** | **String** | | -**sub** | **String** | | -**aud** | **String** | | -**iss** | **String** | | -**exp** | **Long** | number of seconds since January 1 1970 UTC, indicating when this token will expire | -**iat** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token was issued at | -**nbf** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token not to be used before | -**jti** | **String** | a unique identifier for the JWT | -**acrValues** | **List<String>** | | -**extensionField** | **String** | | - - - diff --git a/oxd-gen-client/docs/IntrospectRptParams.md b/oxd-gen-client/docs/IntrospectRptParams.md deleted file mode 100644 index ab086327f..000000000 --- a/oxd-gen-client/docs/IntrospectRptParams.md +++ /dev/null @@ -1,11 +0,0 @@ - -# IntrospectRptParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**rpt** | **String** | | - - - diff --git a/oxd-gen-client/docs/IntrospectRptResponse.md b/oxd-gen-client/docs/IntrospectRptResponse.md deleted file mode 100644 index 9e040e361..000000000 --- a/oxd-gen-client/docs/IntrospectRptResponse.md +++ /dev/null @@ -1,14 +0,0 @@ - -# IntrospectRptResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**active** | **Boolean** | | -**exp** | **Long** | number of seconds since January 1 1970 UTC, indicating when this token will expire | -**iat** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token was issued at | -**nbf** | **Long** | number of seconds since January 1 1970 UTC, indicating when the token not to be used before | -**permissions** | **List<Object>** | | - - - diff --git a/oxd-gen-client/docs/IntrospectaccesstokenParams.md b/oxd-gen-client/docs/IntrospectaccesstokenParams.md deleted file mode 100644 index cf6a4b8bc..000000000 --- a/oxd-gen-client/docs/IntrospectaccesstokenParams.md +++ /dev/null @@ -1,11 +0,0 @@ - -# IntrospectAccessTokenParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**accessToken** | **String** | | - - - diff --git a/oxd-gen-client/docs/RegisterSiteParams.md b/oxd-gen-client/docs/RegisterSiteParams.md deleted file mode 100644 index a2f673115..000000000 --- a/oxd-gen-client/docs/RegisterSiteParams.md +++ /dev/null @@ -1,31 +0,0 @@ - -# RegisterSiteParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**authorizationRedirectUri** | **String** | | -**opHost** | **String** | If missing, must be present in defaults | [optional] -**postLogoutRedirectUri** | **String** | | [optional] -**applicationType** | **String** | | [optional] -**responseTypes** | **List<String>** | | [optional] -**grantTypes** | **List<String>** | | [optional] -**scope** | **List<String>** | | [optional] -**acrValues** | **List<String>** | | [optional] -**clientName** | **String** | oxd will generate its own non-human readable name by default if client_name is not specified | [optional] -**clientJwksUri** | **String** | | [optional] -**clientTokenEndpointAuthMethod** | **String** | | [optional] -**clientRequestUris** | **List<String>** | | [optional] -**clientFrontchannelLogoutUris** | **List<String>** | | [optional] -**clientSectorIdentifierUri** | **String** | | [optional] -**contacts** | **List<String>** | | [optional] -**redirectUris** | **List<String>** | | [optional] -**uiLocales** | **List<String>** | | [optional] -**claimsLocales** | **List<String>** | | [optional] -**claimsRedirectUri** | **List<String>** | | [optional] -**clientId** | **String** | client id of existing client, ignores all other parameters and skips new client registration forcing to use existing client (client_secret is required if this parameter is set) | [optional] -**clientSecret** | **String** | client secret of existing client, must be used together with client_id | [optional] -**trustedClient** | **Boolean** | specified whether client is trusted. Default value is false. | [optional] - - - diff --git a/oxd-gen-client/docs/RegisterSiteResponse.md b/oxd-gen-client/docs/RegisterSiteResponse.md deleted file mode 100644 index e82c2fe42..000000000 --- a/oxd-gen-client/docs/RegisterSiteResponse.md +++ /dev/null @@ -1,17 +0,0 @@ - -# RegisterSiteResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**opHost** | **String** | | -**clientId** | **String** | | [optional] -**clientSecret** | **String** | | [optional] -**clientRegistrationAccessToken** | **String** | | [optional] -**clientRegistrationClientUri** | **String** | | [optional] -**clientIdIssuedAt** | **Integer** | | [optional] -**clientSecretExpiresAt** | **Integer** | | [optional] - - - diff --git a/oxd-gen-client/docs/RemoveSiteParams.md b/oxd-gen-client/docs/RemoveSiteParams.md deleted file mode 100644 index 92ff67acd..000000000 --- a/oxd-gen-client/docs/RemoveSiteParams.md +++ /dev/null @@ -1,10 +0,0 @@ - -# RemoveSiteParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlParams.md b/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlParams.md deleted file mode 100644 index bbfd640b2..000000000 --- a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlParams.md +++ /dev/null @@ -1,12 +0,0 @@ - -# UmaRpGetClaimsGatheringUrlParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**ticket** | **String** | | -**claimsRedirectUri** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md b/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md deleted file mode 100644 index 89814768d..000000000 --- a/oxd-gen-client/docs/UmaRpGetClaimsGatheringUrlResponse.md +++ /dev/null @@ -1,11 +0,0 @@ - -# UmaRpGetClaimsGatheringUrlResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**url** | **String** | | -**state** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetRptParams.md b/oxd-gen-client/docs/UmaRpGetRptParams.md deleted file mode 100644 index e33edc2d7..000000000 --- a/oxd-gen-client/docs/UmaRpGetRptParams.md +++ /dev/null @@ -1,17 +0,0 @@ - -# UmaRpGetRptParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**ticket** | **String** | | -**claimToken** | **String** | | -**claimTokenFormat** | **String** | | -**pct** | **String** | | -**rpt** | **String** | | -**scope** | **List<String>** | | -**state** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRpGetRptResponse.md b/oxd-gen-client/docs/UmaRpGetRptResponse.md deleted file mode 100644 index d493a1684..000000000 --- a/oxd-gen-client/docs/UmaRpGetRptResponse.md +++ /dev/null @@ -1,13 +0,0 @@ - -# UmaRpGetRptResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**pct** | **String** | | -**updated** | **Boolean** | | -**accessToken** | **String** | | -**tokenType** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRsCheckAccessParams.md b/oxd-gen-client/docs/UmaRsCheckAccessParams.md deleted file mode 100644 index 41918dbbd..000000000 --- a/oxd-gen-client/docs/UmaRsCheckAccessParams.md +++ /dev/null @@ -1,13 +0,0 @@ - -# UmaRsCheckAccessParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**rpt** | **String** | | -**path** | **String** | | -**httpMethod** | **String** | | - - - diff --git a/oxd-gen-client/docs/UmaRsCheckAccessResponse.md b/oxd-gen-client/docs/UmaRsCheckAccessResponse.md deleted file mode 100644 index 90fe5fc0a..000000000 --- a/oxd-gen-client/docs/UmaRsCheckAccessResponse.md +++ /dev/null @@ -1,10 +0,0 @@ - -# UmaRsCheckAccessResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**access** | **String** | Possible values are granted, denied | - - - diff --git a/oxd-gen-client/docs/UmaRsProtectParams.md b/oxd-gen-client/docs/UmaRsProtectParams.md deleted file mode 100644 index cac728844..000000000 --- a/oxd-gen-client/docs/UmaRsProtectParams.md +++ /dev/null @@ -1,12 +0,0 @@ - -# UmaRsProtectParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**overwrite** | **Boolean** | | -**resources** | **List<Object>** | | - - - diff --git a/oxd-gen-client/docs/UpdateSiteParams.md b/oxd-gen-client/docs/UpdateSiteParams.md deleted file mode 100644 index 47ade84f8..000000000 --- a/oxd-gen-client/docs/UpdateSiteParams.md +++ /dev/null @@ -1,24 +0,0 @@ - -# UpdateSiteParams - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | -**authorizationRedirectUri** | **String** | | [optional] -**postLogoutRedirectUri** | **String** | | [optional] -**responseTypes** | **List<String>** | | [optional] -**grantTypes** | **List<String>** | | [optional] -**scope** | **List<String>** | | [optional] -**acrValues** | **List<String>** | | [optional] -**clientJwksUri** | **String** | | [optional] -**clientTokenEndpointAuthMethod** | **String** | | [optional] -**clientRequestUris** | **List<String>** | | [optional] -**clientSectorIdentifierUri** | **String** | | [optional] -**clientSecretExpiresAt** | **Long** | the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object | [optional] -**contacts** | **List<String>** | | [optional] -**uiLocales** | **List<String>** | | [optional] -**claimsLocales** | **List<String>** | | [optional] - - - diff --git a/oxd-gen-client/docs/UpdateSiteResponse.md b/oxd-gen-client/docs/UpdateSiteResponse.md deleted file mode 100644 index d0e11d3f9..000000000 --- a/oxd-gen-client/docs/UpdateSiteResponse.md +++ /dev/null @@ -1,10 +0,0 @@ - -# UpdateSiteResponse - -## Properties -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**oxdId** | **String** | | - - - From d82c84e7580ef1b814e38258763328d5a61b5b28 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 11:06:38 +0300 Subject: [PATCH 059/230] #225 : fixed swagger tests complation after client re-generation. --- .../client/api/GetAuthorizationUrlTest.java | 6 +- .../client/api/GetClientTokenTest.java | 8 +-- .../client/api/GetTokensByCodeTest.java | 18 +++--- .../client/api/IntrospectAccessTokenTest.java | 59 ++++++++----------- .../swagger/client/api/RegisterSiteTest.java | 33 ++++------- .../io/swagger/client/api/RemoveSiteTest.java | 13 ++-- .../java/io/swagger/client/api/SetUpTest.java | 4 +- .../java/io/swagger/client/api/Tester.java | 14 ++--- 8 files changed, 64 insertions(+), 91 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java index fc4545106..6f89f34f6 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetAuthorizationUrlTest.java @@ -2,7 +2,7 @@ import io.swagger.client.model.GetAuthorizationUrlParams; import io.swagger.client.model.GetAuthorizationUrlResponse; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.RegisterSiteResponse; import org.testng.annotations.Parameters; import org.testng.annotations.Test; @@ -14,12 +14,12 @@ public class GetAuthorizationUrlTest { public void test(String redirectUrl, String opHost) throws Exception { DevelopersApi api = Tester.api(); - final RegisterSiteResponseData site = RegisterSiteTest.registerSite(api, opHost, redirectUrl); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(api, opHost, redirectUrl); final GetAuthorizationUrlParams commandParams = new GetAuthorizationUrlParams(); commandParams.setOxdId(site.getOxdId()); final GetAuthorizationUrlResponse resp = api.getAuthorizationUrl(Tester.getAuthorization(site), commandParams); assertNotNull(resp); - Tester.notEmpty(resp.getData().getAuthorizationUrl()); + Tester.notEmpty(resp.getAuthorizationUrl()); } } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetClientTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetClientTokenTest.java index d63c0e01e..dc6988eac 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetClientTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetClientTokenTest.java @@ -1,14 +1,14 @@ package io.swagger.client.api; -import static org.testng.Assert.assertNotNull; - import com.google.common.collect.Lists; import io.swagger.client.ApiException; import io.swagger.client.model.GetClientTokenParams; -import io.swagger.client.model.GetClientTokenResponseData; +import io.swagger.client.model.GetClientTokenResponse; import org.testng.annotations.Parameters; import org.testng.annotations.Test; +import static org.testng.Assert.assertNotNull; + /** @@ -28,7 +28,7 @@ public void getClientToken(String opHost) throws ApiException { params.setClientId(Tester.getSetupData().getClientId()); params.setClientSecret(Tester.getSetupData().getClientSecret()); - GetClientTokenResponseData resp = Tester.api().getClientToken(params).getData(); + GetClientTokenResponse resp = Tester.api().getClientToken(params); assertNotNull(resp); Tester.notEmpty(resp.getAccessToken()); diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index d78485501..486d5cd75 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -7,11 +7,7 @@ import com.squareup.okhttp.Request; import com.squareup.okhttp.RequestBody; import com.squareup.okhttp.Response; -import io.swagger.client.model.GetAccessTokenByRefreshTokenParams; -import io.swagger.client.model.GetAccessTokenByRefreshTokenResponseData; -import io.swagger.client.model.GetTokensByCodeParams; -import io.swagger.client.model.GetTokensByCodeResponseData; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.*; import org.testng.annotations.Parameters; import org.testng.annotations.Test; import org.xdi.oxd.common.CoreUtils; @@ -36,14 +32,14 @@ public void test(String opHost, String redirectUrl, String userId, String userSe DevelopersApi client = Tester.api(); - final RegisterSiteResponseData site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); - GetTokensByCodeResponseData tokensResponse = tokenByCode(client, site, userId, userSecret, CoreUtils.secureRandomString()); + GetTokensByCodeResponse tokensResponse = tokenByCode(client, site, userId, userSecret, CoreUtils.secureRandomString()); refreshToken(tokensResponse, client, site); } - private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi client, RegisterSiteResponseData site) throws Exception { + private static void refreshToken(GetTokensByCodeResponse resp, DevelopersApi client, RegisterSiteResponse site) throws Exception { notEmpty(resp.getRefreshToken()); final String authorization = Tester.getAuthorization(site); @@ -54,14 +50,14 @@ private static void refreshToken(GetTokensByCodeResponseData resp, DevelopersApi refreshParams.setScope(Lists.newArrayList("openid")); refreshParams.setRefreshToken(resp.getRefreshToken()); - GetAccessTokenByRefreshTokenResponseData refreshResponse = client.getAccessTokenByRefreshToken(authorization, refreshParams).getData(); + GetAccessTokenByRefreshTokenResponse refreshResponse = client.getAccessTokenByRefreshToken(authorization, refreshParams); assertNotNull(refreshResponse); notEmpty(refreshResponse.getAccessToken()); notEmpty(refreshResponse.getRefreshToken()); } - private GetTokensByCodeResponseData tokenByCode(DevelopersApi client, RegisterSiteResponseData site, String userId, String userSecret, String nonce) throws Exception { + private GetTokensByCodeResponse tokenByCode(DevelopersApi client, RegisterSiteResponse site, String userId, String userSecret, String nonce) throws Exception { final String state = CoreUtils.secureRandomString(); @@ -76,7 +72,7 @@ private GetTokensByCodeResponseData tokenByCode(DevelopersApi client, RegisterSi params.setCode(code); params.setState(state); - final GetTokensByCodeResponseData resp = client.getTokensByCode(authorizationStr, params).getData(); + final GetTokensByCodeResponse resp = client.getTokensByCode(authorizationStr, params); assertNotNull(resp); notEmpty(resp.getAccessToken()); notEmpty(resp.getIdToken()); diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index c9d0b9c70..ec0b902b7 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -3,13 +3,7 @@ import com.google.common.collect.Lists; import io.swagger.client.ApiException; import io.swagger.client.ApiResponse; -import io.swagger.client.model.GetClientTokenParams; -import io.swagger.client.model.GetClientTokenResponse; -import io.swagger.client.model.GetClientTokenResponseData; -import io.swagger.client.model.IntrospectAccessTokenParams; -import io.swagger.client.model.IntrospectAccessTokenResponse; -import io.swagger.client.model.IntrospectAccessTokenResponseData; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.*; import org.testng.annotations.Parameters; import org.testng.annotations.Test; @@ -25,8 +19,8 @@ public class IntrospectAccessTokenTest extends BaseTestCase { @Test public void introspectAccessToken(String opHost, String redirectUrl) throws Exception { DevelopersApi client = Tester.api(); - RegisterSiteResponseData setupResponse = RegisterSiteTest.registerSite(client, opHost, redirectUrl); - GetClientTokenResponseData tokenResponse = getGetClientTokenResponseData(opHost, client, setupResponse); + RegisterSiteResponse setupResponse = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + GetClientTokenResponse tokenResponse = getGetClientTokenResponseData(opHost, client, setupResponse); assertNotNull(tokenResponse); final String accessToken = tokenResponse.getAccessToken(); Tester.notEmpty(accessToken); @@ -36,15 +30,15 @@ public void introspectAccessToken(String opHost, String redirectUrl) throws Exce // final String authorization = "Bearer " + accessToken; final IntrospectAccessTokenResponse iaTokenResponse = client.introspectAccessToken(authorization, introspectParams); - assertNotNull(iaTokenResponse.getData()); - assertTrue(iaTokenResponse.getData().isActive()); - assertNotNull(iaTokenResponse.getData().getIat()); - assertNotNull(iaTokenResponse.getData().getExp()); - assertTrue(iaTokenResponse.getData().getExp() >= iaTokenResponse.getData().getIat()); - final Long nbf = iaTokenResponse.getData().getNbf(); + assertNotNull(iaTokenResponse); + assertTrue(iaTokenResponse.isActive()); + assertNotNull(iaTokenResponse.getIat()); + assertNotNull(iaTokenResponse.getExp()); + assertTrue(iaTokenResponse.getExp() >= iaTokenResponse.getIat()); + final Long nbf = iaTokenResponse.getNbf(); if (nbf != null) { - assertTrue(nbf > iaTokenResponse.getData().getIat()); - assertTrue(nbf < iaTokenResponse.getData().getExp()); + assertTrue(nbf > iaTokenResponse.getIat()); + assertTrue(nbf < iaTokenResponse.getExp()); } } @@ -56,9 +50,9 @@ public void introspectAccessToken(String opHost, String redirectUrl) throws Exce @Test public void testWithInvalidToken(String opHost, String redirectUrl) throws Exception { DevelopersApi client = Tester.api(); - RegisterSiteResponseData setupData = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + RegisterSiteResponse setupData = RegisterSiteTest.registerSite(client, opHost, redirectUrl); - GetClientTokenResponseData tokenResponse = getGetClientTokenResponseData(opHost, client, setupData); + GetClientTokenResponse tokenResponse = getGetClientTokenResponseData(opHost, client, setupData); assertNotNull(tokenResponse); final String accessToken = tokenResponse.getAccessToken(); final String validHeader = "Bearer " + accessToken; @@ -72,10 +66,8 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep apiIatResponse = client.introspectAccessTokenWithHttpInfo(validHeader, iatParams); assertEquals(apiIatResponse.getStatusCode(), 200); assertNotNull(apiIatResponse.getData()); - - IntrospectAccessTokenResponseData responseData = apiIatResponse.getData().getData(); - assertNotNull(responseData); - assertFalse(responseData.isActive()); + assertNotNull(apiIatResponse.getData()); + assertFalse(apiIatResponse.getData().isActive()); } @Parameters({"opHost", "redirectUrl"}) @@ -84,9 +76,9 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep public void testWithInvalidAuthorization(String opHost, String redirectUrl) throws Exception { DevelopersApi client = Tester.api(); - RegisterSiteResponseData setupResponse = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + RegisterSiteResponse setupResponse = RegisterSiteTest.registerSite(client, opHost, redirectUrl); - GetClientTokenResponseData tokenResponseData = this.getGetClientTokenResponseData(opHost, client, setupResponse); + GetClientTokenResponse tokenResponseData = this.getGetClientTokenResponseData(opHost, client, setupResponse); IntrospectAccessTokenParams introspectParams = new IntrospectAccessTokenParams(); introspectParams.setOxdId(setupResponse.getOxdId()); introspectParams.setAccessToken(tokenResponseData.getAccessToken()); @@ -94,24 +86,21 @@ public void testWithInvalidAuthorization(String opHost, String redirectUrl) thro final String invalidAuthString = "Bearer NotAuthorized"; final ApiResponse introApiResponse = client.introspectAccessTokenWithHttpInfo(invalidAuthString, introspectParams); - assertEquals(403,introApiResponse.getStatusCode()); - - IntrospectAccessTokenResponseData responseData = introApiResponse.getData().getData(); - assertNotNull(responseData); - assertNull(responseData.getClientId()); - + assertEquals(403, introApiResponse.getStatusCode()); + assertNotNull(introApiResponse.getData()); + assertNull(introApiResponse.getData().getClientId()); } - private static GetClientTokenResponseData getGetClientTokenResponseData(String opHost, DevelopersApi client, - RegisterSiteResponseData setupResponse) throws ApiException { + private static GetClientTokenResponse getGetClientTokenResponseData(String opHost, DevelopersApi client, + RegisterSiteResponse setupResponse) throws ApiException { final GetClientTokenParams params = new GetClientTokenParams(); params.setOpHost(opHost); - params.setScope(Lists.newArrayList("openid","oxd")); + params.setScope(Lists.newArrayList("openid", "oxd")); params.setClientId(setupResponse.getClientId()); params.setClientSecret(setupResponse.getClientSecret()); final GetClientTokenResponse clientTokenResponse = client.getClientToken(params); assertNotNull(clientTokenResponse); - return clientTokenResponse.getData(); + return clientTokenResponse; } } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java index 5d1007599..94d925f0e 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java @@ -2,10 +2,8 @@ import com.google.common.base.Strings; import com.google.common.collect.Lists; -import io.swagger.client.ApiResponse; import io.swagger.client.model.RegisterSiteParams; import io.swagger.client.model.RegisterSiteResponse; -import io.swagger.client.model.RegisterSiteResponseData; import io.swagger.client.model.UpdateSiteParams; import io.swagger.client.model.UpdateSiteResponse; import org.testng.annotations.Parameters; @@ -36,9 +34,7 @@ public void register(String opHost, String redirectUrl, String postLogoutRedirec DevelopersApi client = api(); - RegisterSiteResponseData resp = registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, logoutUrl); - assertNotNull(resp); - notEmpty(resp.getOxdId()); + registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, logoutUrl); // more specific site registration final RegisterSiteParams params = new RegisterSiteParams(); @@ -52,7 +48,7 @@ public void register(String opHost, String redirectUrl, String postLogoutRedirec params.setGrantTypes(Lists.newArrayList("authorization_code")); params.setResponseTypes(Lists.newArrayList("code")); - resp = client.registerSite(params).getData(); + final RegisterSiteResponse resp = client.registerSite(params); assertNotNull(resp); assertNotNull(resp.getOxdId()); oxdId = resp.getOxdId(); @@ -63,45 +59,38 @@ public void update() throws Exception { notEmpty(oxdId); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DAY_OF_YEAR, 1); + // more specific site registration final UpdateSiteParams params = new UpdateSiteParams(); params.setOxdId(oxdId); params.setClientSecretExpiresAt(calendar.getTime().getTime()); params.setScope(Lists.newArrayList("profile", "oxd")); - final DevelopersApi apiClient = api(); - UpdateSiteResponse resp = apiClient.updateSite(getAuthorization(), params); + + UpdateSiteResponse resp = api().updateSite(getAuthorization(), params); assertNotNull(resp); } - public static RegisterSiteResponseData registerSite(DevelopersApi apiClient, - String opHost, - String redirectUrl) throws Exception { + public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String opHost, String redirectUrl) throws Exception { return registerSite(apiClient, opHost, redirectUrl, redirectUrl, ""); } - - public static RegisterSiteResponseData registerSite(DevelopersApi apiClient, - String opHost, String redirectUrl, - String postLogoutRedirectUrl, - String logoutUri) throws Exception { + public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String opHost, String redirectUrl, String postLogoutRedirectUrl, String logoutUri) throws Exception { final RegisterSiteParams params = new RegisterSiteParams(); params.setOpHost(opHost); params.setAuthorizationRedirectUri(redirectUrl); params.setPostLogoutRedirectUri(postLogoutRedirectUrl); params.setClientFrontchannelLogoutUris(Lists.newArrayList(logoutUri)); - params.setScope(Lists.newArrayList("openid", "uma_protection", "profile","oxd")); + params.setScope(Lists.newArrayList("openid", "uma_protection", "profile", "oxd")); params.setTrustedClient(true); params.setGrantTypes(Lists.newArrayList( GrantType.AUTHORIZATION_CODE.getValue(), GrantType.OXAUTH_UMA_TICKET.getValue(), GrantType.CLIENT_CREDENTIALS.getValue())); - final ApiResponse regApiResponse = apiClient.registerSiteWithHttpInfo(params); - final RegisterSiteResponse resp = regApiResponse.getData(); - assertTrue(regApiResponse.getStatusCode() == 200); + final RegisterSiteResponse resp = apiClient.registerSite(params); assertNotNull(resp); - assertTrue(!Strings.isNullOrEmpty(resp.getData().getOxdId())); - return resp.getData(); + assertTrue(!Strings.isNullOrEmpty(resp.getOxdId())); + return resp; } } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java index 47552ef0d..c5c86f8af 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RemoveSiteTest.java @@ -1,9 +1,9 @@ package io.swagger.client.api; import io.swagger.client.ApiException; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.RegisterSiteResponse; import io.swagger.client.model.RemoveSiteParams; -import io.swagger.client.model.RemoveSiteResponse; +import io.swagger.client.model.UpdateSiteResponse; import org.apache.commons.lang.StringUtils; import org.testng.annotations.Parameters; import org.testng.annotations.Test; @@ -19,15 +19,14 @@ public class RemoveSiteTest { @Parameters({"opHost", "redirectUrl"}) public void testRemoveSite(String opHost, String redirectUrl) throws Exception { final DevelopersApi api = Tester.api(); - RegisterSiteResponseData response = RegisterSiteTest.registerSite(api, opHost, redirectUrl); + RegisterSiteResponse response = RegisterSiteTest.registerSite(api, opHost, redirectUrl); RemoveSiteParams params = new RemoveSiteParams(); params.setOxdId(response.getOxdId()); - RemoveSiteResponse removeSiteResp = api.removeSite(Tester.getAuthorization(response), params); - assertNotNull(removeSiteResp); - assertNotNull(removeSiteResp.getData()); - assertTrue(StringUtils.isNotEmpty(removeSiteResp.getData().getOxdId())); + UpdateSiteResponse removeResponse = api.removeSite(Tester.getAuthorization(response), params); + assertNotNull(removeResponse); + assertTrue(StringUtils.isNotEmpty(removeResponse.getOxdId())); } @Test diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/SetUpTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/SetUpTest.java index e1ebcdf28..6adcfdbf2 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/SetUpTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/SetUpTest.java @@ -1,7 +1,7 @@ package io.swagger.client.api; import com.google.common.base.Preconditions; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.RegisterSiteResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.testng.annotations.BeforeSuite; @@ -26,7 +26,7 @@ public static void beforeSuite(String host, String opHost, String redirectUrl) { Tester.setHost(host); Tester.setOpHost(opHost); - RegisterSiteResponseData clientSetupInfo = RegisterSiteTest.registerSite(Tester.api(), opHost, redirectUrl); + RegisterSiteResponse clientSetupInfo = RegisterSiteTest.registerSite(Tester.api(), opHost, redirectUrl); Tester.setSetupData(clientSetupInfo); Preconditions.checkNotNull(Tester.getAuthorization()); diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java index f3844b552..d92d3d864 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/Tester.java @@ -6,8 +6,8 @@ import io.swagger.client.ApiClient; import io.swagger.client.ApiException; import io.swagger.client.model.GetClientTokenParams; -import io.swagger.client.model.GetClientTokenResponseData; -import io.swagger.client.model.RegisterSiteResponseData; +import io.swagger.client.model.GetClientTokenResponse; +import io.swagger.client.model.RegisterSiteResponse; import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.ErrorResponse; @@ -27,7 +27,7 @@ public class Tester { private static String AUTHORIZATION = ""; private static String HOST; private static String OP_HOST; - private static RegisterSiteResponseData setupData; + private static RegisterSiteResponse setupData; private static boolean isTokenProtectionEnabled = false; private Tester() { @@ -70,14 +70,14 @@ public static String getAuthorization() throws Exception { * @return access token for the provided site's client id * @throws ApiException */ - public static String getAuthorization(RegisterSiteResponseData siteResponseData) throws ApiException { + public static String getAuthorization(RegisterSiteResponse siteResponseData) throws ApiException { final GetClientTokenParams params = new GetClientTokenParams(); params.setOpHost(OP_HOST); params.setScope(Lists.newArrayList("openid", "oxd")); params.setClientId(siteResponseData.getClientId()); params.setClientSecret(siteResponseData.getClientSecret()); - GetClientTokenResponseData resp = api().getClientToken(params).getData(); + GetClientTokenResponse resp = api().getClientToken(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getAccessToken())); @@ -93,7 +93,7 @@ public static void setOpHost(String opHost) { OP_HOST = opHost; } - public static void setSetupData(RegisterSiteResponseData setupData) { + public static void setSetupData(RegisterSiteResponse setupData) { Tester.setupData = setupData; } @@ -101,7 +101,7 @@ public static void setTokenProtectionEnabled(Boolean isTokenProtectionEnabled) { Tester.isTokenProtectionEnabled = isTokenProtectionEnabled; } - public static RegisterSiteResponseData getSetupData() { + public static RegisterSiteResponse getSetupData() { return setupData; } From 97ad678bfa7912dd8d96822279f2144973a0ddd7 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 11:15:58 +0300 Subject: [PATCH 060/230] #225 : fixing swagger tests --- .../io/swagger/client/api/GetTokensByCodeTest.java | 2 +- .../client/api/IntrospectAccessTokenTest.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index 486d5cd75..8cde3ae2c 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -89,7 +89,7 @@ private String codeRequest(DevelopersApi client, String oxdId, String userId, St final JsonElement jsonResponse = new JsonParser().parse(response.body().string()); - return jsonResponse.getAsJsonObject().getAsJsonObject("data").get("code").getAsString(); + return jsonResponse.getAsJsonObject().get("code").getAsString(); } diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index ec0b902b7..0e717378f 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -62,12 +62,14 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep iatParams.setAccessToken(invalidToken); iatParams.setOxdId(setupData.getOxdId()); - ApiResponse - apiIatResponse = client.introspectAccessTokenWithHttpInfo(validHeader, iatParams); - assertEquals(apiIatResponse.getStatusCode(), 200); - assertNotNull(apiIatResponse.getData()); - assertNotNull(apiIatResponse.getData()); - assertFalse(apiIatResponse.getData().isActive()); + try { + client.introspectAccessToken(validHeader, iatParams); + } catch (ApiException e) { + assertEquals(400, e.getCode()); + return; + } + throw new AssertionError("Got response while we expect failure because there is not such token on the server."); + } @Parameters({"opHost", "redirectUrl"}) From ea51d0de2e1dcd6be18f2895e2a682812519a5ea Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 11:55:08 +0300 Subject: [PATCH 061/230] set default value of protect_commands_with_access_token to `true` --- oxd-server/src/main/resources/oxd-server.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index c287866d4..b2e44a013 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -11,7 +11,7 @@ support-google-logout: true state_expiration_in_minutes: 5 nonce_expiration_in_minutes: 5 public_op_key_cache_expiration_in_minutes: 60 -protect_commands_with_access_token: false +protect_commands_with_access_token: true uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client: true migration_source_folder_path: '' storage: h2 From 81c3c0c016006f4a07a396db1191cb0e05535d23 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 11:56:23 +0300 Subject: [PATCH 062/230] removed unused code --- .../src/main/java/org/xdi/oxd/server/service/RpService.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/RpService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/RpService.java index fad7f9252..f3f4a4e54 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/RpService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/RpService.java @@ -30,13 +30,10 @@ public class RpService { private PersistenceService persistenceService; - private ConfigurationService configurationService; - @Inject - public RpService(ValidationService validationService, PersistenceService persistenceService, ConfigurationService configurationService) { + public RpService(ValidationService validationService, PersistenceService persistenceService) { this.validationService = validationService; this.persistenceService = persistenceService; - this.configurationService = configurationService; } public void removeAllRps() { From 8bc364fc2f46c9c8f2667fccf9faca0f3fe6d348 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 10 Oct 2018 11:57:09 +0300 Subject: [PATCH 063/230] removed unused code --- .../java/org/xdi/oxd/server/service/ConfigurationService.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java index 424b86db2..b47e76023 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java @@ -15,10 +15,6 @@ public class ConfigurationService implements Provider { - public static final String DOC_URL = "https://www.gluu.org/docs/oxd"; - - public static final String APP_VERSION = "3.2.0"; - /** * Logger */ From 2c7f03943cad1afc3c130535a228b6225d71f053 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 12 Oct 2018 11:49:06 +0300 Subject: [PATCH 064/230] #202 : added clean up of logs from `client_secret` https://github.com/GluuFederation/oxd/issues/202 --- .../main/java/org/xdi/oxd/common/CoreUtils.java | 15 +++++++++++++++ .../oxd/common/response/SetupClientResponse.java | 1 - .../java/org/xdi/oxd/common/CoreUtilsTest.java | 15 +++++++++++++++ .../src/main/java/org/gluu/oxd/RestResource.java | 2 +- .../main/java/org/xdi/oxd/server/Processor.java | 2 +- 5 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 oxd-common/src/test/java/org/xdi/oxd/common/CoreUtilsTest.java diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/CoreUtils.java b/oxd-common/src/main/java/org/xdi/oxd/common/CoreUtils.java index 42d097439..385936dda 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/CoreUtils.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/CoreUtils.java @@ -3,6 +3,7 @@ */ package org.xdi.oxd.common; +import org.apache.commons.lang.StringUtils; import org.apache.http.client.HttpClient; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.PlainSocketFactory; @@ -316,4 +317,18 @@ public static Map splitQuery(URL url) throws UnsupportedEncoding } return queryPairs; } + + public static String cleanUpLog(String log) { + try { + // remove `client_secret` from logs + final int index = StringUtils.indexOf(log, "client_secret"); + if (index != -1) { + final int commaIndex = StringUtils.indexOf(log, ",", index + 1); + return log.substring(0, index - 1) + log.substring(commaIndex + 1, log.length()); + } + } catch (Exception e) { + LOG.error(e.getMessage(), e); + } + return log; + } } diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/SetupClientResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/SetupClientResponse.java index 5239d40b9..92c6bc81d 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/SetupClientResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/SetupClientResponse.java @@ -120,7 +120,6 @@ public String toString() { ", setupClientOxdId='" + setupClientOxdId + '\'' + ", clientIdOfOxdId='" + clientIdOfOxdId + '\'' + ", clientId='" + clientId + '\'' + - ", clientSecret='" + clientSecret + '\'' + ", clientRegistrationAccessToken='" + clientRegistrationAccessToken + '\'' + ", clientRegistrationClientUri='" + clientRegistrationClientUri + '\'' + ", clientIdIssuedAt='" + clientIdIssuedAt + '\'' + diff --git a/oxd-common/src/test/java/org/xdi/oxd/common/CoreUtilsTest.java b/oxd-common/src/test/java/org/xdi/oxd/common/CoreUtilsTest.java new file mode 100644 index 000000000..37091e272 --- /dev/null +++ b/oxd-common/src/test/java/org/xdi/oxd/common/CoreUtilsTest.java @@ -0,0 +1,15 @@ +package org.xdi.oxd.common; + +import junit.framework.Assert; +import org.testng.annotations.Test; + +/** + * @author Yuriy Zabrovarnyy + */ +public class CoreUtilsTest { + + @Test + public void cleanUpLogs() { + Assert.assertEquals("{'client_name':'name', 'oxd_id':'test_id'}", CoreUtils.cleanUpLog("{'client_name':'name', 'client_secret':'secret', 'oxd_id':'test_id'}")); + } +} diff --git a/oxd-https-extension/src/main/java/org/gluu/oxd/RestResource.java b/oxd-https-extension/src/main/java/org/gluu/oxd/RestResource.java index 965e21d50..947f5590e 100644 --- a/oxd-https-extension/src/main/java/org/gluu/oxd/RestResource.java +++ b/oxd-https-extension/src/main/java/org/gluu/oxd/RestResource.java @@ -210,7 +210,7 @@ public static String response(CommandResponse commandResponse) { } } final String json = CoreUtils.asJsonSilently(commandResponse); - LOG.trace("Send back response: {}", json); + LOG.trace("Send back response: {}", CoreUtils.cleanUpLog(json)); return json; } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java index dae8735f0..0e099b7e1 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Processor.java @@ -49,7 +49,7 @@ public String process(String p_command) { final CommandResponse response = process(command); if (response != null) { final String json = CoreUtils.asJson(response); - LOG.trace("Send back response: {}", json); + LOG.trace("Send back response: {}", CoreUtils.cleanUpLog(json)); return json; } else { LOG.error("There is no response produced by Processor."); From 5b2ef072a92e1385c9cba54b997810a701c21644 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 12 Oct 2018 12:06:56 +0300 Subject: [PATCH 065/230] #242 : fixed NPE in `update-site` operation https://github.com/GluuFederation/oxd/issues/242 --- .../org/xdi/oxd/client/RegisterSiteTest.java | 9 +++--- .../java/org/xdi/oxd/server/service/Rp.java | 28 +++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/oxd-client/src/test/java/org/xdi/oxd/client/RegisterSiteTest.java b/oxd-client/src/test/java/org/xdi/oxd/client/RegisterSiteTest.java index 0900080a6..62f9f4a94 100644 --- a/oxd-client/src/test/java/org/xdi/oxd/client/RegisterSiteTest.java +++ b/oxd-client/src/test/java/org/xdi/oxd/client/RegisterSiteTest.java @@ -14,7 +14,6 @@ import java.io.IOException; import java.util.ArrayList; -import java.util.Calendar; import static junit.framework.Assert.assertNotNull; import static junit.framework.Assert.assertTrue; @@ -77,19 +76,19 @@ public void update(String host, int port) throws IOException { try { client = new CommandClient(host, port); - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_YEAR, 1); - // more specific site registration final UpdateSiteParams commandParams = new UpdateSiteParams(); commandParams.setOxdId(oxdId); - commandParams.setScope(Lists.newArrayList("profile")); final Command command = new Command(CommandType.UPDATE_SITE); command.setParamsObject(commandParams); UpdateSiteResponse resp = client.send(command).dataAsResponse(UpdateSiteResponse.class); + UpdateSiteResponse resp2 = client.send(command).dataAsResponse(UpdateSiteResponse.class); // send 2 more update calls to make sure we are consistent + UpdateSiteResponse resp3 = client.send(command).dataAsResponse(UpdateSiteResponse.class); assertNotNull(resp); + assertNotNull(resp2); + assertNotNull(resp3); } finally { CommandClient.closeQuietly(client); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java index fdb08b668..263ea29ed 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java @@ -7,6 +7,7 @@ import org.xdi.oxd.server.model.UmaResource; import java.io.Serializable; +import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @@ -354,6 +355,9 @@ public void setAuthorizationRedirectUri(String authorizationRedirectUri) { } public List getContacts() { + if (contacts == null) { + contacts = new ArrayList<>(); + } return contacts; } @@ -362,6 +366,9 @@ public void setContacts(List contacts) { } public List getAcrValues() { + if (acrValues == null) { + acrValues = new ArrayList<>(); + } return acrValues; } @@ -370,6 +377,9 @@ public void setAcrValues(List acrValues) { } public List getClaimsLocales() { + if (claimsLocales == null) { + claimsLocales = new ArrayList<>(); + } return claimsLocales; } @@ -394,6 +404,9 @@ public void setClientSecret(String clientSecret) { } public List getGrantType() { + if (grantType == null) { + grantType = new ArrayList<>(); + } return grantType; } @@ -433,6 +446,9 @@ public void setOpDiscoveryPath(String opDiscoveryPath) { } public List getClaimsRedirectUri() { + if (claimsRedirectUri == null) { + claimsRedirectUri = new ArrayList<>(); + } return claimsRedirectUri; } @@ -441,6 +457,9 @@ public void setClaimsRedirectUri(List claimsRedirectUri) { } public List getRedirectUris() { + if (redirectUris == null) { + redirectUris = new ArrayList<>(); + } return redirectUris; } @@ -449,6 +468,9 @@ public void setRedirectUris(List redirectUris) { } public List getResponseTypes() { + if (responseTypes == null) { + responseTypes = new ArrayList<>(); + } return responseTypes; } @@ -457,6 +479,9 @@ public void setResponseTypes(List responseTypes) { } public List getScope() { + if (scope == null) { + scope = new ArrayList<>(); + } return scope; } @@ -465,6 +490,9 @@ public void setScope(List scope) { } public List getUiLocales() { + if (uiLocales == null) { + uiLocales = new ArrayList<>(); + } return uiLocales; } From 15a659366a02e05ac7c67ae8536ee772436d5620 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 12 Oct 2018 22:01:05 +0300 Subject: [PATCH 066/230] linked to master --- LICENSE | 101 +------------------------------------------------------- 1 file changed, 1 insertion(+), 100 deletions(-) diff --git a/LICENSE b/LICENSE index 15536678b..46c372e56 100644 --- a/LICENSE +++ b/LICENSE @@ -1,100 +1 @@ -OXD License - -IMPORTANT - READ CAREFULLY: This License Agreement is a legal agreement between You and Gluu, Inc. Read it carefully before -completing the installation process and using the Software. It provides a license to use the Software and contains warranty -information and liability disclaimers. BY INSTALLING, COPYING OR OTHERWISE USING THE SOFTWARE, YOU ARE CONFIRMING YOUR -ACCEPTANCE OF THE SOFTWARE AND AGREEING TO BECOME BOUND BY THE TERMS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT INSTALL -OR USE THE PRODUCT. The Software is owned by Gluu, Inc. and/or its licensors and is protected by copyright laws and -international copyright treaties, as well as other intellectual property laws and treaties. - -1. DEFINITIONS. - a. "Vendor" means Gluu, Inc. - b. "You", "Your" means you and your company. - c. "Software" means the product provided to You, which includes computer software and may include associated media, printed - materials, and "online" or electronic documentation. - -2. OWNERSHIP. The Software is owned and copyrighted by Vendor and/or its licensors. Your license confers no title or -ownership in the Software and is not a sale of any rights in the Software. - -3. GRANT OF LICENSE. Vendor grants You the following rights provided You comply with all terms and conditions of this -agreement. For each license You have acquired for the Software: - a. You are granted a non-exclusive right to use and install the Software. - b. You may modify the configuration files (if applicable). - c. You may read the source and download a copy for the pupose of research and development. - -4. RESTRICTED USE. - a. You agree to use reasonable efforts to prevent unauthorized copying of the Software. - b. You may not disable any licensing or control features of the Software or allow the Software to be used with such features - disabled. - c. You may not share, rent, or lease Your right to use the Software. - d. You may not modify, sublicense, copy, rent, sell, distribute or transfer any part of the Software except as provided in - this Agreement. - e. You may not translate, create derivative works, or otherwise convert the Software for any reason. - f. You may not use the Software for any purpose that is unlawful. - g. You many not use data (or graphs) generated by this Software in unlawful activities. - h. You may not use the Software, data or reports to assist in the generation of unsolicited email (spam). This includes - the collection of email addresses or personal details. - -5. ADDITIONAL SOFTWARE This license applies to updates, upgrades, plug-ins and any other additions to the original Software -provided by Vendor, unless Vendor provides other terms along with the additional software. - -6. 3RD PARTY SERVICES This Software may make use of, or have the ability to make use of, link to, or integrate with the Gluu -Server which in turn could use 3rd party content or services. The availability of the content or services is at the sole -discretion of the 3rd party service providers and may be subject to usage agreements and other restrictions. You will ensure -that you abide by the agreements and restrictions of these 3rd party content or service providers. You furthermore agree to -indemnify and save Vendor and its licensors from all claims, damages, and expenses of whatever nature that may be made -against Vendor and its licensors by 3rd party content and service providers as a result of Your use of the Software. - -7. REGISTRATION. The software will electronically register itself during installation to confirm that You have entered a -valid "License Key". The registration process only sends the license information that You've entered (License key) and -information about the software installed (Program ID, Version, Checksum and selected Network Interface MAC address). No other -information is sent. - -8. UPGRADES. If this copy of the software is an upgrade from an earlier version of the software, it is provided to You on a -license exchange basis. Your use of the Software upgrade is subject to the terms of this license, and You agree by Your -installation and use of this copy of the Software to voluntarily terminate Your earlier license and that You will not -continue to use the earlier version of the Software or transfer it to another person or entity. - -9. TRANSFER. You cannot transfer the Software and Your rights under this license to another party. - -10. SUBLICENSING. You may not sublicense the Software and Your rights under this license to another party - -11. TERMINATION. Vendor may terminate Your license if You do not abide by the license terms or if You have not paid applicable -license fees. Termination of the license may include, but not be limited to, marking the License Key as invalid to prevent -further installations or usage. Upon termination of license, You shall immediately discontinue the use of the Software -and shall within ten (10) days return to Vendor all copies of the Software or confirm that You have destroyed all copies of it. -Your obligations to pay accrued charges and fees, if any, shall survive any termination of this Agreement. Vendor's third party -licensors may protect their rights in the event of any violation of the terms and conditions of this license. You agree to -indemnify Vendor and its licensors for reasonable attorney fees in enforcing its rights pursuant to this license. - -12. DISCLAIMER OF WARRANTY. The Software is provided on an "AS IS" basis, without warranty of any kind, including, without -limitation, the warranties of merchantability, fitness for a particular purpose and non- infringement. The entire risk as to -the quality and performance of the Software is borne by You. Should the Software prove defective, You, not Vendor or its -licensors, assume the entire cost of any service and repair. If the Software is intended to link to, extract content from or -otherwise integrate with a third party service, Vendor makes no representation or warranty that Your particular use of the -Software is or will continue to be authorized by law in Your jurisdiction or that the third party service will continue to be -available to You. This disclaimer of warranty constitutes an essential part of the agreement. - -13. LIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, TORT, CONTRACT, OR OTHERWISE, SHALL VENDOR OR -ITS LICENSORS BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL, OR CONSEQUENTIAL DAMAGES -OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR WORK STOPPAGE, COMPUTER FAILURE OR LOSS OF REVENUES, PROFITS, -GOODWILL, USE, DATA OR OTHER INTANGIBLE OR ECONOMIC LOSSES. IN NO EVENT WILL VENDOR OR ITS LICENSORS BE LIABLE FOR ANY -DAMAGES IN EXCESS OF THE AMOUNT PAID TO LICENSE THE SOFTWARE, EVEN IF YOU OR ANY OTHER PARTY SHALL HAVE INFORMED VENDOR OR ITS -LICENSORS OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM. NO CLAIM, REGARDLESS OF FORM, MAY BE MADE OR ACTION BROUGHT BY -YOU MORE THAN ONE YEAR AFTER THE BASIS FOR THE CLAIM BECOMES KNOWN TO THE PARTY ASSERTING IT. - -14. APPLICABLE LAW. This license shall be interpreted in accordance with the laws of the State of Texas. Any disputes arising -out of this license shall be adjudicated in a court of competent jurisdiction in the State of Texas. - -15. GOVERNING LANGUAGE. Any translation of this License is done for local requirements and in the event of a dispute between -the English and any non-English versions, the English version of this License shall govern. - -16. ENTIRE AGREEMENT. This license constitutes the entire agreement between the parties relating to the Software and supersedes -any proposal or prior agreement, oral or written, and any other communication relating to the subject matter of this license. -Any conflict between the terms of this License Agreement and any Purchase Order, invoice, or representation shall be resolved -in favor of the terms of this License Agreement. In the event that any clause or portion of any such clause is declared invalid -for any reason, such finding shall not affect the enforceability of the remaining portions of this License and the -unenforceable clause shall be severed from this license. Any amendment to this agreement must be in writing and signed by -both parties. - - +https://github.com/GluuFederation/oxd/blob/master/LICENSE \ No newline at end of file From 774881407fad1c70efa8d5628bb3fafbd4e5f76f Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 17 Oct 2018 15:10:38 +0300 Subject: [PATCH 067/230] #199 : fixed path to configuration path in lsox.bat and oxd-start.sh. --- oxd-server/src/main/bin/lsox.sh | 2 +- oxd-server/src/main/bin/oxd-start.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/bin/lsox.sh b/oxd-server/src/main/bin/lsox.sh index 83893ca10..90bec6033 100644 --- a/oxd-server/src/main/bin/lsox.sh +++ b/oxd-server/src/main/bin/lsox.sh @@ -2,7 +2,7 @@ # Please run it with JDK 1.6 or higher BASEDIR=$(dirname $0) -CONF=$BASEDIR/../conf/oxd-conf.json +CONF=/etc/oxd/oxd-server/oxd-conf.json echo BASEDIR=$BASEDIR echo CONF=$CONF diff --git a/oxd-server/src/main/bin/oxd-start.sh b/oxd-server/src/main/bin/oxd-start.sh index 5812a515c..96165a6b6 100644 --- a/oxd-server/src/main/bin/oxd-start.sh +++ b/oxd-server/src/main/bin/oxd-start.sh @@ -2,7 +2,7 @@ # Please run it with JDK 1.6 or higher BASEDIR=$(dirname $0) -CONF=$BASEDIR/../conf/oxd-conf.json +CONF=/etc/oxd/oxd-server/oxd-conf.json echo BASEDIR=$BASEDIR echo CONF=$CONF From d9604164cb75049db7bf1a390d808cafbccd005c Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 18 Oct 2018 09:21:53 +0300 Subject: [PATCH 068/230] fixed typo in error message --- .../src/main/java/org/xdi/oxd/common/ErrorResponseCode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java index 5ef87783d..5376d8074 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java @@ -45,7 +45,7 @@ public enum ErrorResponseCode { RPT_NOT_AUTHORIZED("rpt_not_authorized", "Unable to authorize RPT."), UNSUPPORTED_OPERATION("unsupported_operation", "Operation is not supported by server error."), INVALID_OP_HOST("invalid_op_host", "Invalid op_host (empty or blank)."), - NO_SETUP_CLIENT_FOR_OXD_ID("no_setup_client_for_oxd_id", "There are no setup client for given oxd_id. Please obtain oxd_id via setup_client command in order to force protection_access_token validation."), + NO_SETUP_CLIENT_FOR_OXD_ID("no_setup_client_for_oxd_id", "There is no setup client for given oxd_id. Please obtain oxd_id via setup_client command in order to force protection_access_token validation."), BLANK_PROTECTION_ACCESS_TOKEN("blank_protection_access_token", "protection_access_token is blank. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), INVALID_PROTECTION_ACCESS_TOKEN("invalid_protection_access_token", "Invalid protection_access_token. Command is protected by protection_access_token, please provide valid token or otherwise switch off protection in configuration with protect_commands_with_access_token=false"), NO_CLIENT_ID_IN_INTROSPECTION_RESPONSE("invalid_introspection_response", "AS returned introspection response with empty/blank client_id which is required by oxd. Please check your AS installation and make sure AS return client_id for introspection call (CE 3.1.0 or later)."), From fdd85506f177856c5e9dd74c006f304be609e965 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 18 Oct 2018 10:08:15 +0300 Subject: [PATCH 069/230] #199 : added also name to during `oxls.sh --list` --- .../src/main/java/org/xdi/oxd/server/Cli.java | 25 ++++++++-- .../org/xdi/oxd/server/op/GetRpOperation.java | 12 +++-- .../org/xdi/oxd/server/service/MinimumRp.java | 49 +++++++++++++++++++ .../java/org/xdi/oxd/server/service/Rp.java | 4 ++ 4 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/service/MinimumRp.java diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 61b8aff02..2a58e0d14 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -17,9 +17,11 @@ import org.xdi.oxd.common.response.RemoveSiteResponse; import org.xdi.oxd.server.persistence.PersistenceService; import org.xdi.oxd.server.service.ConfigurationService; +import org.xdi.oxd.server.service.Rp; import org.xdi.oxd.server.service.RpService; import java.io.IOException; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -49,8 +51,15 @@ public static void main(String[] args) { // list if (cmd.hasOption("l")) { - for (String oxdIdKey : rpService.getRps().keySet()) { - System.out.println(oxdIdKey); + final Collection values = rpService.getRps().values(); + if (values.isEmpty()) { + System.out.println("There are no any entries yet in database."); + return; + } + + System.out.println("oxd_id client_name"); + for (Rp rp : values) { + System.out.println(String.format("%s %s", rp.getOxdId(), rp.getClientName() != null ? rp.getClientName() : "")); } return; } @@ -119,9 +128,17 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { GetRpResponse resp = client.send(new Command(CommandType.GET_RP).setParamsObject(params)).dataAsResponse(GetRpResponse.class); if (resp.getNode() instanceof ArrayNode) { - Iterator elements = ((ArrayNode) resp.getNode()).getElements(); + final ArrayNode arrayNode = (ArrayNode) resp.getNode(); + if (arrayNode.size() == 0) { + System.out.println("There are no any entries yet in database."); + return; + } + + Iterator elements = arrayNode.getElements(); + System.out.println("oxd_id client_name"); while (elements.hasNext()) { - System.out.println(sanitizeOutput(elements.next().toString())); + final JsonNode element = elements.next(); + System.out.println(String.format("%s %s", element.get("oxd_id").asText(), element.get("client_name").asText())); } } else { System.out.println(resp.getNode()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java index 7d1bd24c4..559748367 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java @@ -8,10 +8,11 @@ import org.xdi.oxd.common.params.GetRpParams; import org.xdi.oxd.common.response.GetRpResponse; import org.xdi.oxd.rs.protect.Jackson; +import org.xdi.oxd.server.service.MinimumRp; import org.xdi.oxd.server.service.Rp; -import java.util.HashSet; -import java.util.Set; +import java.util.ArrayList; +import java.util.List; /** * @author yuriyz @@ -33,8 +34,11 @@ protected GetRpOperation(Command command, Injector injector) { @Override public CommandResponse execute(GetRpParams params) { if (params.getList() != null && params.getList()) { - Set oxdIds = getRpService().getRps().keySet(); - return okResponse(new GetRpResponse(Jackson.createJsonMapper().valueToTree(new HashSet<>(oxdIds)))); + List rps = new ArrayList<>(); + for (Rp rp : getRpService().getRps().values()) { + rps.add(rp.asMinimumRp()); + } + return okResponse(new GetRpResponse(Jackson.createJsonMapper().valueToTree(rps))); } Rp rp = getRpService().getRp(params.getOxdId()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/MinimumRp.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/MinimumRp.java new file mode 100644 index 000000000..2f6ee1aae --- /dev/null +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/MinimumRp.java @@ -0,0 +1,49 @@ +package org.xdi.oxd.server.service; + +import org.codehaus.jackson.annotate.JsonProperty; + +import java.io.Serializable; + +/** + * @author Yuriy Zabrovarnyy + */ +public class MinimumRp implements Serializable { + + @JsonProperty(value = "oxd_id") + private String oxdId; + + @JsonProperty(value = "client_name") + private String clientName; + + public MinimumRp() { + } + + public MinimumRp(String oxdId, String clientName) { + this.oxdId = oxdId; + this.clientName = clientName; + } + + public String getOxdId() { + return oxdId; + } + + public void setOxdId(String oxdId) { + this.oxdId = oxdId; + } + + public String getClientName() { + return clientName; + } + + public void setClientName(String clientName) { + this.clientName = clientName; + } + + @Override + public String toString() { + return "MinimumRp{" + + "oxdId='" + oxdId + '\'' + + ", clientName='" + clientName + '\'' + + '}'; + } +} diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java index 263ea29ed..8984a99bb 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java @@ -607,6 +607,10 @@ public void setSetupClientId(String setupClientId) { this.setupClientId = setupClientId; } + public MinimumRp asMinimumRp() { + return new MinimumRp(oxdId, clientName); + } + @Override public String toString() { return "Rp{" + From 2e76e331d6241e351c578b228550474d0691e9b1 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:21:38 +0400 Subject: [PATCH 070/230] Update changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 1a1559a97..b94c795fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -oxd-server-3.1.4 (1-1~trusty+Ub14.04) trusty; urgency=low +oxd-server (3.1.4-1~trusty+Ub14.04) trusty; urgency=low * Initial release (Closes: #1232) From 43b32645eb01d4e8f4abfd6e718c199273733710 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:23:58 +0400 Subject: [PATCH 071/230] Update control --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index de6c3f207..1e8d1f4a8 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: oxd-server-3.1.4 +Source: oxd-server Section: java Priority: optional Maintainer: Adrian Alves @@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 8.0.0), Standards-Version: 3.9.5 Homepage: http://www.gluu.org -Package: oxd-server-3.1.4 +Package: oxd-server Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, From 33c67f4c1e9c74d03311c8a36859cdced323a312 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:26:48 +0400 Subject: [PATCH 072/230] Update postinst --- debian/postinst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/postinst b/debian/postinst index 83a1a29b6..c92b498f6 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,6 +1,6 @@ #!/bin/bash -/etc/init.d/oxd-server-3.1.4 stop > /dev/null 2>&1 +/etc/init.d/oxd-server stop > /dev/null 2>&1 /etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 @@ -14,12 +14,12 @@ if [ $? -ne 0 ]; then fi #chown root:gluu /var/log/oxd-server.log 2>&1 -chown root:root /etc/default/oxd-server-3.1.4 2>&1 +chown root:root /etc/default/oxd-server 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 -chmod 644 /etc/default/oxd-server-3.1.4 2>&1 +chmod 644 /etc/default/oxd-server 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 From 775e5dcd243f8a3da4f2705c99a0826038f1ec8a Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:28:56 +0400 Subject: [PATCH 073/230] Update rules --- debian/rules | 50 +++++++++++++++++++++++++------------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/debian/rules b/debian/rules index 8a28b3d01..434d4fe21 100755 --- a/debian/rules +++ b/debian/rules @@ -18,31 +18,31 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/conf/ - mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/bin/ - mkdir -p debian/oxd-server-3.1.4/opt/oxd-server/lib/ - mkdir -p debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ - cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server-3.1.4/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server-3.1.4/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/log4j.xml debian/oxd-server-3.1.4/opt/oxd-server/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server-3.1.4/opt/oxd-server/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server-3.1.4/opt/oxd-server/bin/ - cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server-3.1.4/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar - cp oxd-https-extension/oxd-https.keystore debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ - cp oxd-https-extension/oxd-https.yml debian/oxd-server-3.1.4/opt/oxd-https-extension/lib/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server-3.1.4/opt/oxd-server/lib/ - mkdir -p debian/oxd-server-3.1.4/var/log/ - mkdir -p debian/oxd-server-3.1.4/etc/oxd/oxd-server/ - mkdir -p debian/oxd-server-3.1.4/etc/default/ - cp -a debian/oxd-server-3.1.4/opt/oxd-server/conf/* debian/oxd-server-3.1.4/etc/oxd/oxd-server/. - #cp -a logs/oxd-server.log debian/oxd-server-3.1.4/var/log/ - cp -a debian/oxd-server-default debian/oxd-server-3.1.4/etc/default/oxd-server-3.1.4 - cp -a debian/oxd-https-extension-default debian/oxd-server-3.1.4/etc/default/oxd-https-extension - rm -rf debian/oxd-server-3.1.4/opt/oxd-server/conf + mkdir -p debian/oxd-server/opt/oxd-server/conf/ + mkdir -p debian/oxd-server/opt/oxd-server/bin/ + mkdir -p debian/oxd-server/opt/oxd-server/lib/ + mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ + cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ + cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ + cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ + cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ + mkdir -p debian/oxd-server/var/log/ + mkdir -p debian/oxd-server/etc/oxd/oxd-server/ + mkdir -p debian/oxd-server/etc/default/ + cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. + #cp -a logs/oxd-server.log debian/oxd-server/var/log/ + cp -a debian/oxd-server-default debian/oxd-server/etc/default/oxd-server + cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension + rm -rf debian/oxd-server/opt/oxd-server/conf override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/oxd-start.sh - chmod 755 debian/oxd-server-3.1.4/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server-3.1.4/etc/default/oxd-server-3.1.4 + chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh + chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh + chmod 644 debian/oxd-server/etc/default/oxd-server From dac8dfd07d09c256b16cf81d5397b0e2ce4b486c Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:30:13 +0400 Subject: [PATCH 074/230] Create oxd-server.init.d --- debian/oxd-server.init.d | 586 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 586 insertions(+) create mode 100644 debian/oxd-server.init.d diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d new file mode 100644 index 000000000..3fb95badb --- /dev/null +++ b/debian/oxd-server.init.d @@ -0,0 +1,586 @@ +#!/usr/bin/env bash + +# LSB Tags +### BEGIN INIT INFO +# Provides: oxd-server +# Required-Start: $local_fs $network +# Required-Stop: $local_fs $network +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: oxd-server start script. +# Description: Start oxd server. +### END INIT INFO + +# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). + +################################################## +# Set the name which is used by other variables. +# Defaults to the file name without extension. +################################################## +NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') + +# To get the service to restart correctly on reboot, uncomment below (3 lines): +# ======================== +# chkconfig: 3 99 99 +# description: oxd server +# processname: oxd-server +# ======================== + +# Configuration files +# +# /etc/default/$NAME +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) +# If it exists, this is read at the start of script. It may perform any +# sequence of shell commands, like setting relevant environment variables. +# +# The files will be checked for existence before being passed to oxd-server. +# +# Configuration variables +# +# JAVA +# Command to invoke Java. If not set, java (from the PATH) will be used. +# +# JAVA_OPTIONS +# Extra options to pass to the JVM +# +# OXD_HOME +# Where oxd is installed. If not set, the script will try go +# guess it by looking at the invocation path for the script +# +# OXD_BASE +# Where your oxd server base directory is. If not set, the value from +# $OXD_HOME will be used. +# +# OXD_RUN +# Where the $NAME.pid file should be stored. It defaults to the +# first available of /var/run, /usr/var/run OXD_BASE and /tmp +# if not set. +# +# OXD_PID_FILE +# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid +# +# OXD_ARGS +# The default arguments to pass to oxd-server. +# +# OXD_USER +# if set, then used as a username to run the server as +# +# OXD_SHELL +# If set, then used as the shell by su when starting the server. Will have +# no effect if start-stop-daemon exists. Useful when OXD_USER does not +# have shell access, e.g. /bin/false +# +# OXD_INIT_LOG +SERVICE_NAME="oxd-server" +OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log + +usage() +{ + echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " + exit 1 +} + +[ $# -gt 0 ] || usage + + +################################################## +# Some utility functions +################################################## +findDirectory() +{ + local L OP=$1 + shift + for L in "$@"; do + [ "$OP" "$L" ] || continue + printf %s "$L" + break + done +} + +running() +{ + if [ -f "$1" ] + then + local PID=$(cat "$1" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null + return + fi + rm -f "$1" + return 1 +} + +started() +{ + # wait for 60s to see "STARTED" in PID file + for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 + do + sleep 4 + [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 + [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 + [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 + local PID=$(cat "$2" 2>/dev/null) || return 1 + kill -0 "$PID" 2>/dev/null || return 1 + echo -n ". " + done + + return 1; +} + + +readConfig() +{ + (( DEBUG )) && echo "Reading $1.." + source "$1" +} + + + +################################################## +# Get the action & configs +################################################## +CONFIGS=() +NO_START=0 +DEBUG=0 + +while [[ $1 = -* ]]; do + case $1 in + -d) DEBUG=1 ;; + esac + shift +done +ACTION=$1 +shift + +################################################## +# Read any configuration files +################################################## +ETC=/etc +if [ $UID != 0 ] +then + ETC=$HOME/etc +fi + +for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do + if [ -f "$CONFIG" ] ; then + readConfig "$CONFIG" + fi +done + + +################################################## +# Set tmp if not already set. +################################################## +TMPDIR=${TMPDIR:-/tmp} + +################################################## +# oxd-server's hallmark +################################################## +OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" + + +################################################## +# Try to determine OXD_HOME if not set +################################################## +if [ -z "$OXD_HOME" ] +then + OXD_SH=$0 + case "$OXD_SH" in + /*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; + ./*) OXD_HOME=.. ;; + */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; + */*) OXD_HOME=. ;; + *) OXD_HOME=.. ;; + esac + + if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] + then + OXD_HOME= + fi +fi + + +################################################## +# No OXD_HOME yet? We're out of luck! +################################################## +if [ -z "$OXD_HOME" ]; then + echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" + exit 1 +fi + +cd "$OXD_HOME" +OXD_HOME=$PWD + + +################################################## +# Set OXD_BASE +################################################## +if [ -z "$OXD_BASE" ]; then + OXD_BASE=$OXD_HOME +fi + +cd "$OXD_BASE" +OXD_BASE=$PWD + + +##################################################### +# Check that oxd server is where we think it is +##################################################### +if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] +then + echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" + echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" + exit 1 +fi + +##################################################### +# Find a location for the pid file +##################################################### +if [ -z "$OXD_RUN" ] +then + OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) +fi + +##################################################### +# Find a pid and state file +##################################################### +if [ -z "$OXD_PID_FILE" ] +then + OXD_PID_FILE="$OXD_RUN/${NAME}.pid" +fi + +get_pid() { + if [ -f $OXD_PID_FILE ]; then + PID_NUM=$(cat $OXD_PID_FILE) + echo "$PID_NUM" + else + PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" + ###For one more possible bug, find and kill oxd + if [ "x$PID_NUM" != "x" ]; then + echo "$PID_NUM" + fi + fi +} + +if [ -z "$OXD_STATE" ] +then + OXD_STATE=$OXD_BASE/${NAME}.state +fi + +case "`uname`" in +CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; +esac + + +OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") + +################################################## +# Setup JAVA if unset +################################################## +if [ -z "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ ! -f "$JAVA" ] +then + JAVA=$(which java) +fi + +if [ -z "$JAVA" ] +then + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + exit 1 +fi + +##################################################### +# See if OXD_LOGS is defined +##################################################### +if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] +then + OXD_LOGS=$OXD_BASE/logs +fi +if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] +then + OXD_LOGS=$OXD_HOME/logs +fi +if [ "$OXD_LOGS" ] +then + + case "`uname`" in + CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; + esac + + JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") +fi + +##################################################### +# Are we running on Windows? Could be, with Cygwin/NT. +##################################################### +case "`uname`" in +CYGWIN*) PATH_SEPARATOR=";";; +*) PATH_SEPARATOR=":";; +esac + + +##################################################### +# Add oxd server properties to Java VM options. +##################################################### + +case "`uname`" in +CYGWIN*) +OXD_HOME="`cygpath -w $OXD_HOME`" +OXD_BASE="`cygpath -w $OXD_BASE`" +TMPDIR="`cygpath -w $TMPDIR`" +;; +esac + +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") + +##################################################### +# This is how the oxd server will be started +##################################################### + +OXD_START="org.xdi.oxd.server.ServerLauncher" + +case "`uname`" in +CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; +esac + +RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) +RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) + +##################################################### +# Comment these out after you're happy with what +# the script is doing. +##################################################### +if (( DEBUG )) +then + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "JAVA = $JAVA" + echo "RUN_CMD = ${RUN_CMD[*]}" +fi +dip_in_logs() { + if [ ! -f $OXD_INIT_LOG ]; then + sleep 10 + fi + echo "Checking logs for possible errors:" + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + while true; + do + if [ "x$INIT_START_STATUS" != "x" ]; then + if [ "x$PREV_START_STATUS" = "x" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + fi + fi + if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then + PREV_START_STATUS=$INIT_START_STATUS + sleep 10 + INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` + else + break; + fi + done +} + +do_start () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" = "x" ]; then + echo "Starting $SERVICE_NAME:" + + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 + then + unset CH_USER + if [ -n "$OXD_USER" ] + then + CH_USER="-c$OXD_USER" + fi + start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + dip_in_logs + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some error encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + + fi + chown "$OXD_USER" "$OXD_PID_FILE" + else + if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] + then + unset SU_SHELL + if [ "$OXD_SHELL" ] + then + SU_SHELL="-s $OXD_SHELL" + fi + + touch "$OXD_PID_FILE" + chown "$OXD_USER" "$OXD_PID_FILE" + # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. + su - "$OXD_USER" $SU_SHELL -c " + exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + disown \$! + echo \$! > '$OXD_PID_FILE'" + else + "${RUN_CMD[@]}" > /dev/null & + disown $! + echo $! > "$OXD_PID_FILE" + fi + fi + echo "PID: [`get_pid`]" + echo "OK `date`" + else + echo "$SERVICE_NAME is already running ..." + echo "PID: [$PID_NUM]" + exit 1 + fi +} + +do_stop () { + PID_NUM=`get_pid` + if [ "x$PID_NUM" != "x" ]; then + echo -n "Stopping $SERVICE_NAME: " + if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP + + TIMEOUT=30 + while running "$OXD_PID_FILE"; do + if (( TIMEOUT-- == 0 )); then + start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL + fi + + sleep 1 + done + else + if [ ! -f "$OXD_PID_FILE" ] ; then + echo "ERROR: no pid found at $OXD_PID_FILE" + exit 1 + fi + + PID=$(cat "$OXD_PID_FILE" 2>/dev/null) + if [ -z "$PID" ] ; then + echo "ERROR: no pid id found in $OXD_PID_FILE" + exit 1 + fi + kill "$PID" 2>/dev/null + + TIMEOUT=30 + while running $OXD_PID_FILE; do + if (( TIMEOUT-- == 0 )); then + kill -KILL "$PID" 2>/dev/null + fi + + sleep 1 + done + fi + + rm -f "$OXD_PID_FILE" + rm -f "$OXD_STATE" + echo OK + else + echo "$SERVICE_NAME is not running ..." + exit 1 + fi +} +################################################## +# Do the action +################################################## +case "$ACTION" in + start) + do_start + ;; + + stop) + do_stop + ;; + + restart) + OXD_SH=$0 + > "$OXD_STATE" + + "$OXD_SH" stop "$@" + "$OXD_SH" start "$@" + + ;; + + supervise) + # + # Under control of daemontools supervise monitor which + # handles restarts and shutdowns via the svc program. + # + exec "${RUN_CMD[@]}" + + ;; + + run|demo) + echo "Running oxd server: " + + if running "$OXD_PID_FILE" + then + echo Already Running $(cat "$OXD_PID_FILE")! + exit 1 + fi + + exec "${RUN_CMD[@]}" + ;; + + check|status) + if running "$OXD_PID_FILE" + then + echo "oxd server running pid=$(< "$OXD_PID_FILE")" + else + echo "oxd server NOT running" + fi + echo + echo "OXD_HOME = $OXD_HOME" + echo "OXD_BASE = $OXD_BASE" + echo "OXD_CONF = $OXD_CONF" + echo "OXD_PID_FILE = $OXD_PID_FILE" + echo "OXD_START = $OXD_START" + echo "OXD_LOGS = $OXD_LOGS" + echo "OXD_STATE = $OXD_STATE" + echo "CLASSPATH = $CLASSPATH" + echo "JAVA = $JAVA" + echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" + echo "OXD_ARGS = ${OXD_ARGS[*]}" + echo "RUN_CMD = ${RUN_CMD[*]}" + echo + + if running "$OXD_PID_FILE" + then + exit 0 + fi + exit 1 + + ;; + + *) + usage + + ;; +esac + +exit 0 From 79c6052592f24b72a788912a3fba814f23e3a9c7 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:30:28 +0400 Subject: [PATCH 075/230] Delete oxd-server-3.1.4.init.d --- debian/oxd-server-3.1.4.init.d | 586 --------------------------------- 1 file changed, 586 deletions(-) delete mode 100644 debian/oxd-server-3.1.4.init.d diff --git a/debian/oxd-server-3.1.4.init.d b/debian/oxd-server-3.1.4.init.d deleted file mode 100644 index 3fb95badb..000000000 --- a/debian/oxd-server-3.1.4.init.d +++ /dev/null @@ -1,586 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID_FILE -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# -# OXD_INIT_LOG -SERVICE_NAME="oxd-server" -OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID_FILE" ] -then - OXD_PID_FILE="$OXD_RUN/${NAME}.pid" -fi - -get_pid() { - if [ -f $OXD_PID_FILE ]; then - PID_NUM=$(cat $OXD_PID_FILE) - echo "$PID_NUM" - else - PID_NUM="`ps -eaf|grep -i java|grep -v grep|grep -i 'oxd-conf.json'|awk '{print $2}'`" - ###For one more possible bug, find and kill oxd - if [ "x$PID_NUM" != "x" ]; then - echo "$PID_NUM" - fi - fi -} - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ ! -f "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi -dip_in_logs() { - if [ ! -f $OXD_INIT_LOG ]; then - sleep 10 - fi - echo "Checking logs for possible errors:" - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - while true; - do - if [ "x$INIT_START_STATUS" != "x" ]; then - if [ "x$PREV_START_STATUS" = "x" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - fi - fi - if [ "$INIT_START_STATUS" != "$PREV_START_STATUS" ]; then - PREV_START_STATUS=$INIT_START_STATUS - sleep 10 - INIT_START_STATUS=`tail -n 1 $OXD_INIT_LOG` - else - break; - fi - done -} - -do_start () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" = "x" ]; then - echo "Starting $SERVICE_NAME:" - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - dip_in_logs - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` - if [ "x$START_STATUS" = "x" ]; then - ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process - if [ "x$ERROR_STATUS" != "x" ]; then - ### Since error occurred, we should remove the PID file at this point itself. - rm -f $OXD_PID_FILE - echo "Some error encountered..." - echo "See log below: " - echo "" - echo "$ERROR_STATUS" - echo "" - echo "For details please check $OXD_INIT_LOG ." - echo "Exiting..." - exit 1 - fi - - fi - chown "$OXD_USER" "$OXD_PID_FILE" - else - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID_FILE" - chown "$OXD_USER" "$OXD_PID_FILE" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID_FILE'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID_FILE" - fi - fi - echo "PID: [`get_pid`]" - echo "OK `date`" - else - echo "$SERVICE_NAME is already running ..." - echo "PID: [$PID_NUM]" - exit 1 - fi -} - -do_stop () { - PID_NUM=`get_pid` - if [ "x$PID_NUM" != "x" ]; then - echo -n "Stopping $SERVICE_NAME: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID_FILE"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID_FILE" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID_FILE" ] ; then - echo "ERROR: no pid found at $OXD_PID_FILE" - exit 1 - fi - - PID=$(cat "$OXD_PID_FILE" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID_FILE" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID_FILE; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID_FILE" - rm -f "$OXD_STATE" - echo OK - else - echo "$SERVICE_NAME is not running ..." - exit 1 - fi -} -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - do_start - ;; - - stop) - do_stop - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID_FILE" - then - echo Already Running $(cat "$OXD_PID_FILE")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID_FILE" - then - echo "oxd server running pid=$(< "$OXD_PID_FILE")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID_FILE = $OXD_PID_FILE" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID_FILE" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From 37527b595f0e19674af60c719952138cf37c8a17 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 19:30:57 +0400 Subject: [PATCH 076/230] Delete oxd-server-3.1.4.init --- oxd-server-3.1.4.init | 528 ------------------------------------------ 1 file changed, 528 deletions(-) delete mode 100644 oxd-server-3.1.4.init diff --git a/oxd-server-3.1.4.init b/oxd-server-3.1.4.init deleted file mode 100644 index 16228d6eb..000000000 --- a/oxd-server-3.1.4.init +++ /dev/null @@ -1,528 +0,0 @@ -#!/usr/bin/env bash - -# LSB Tags -### BEGIN INIT INFO -# Provides: oxd-server -# Required-Start: $local_fs $network -# Required-Stop: $local_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: oxd-server start script. -# Description: Start oxd server. -### END INIT INFO - -# Startup script for oxd-server under *nix systems (it works under NT/cygwin too). - -################################################## -# Set the name which is used by other variables. -# Defaults to the file name without extension. -################################################## -NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') - -# To get the service to restart correctly on reboot, uncomment below (3 lines): -# ======================== -# chkconfig: 3 99 99 -# description: oxd server -# processname: oxd-server -# ======================== - -# Configuration files -# -# /etc/default/$NAME -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# $HOME/.$NAMErc (e.g. $HOME/.oxd-serverrc) -# If it exists, this is read at the start of script. It may perform any -# sequence of shell commands, like setting relevant environment variables. -# -# The files will be checked for existence before being passed to oxd-server. -# -# Configuration variables -# -# JAVA -# Command to invoke Java. If not set, java (from the PATH) will be used. -# -# JAVA_OPTIONS -# Extra options to pass to the JVM -# -# OXD_HOME -# Where oxd is installed. If not set, the script will try go -# guess it by looking at the invocation path for the script -# -# OXD_BASE -# Where your oxd server base directory is. If not set, the value from -# $OXD_HOME will be used. -# -# OXD_RUN -# Where the $NAME.pid file should be stored. It defaults to the -# first available of /var/run, /usr/var/run OXD_BASE and /tmp -# if not set. -# -# OXD_PID -# The oxd-server PID file, defaults to $OXD_RUN/$NAME.pid -# -# OXD_ARGS -# The default arguments to pass to oxd-server. -# -# OXD_USER -# if set, then used as a username to run the server as -# -# OXD_SHELL -# If set, then used as the shell by su when starting the server. Will have -# no effect if start-stop-daemon exists. Useful when OXD_USER does not -# have shell access, e.g. /bin/false -# - -usage() -{ - echo "Usage: ${0##*/} [-d] {start|stop|run|restart|check|supervise} [ CONFIGS ... ] " - exit 1 -} - -[ $# -gt 0 ] || usage - - -################################################## -# Some utility functions -################################################## -findDirectory() -{ - local L OP=$1 - shift - for L in "$@"; do - [ "$OP" "$L" ] || continue - printf %s "$L" - break - done -} - -running() -{ - if [ -f "$1" ] - then - local PID=$(cat "$1" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null - return - fi - rm -f "$1" - return 1 -} - -started() -{ - # wait for 60s to see "STARTED" in PID file - for T in 1 2 3 4 5 6 7 9 10 11 12 13 14 15 - do - sleep 4 - [ -z "$(grep STARTED $1 2>/dev/null)" ] || return 0 - [ -z "$(grep STOPPED $1 2>/dev/null)" ] || return 1 - [ -z "$(grep FAILED $1 2>/dev/null)" ] || return 1 - local PID=$(cat "$2" 2>/dev/null) || return 1 - kill -0 "$PID" 2>/dev/null || return 1 - echo -n ". " - done - - return 1; -} - - -readConfig() -{ - (( DEBUG )) && echo "Reading $1.." - source "$1" -} - - - -################################################## -# Get the action & configs -################################################## -CONFIGS=() -NO_START=0 -DEBUG=0 - -while [[ $1 = -* ]]; do - case $1 in - -d) DEBUG=1 ;; - esac - shift -done -ACTION=$1 -shift - -################################################## -# Read any configuration files -################################################## -ETC=/etc -if [ $UID != 0 ] -then - ETC=$HOME/etc -fi - -for CONFIG in {/etc,~/etc}/default/${NAME}{,9} $HOME/.${NAME}rc; do - if [ -f "$CONFIG" ] ; then - readConfig "$CONFIG" - fi -done - - -################################################## -# Set tmp if not already set. -################################################## -TMPDIR=${TMPDIR:-/tmp} - -################################################## -# oxd-server's hallmark -################################################## -OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" - - -################################################## -# Try to determine OXD_HOME if not set -################################################## -if [ -z "$OXD_HOME" ] -then - OXD_SH=$0 - case "$OXD_SH" in - /*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*/*) OXD_HOME=${OXD_SH%/*/*} ;; - ./*) OXD_HOME=.. ;; - */*/*) OXD_HOME=./${OXD_SH%/*/*} ;; - */*) OXD_HOME=. ;; - *) OXD_HOME=.. ;; - esac - - if [ ! -f "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] - then - OXD_HOME= - fi -fi - - -################################################## -# No OXD_HOME yet? We're out of luck! -################################################## -if [ -z "$OXD_HOME" ]; then - echo "** ERROR: OXD_HOME not set, you need to set it or install in a standard location" - exit 1 -fi - -cd "$OXD_HOME" -OXD_HOME=$PWD - - -################################################## -# Set OXD_BASE -################################################## -if [ -z "$OXD_BASE" ]; then - OXD_BASE=$OXD_HOME -fi - -cd "$OXD_BASE" -OXD_BASE=$PWD - - -##################################################### -# Check that oxd server is where we think it is -##################################################### -if [ ! -r "$OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE" ] -then - echo "** ERROR: Oops! oxd server doesn't appear to be installed in $OXD_HOME" - echo "** ERROR: $OXD_HOME/lib/$OXD_INSTALL_TRACE_FILE is not readable!" - exit 1 -fi - -##################################################### -# Find a location for the pid file -##################################################### -if [ -z "$OXD_RUN" ] -then - OXD_RUN=$(findDirectory -w /var/run /usr/var/run $OXD_BASE /tmp) -fi - -##################################################### -# Find a pid and state file -##################################################### -if [ -z "$OXD_PID" ] -then - OXD_PID="$OXD_RUN/${NAME}.pid" -fi - -if [ -z "$OXD_STATE" ] -then - OXD_STATE=$OXD_BASE/${NAME}.state -fi - -case "`uname`" in -CYGWIN*) OXD_STATE="`cygpath -w $OXD_STATE`";; -esac - - -OXD_ARGS=(${OXD_ARGS[*]} "oxd-server.state=$OXD_STATE") - -################################################## -# Setup JAVA if unset -################################################## -if [ -z "$JAVA" ] -then - JAVA=$(which java) -fi - -if [ -z "$JAVA" ] -then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 - exit 1 -fi - -##################################################### -# See if OXD_LOGS is defined -##################################################### -if [ -z "$OXD_LOGS" ] && [ -d $OXD_BASE/logs ] -then - OXD_LOGS=$OXD_BASE/logs -fi -if [ -z "$OXD_LOGS" ] && [ -d $OXD_HOME/logs ] -then - OXD_LOGS=$OXD_HOME/logs -fi -if [ "$OXD_LOGS" ] -then - - case "`uname`" in - CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; - esac - - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") -fi - -##################################################### -# Are we running on Windows? Could be, with Cygwin/NT. -##################################################### -case "`uname`" in -CYGWIN*) PATH_SEPARATOR=";";; -*) PATH_SEPARATOR=":";; -esac - - -##################################################### -# Add oxd server properties to Java VM options. -##################################################### - -case "`uname`" in -CYGWIN*) -OXD_HOME="`cygpath -w $OXD_HOME`" -OXD_BASE="`cygpath -w $OXD_BASE`" -TMPDIR="`cygpath -w $TMPDIR`" -;; -esac - -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - -##################################################### -# This is how the oxd server will be started -##################################################### - -OXD_START="org.xdi.oxd.server.ServerLauncher" - -case "`uname`" in -CYGWIN*) OXD_START="`cygpath -w $OXD_START`";; -esac - -RUN_ARGS=(${JAVA_OPTIONS[@]} "$OXD_START" ${OXD_ARGS[*]}) -RUN_CMD=("$JAVA" ${RUN_ARGS[@]}) - -##################################################### -# Comment these out after you're happy with what -# the script is doing. -##################################################### -if (( DEBUG )) -then - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "JAVA = $JAVA" - echo "RUN_CMD = ${RUN_CMD[*]}" -fi - -################################################## -# Do the action -################################################## -case "$ACTION" in - start) - echo -n "Starting oxd server: " - - if (( NO_START )); then - echo "Not starting ${NAME} - NO_START=1"; - exit - fi - - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1 - then - unset CH_USER - if [ -n "$OXD_USER" ] - then - CH_USER="-c$OXD_USER" - fi - - start-stop-daemon -S -p"$OXD_PID" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - - else - - if running $OXD_PID - then - echo "Already Running $(cat $OXD_PID)!" - exit 1 - fi - - if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] - then - unset SU_SHELL - if [ "$OXD_SHELL" ] - then - SU_SHELL="-s $OXD_SHELL" - fi - - touch "$OXD_PID" - chown "$OXD_USER" "$OXD_PID" - # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. - su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & - disown \$! - echo \$! > '$OXD_PID'" - else - "${RUN_CMD[@]}" > /dev/null & - disown $! - echo $! > "$OXD_PID" - fi - - fi - - if expr "${OXD_ARGS[*]}" : '.*oxd-server-started.xml.*' >/dev/null - then - if started "$OXD_STATE" "$OXD_PID" - then - echo "OK `date`" - else - echo "FAILED `date`" - exit 1 - fi - else - echo "ok `date`" - fi - - ;; - - stop) - echo -n "Stopping oxd server: " - if [ $UID -eq 0 ] && type start-stop-daemon > /dev/null 2>&1; then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s HUP - - TIMEOUT=30 - while running "$OXD_PID"; do - if (( TIMEOUT-- == 0 )); then - start-stop-daemon -K -p"$OXD_PID" -d"$OXD_HOME" -a "$JAVA" -s KILL - fi - - sleep 1 - done - else - if [ ! -f "$OXD_PID" ] ; then - echo "ERROR: no pid found at $OXD_PID" - exit 1 - fi - - PID=$(cat "$OXD_PID" 2>/dev/null) - if [ -z "$PID" ] ; then - echo "ERROR: no pid id found in $OXD_PID" - exit 1 - fi - kill "$PID" 2>/dev/null - - TIMEOUT=30 - while running $OXD_PID; do - if (( TIMEOUT-- == 0 )); then - kill -KILL "$PID" 2>/dev/null - fi - - sleep 1 - done - fi - - rm -f "$OXD_PID" - rm -f "$OXD_STATE" - echo OK - - ;; - - restart) - OXD_SH=$0 - > "$OXD_STATE" - - "$OXD_SH" stop "$@" - "$OXD_SH" start "$@" - - ;; - - supervise) - # - # Under control of daemontools supervise monitor which - # handles restarts and shutdowns via the svc program. - # - exec "${RUN_CMD[@]}" - - ;; - - run|demo) - echo "Running oxd server: " - - if running "$OXD_PID" - then - echo Already Running $(cat "$OXD_PID")! - exit 1 - fi - - exec "${RUN_CMD[@]}" - ;; - - check|status) - if running "$OXD_PID" - then - echo "oxd server running pid=$(< "$OXD_PID")" - else - echo "oxd server NOT running" - fi - echo - echo "OXD_HOME = $OXD_HOME" - echo "OXD_BASE = $OXD_BASE" - echo "OXD_CONF = $OXD_CONF" - echo "OXD_PID = $OXD_PID" - echo "OXD_START = $OXD_START" - echo "OXD_LOGS = $OXD_LOGS" - echo "OXD_STATE = $OXD_STATE" - echo "CLASSPATH = $CLASSPATH" - echo "JAVA = $JAVA" - echo "JAVA_OPTIONS = ${JAVA_OPTIONS[*]}" - echo "OXD_ARGS = ${OXD_ARGS[*]}" - echo "RUN_CMD = ${RUN_CMD[*]}" - echo - - if running "$OXD_PID" - then - exit 0 - fi - exit 1 - - ;; - - *) - usage - - ;; -esac - -exit 0 From 9093df9b7ea65413b1b5047a8ef1ee4672f7ea2c Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 23:40:12 +0400 Subject: [PATCH 077/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 5da5482f6..763795a83 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -1,5 +1,5 @@ -%define name1 oxd-server-3.1.4 -Name: oxd-server-3.1.4 +%define name1 oxd-server +Name: oxd-server Version: 1 Release: 1.centos6 Summary: plugins for OpenID and UMA @@ -7,11 +7,11 @@ Group: System Environment/Daemons License: MIT URL: http://www.gluu.org Source0: %{name}.tar.gz -Source1: oxd-server-3.1.4.init.d +Source1: oxd-server.init.d Source2: oxd-https-extension Source3: oxd-server-default BuildArch: noarch -Conflicts: oxd-server-3.1.4 +Conflicts: oxd-server %description oxd - OpenID Connect and UMA plugins for @@ -38,7 +38,7 @@ install -m 755 %SOURCE1 %{buildroot}/etc/init.d/%{name1} install -m 755 %SOURCE2 %{buildroot}/etc/init.d/oxd-https-extension install -m 755 %SOURCE1 %{buildroot}/%{_initddir}/%{name1} install -m 755 %SOURCE2 %{buildroot}/%{_initddir}/oxd-https-extension -install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server-3.1.4 +install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/oxd-server/bin install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/oxd-server/bin install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/oxd-server/conf/ @@ -55,13 +55,13 @@ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. -cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-3.1.4 +cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server %clean rm -rf $RPM_BUILD_ROOT %post -chkconfig --add oxd-server-3.1.4 +chkconfig --add oxd-server getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then /usr/sbin/useradd --system --create-home --user-group --shell /bin/bash --home-dir /home/jetty jetty @@ -72,18 +72,18 @@ if [ $? -ne 0 ]; then /usr/sbin/usermod -a -G gluu jetty fi -chown root:root /etc/default/oxd-server-3.1.4 2>&1 +chown root:root /etc/default/oxd-server 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 -chmod 644 /etc/default/oxd-server-3.1.4 2>&1 +chmod 644 /etc/default/oxd-server 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x “/etc/init.d/oxd-server-3.1.4” ] || [ -e “/etc/init/oxd-server.conf” ]; then -service oxd-server-3.1.4 stop || exit $? +if [ -x “/etc/init.d/oxd-server” ] || [ -e “/etc/init/oxd-server.conf” ]; then +service oxd-server stop || exit $? fi -chkconfig --del oxd-server-3.1.4 +chkconfig --del oxd-server %files %defattr(-,root,root,-) @@ -93,7 +93,7 @@ chkconfig --del oxd-server-3.1.4 /etc/init.d/oxd-https-extension %{_initddir}/%{name1} %{_initddir}/oxd-https-extension -/etc/default/oxd-server-3.1.4 +/etc/default/oxd-server /etc/oxd/* /var/log/oxd-server From efe92ed954db59fc992d9f216795e3b0427eb3e8 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 18 Oct 2018 23:43:24 +0400 Subject: [PATCH 078/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 763795a83..f05b52526 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -1,6 +1,6 @@ %define name1 oxd-server Name: oxd-server -Version: 1 +Version: 3.1.4 Release: 1.centos6 Summary: plugins for OpenID and UMA Group: System Environment/Daemons From 39f4df91e6be1212561e32114b455fcfd84365a4 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 19 Oct 2018 11:54:04 +0300 Subject: [PATCH 079/230] #205 : fixed `oxd` scope check for `register_site` command https://github.com/GluuFederation/oxd/issues/205 --- .../java/org/xdi/oxd/server/op/RegisterSiteOperation.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java index ca8ff767e..368f234b5 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java @@ -29,6 +29,7 @@ import org.xdi.oxd.server.Utils; import org.xdi.oxd.server.model.UmaResource; import org.xdi.oxd.server.service.ConfigurationService; +import org.xdi.oxd.server.service.IntrospectionService; import org.xdi.oxd.server.service.Rp; import java.io.IOException; @@ -87,6 +88,9 @@ private void validateAccessToken(String oxdId, RegisterSiteParams params) { final IntrospectionResponse response = getValidationService().introspect(params.getProtectionAccessToken(), oxdId); LOG.trace("introspection: " + response + ", setupClientId: " + rp.getSetupClientId()); + if (!IntrospectionService.getScopes(response).contains("oxd")) { + throw new ErrorResponseException(ErrorResponseCode.PROTECTION_ACCESS_TOKEN_INSUFFICIENT_SCOPE); + } rp.setSetupClientId(response.getClientId()); rp.setSetupOxdId(oxdId); From 656481f4134524cd1dfeaf770526f2fb486ad0e3 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 19 Oct 2018 13:20:45 +0300 Subject: [PATCH 080/230] fixed NPE in CLI From Natalia: Exception in thread "main" java.lang.NullPointerException at org.xdi.oxd.server.Cli.tryToConnectToRunningOxd(Cli.java:141) at org.xdi.oxd.server.Cli.main(Cli.java:91) --- oxd-server/src/main/java/org/xdi/oxd/server/Cli.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 2a58e0d14..b6e2bd5df 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -138,7 +138,9 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { System.out.println("oxd_id client_name"); while (elements.hasNext()) { final JsonNode element = elements.next(); - System.out.println(String.format("%s %s", element.get("oxd_id").asText(), element.get("client_name").asText())); + final JsonNode oxdIdNode = element.get("oxd_id"); + final JsonNode clientNameNode = element.get("client_name"); + System.out.println(String.format("%s %s", oxdIdNode != null ? oxdIdNode.asText() : "", clientNameNode != null ? clientNameNode.asText() : "null")); } } else { System.out.println(resp.getNode()); From d338ead9dbd99d3c37749368ce83f383538ffda6 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Mon, 22 Oct 2018 09:36:27 +0300 Subject: [PATCH 081/230] #199 : print help for case when it failed to connect to running oxd --- oxd-server/src/main/java/org/xdi/oxd/server/Cli.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index b6e2bd5df..0229e2f73 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -168,7 +168,7 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { } return; } - + printHelpAndExit(); } catch (IOException e) { System.out.println("Failed to execute command against oxd-server on port " + port + ", error: " + e.getMessage()); e.printStackTrace(); From 294192768d3dccd37cf4e20d881aca164b918986 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 22 Oct 2018 15:28:26 +0400 Subject: [PATCH 082/230] Update oxd-https-extension --- debian/oxd-https-extension | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-https-extension b/debian/oxd-https-extension index 007a5529d..6950ab870 100755 --- a/debian/oxd-https-extension +++ b/debian/oxd-https-extension @@ -30,7 +30,7 @@ do_start () { do_stop () { if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); - echo "$SERVICE_NAME stoping ..." + echo "$SERVICE_NAME stopping ..." kill $PID; rm $PID_PATH_NAME else From 2b4f5e8833d0923a463ef65f7e1e96e865b078c1 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Mon, 22 Oct 2018 14:48:11 +0300 Subject: [PATCH 083/230] more logs --- oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java b/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java index d3f0c941e..b5e8fc91e 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java @@ -147,8 +147,10 @@ private static void addSecurityProviders() { hasBC = true; } } + LOG.debug("BC registered: " + hasBC); if (!hasBC) { Security.addProvider(new BouncyCastleProvider()); + LOG.debug("Registered BC successfully."); } } } catch (Exception e) { From fd796bf22cfaeed42281bffc2dc1143104aea22d Mon Sep 17 00:00:00 2001 From: David Date: Mon, 22 Oct 2018 19:58:06 +0400 Subject: [PATCH 084/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index f05b52526..ccef09883 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -80,7 +80,7 @@ touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x “/etc/init.d/oxd-server” ] || [ -e “/etc/init/oxd-server.conf” ]; then +if [ -x /etc/init.d/oxd-server ] || [ -e /etc/init/oxd-server.conf ]; then service oxd-server stop || exit $? fi chkconfig --del oxd-server From ed8664219fe85c38a848a026636a0cd8f1bbfb2e Mon Sep 17 00:00:00 2001 From: David Date: Mon, 22 Oct 2018 19:59:06 +0400 Subject: [PATCH 085/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 9773a81d2..0fe3da85b 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -80,7 +80,7 @@ touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x “/etc/init.d/oxd-server-4.0.0” ] || [ -e “/etc/init/oxd-server.conf” ]; then +if [ -x /etc/init.d/oxd-server-4.0.0 ] || [ -e /etc/init/oxd-server.conf ]; then service oxd-server-4.0.0 stop || exit $? fi chkconfig --del oxd-server-4.0.0 From abac0e89bde88293a82f37840103fe01cfcdcd93 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 22 Oct 2018 20:00:44 +0400 Subject: [PATCH 086/230] Update oxd-https-extension --- debian/oxd-https-extension | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-https-extension b/debian/oxd-https-extension index e99a97003..c409e8ea3 100755 --- a/debian/oxd-https-extension +++ b/debian/oxd-https-extension @@ -30,7 +30,7 @@ do_start () { do_stop () { if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); - echo "$SERVICE_NAME stoping ..." + echo "$SERVICE_NAME stopping ..." kill $PID; rm $PID_PATH_NAME else From 2b8f88a9224ecfc952abcf28dfbc5fbd587fd391 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 23 Oct 2018 13:17:24 +0300 Subject: [PATCH 087/230] commented enforcer plugin because it fails with NPE sometimes --- oxd-gen-client/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-gen-client/pom.xml b/oxd-gen-client/pom.xml index a90085b08..e42dc7c72 100644 --- a/oxd-gen-client/pom.xml +++ b/oxd-gen-client/pom.xml @@ -54,7 +54,7 @@ - + org.apache.maven.plugins maven-surefire-plugin From 47fa121809f572d5728b1fd3ccfe609766edb7e8 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 23 Oct 2018 16:09:19 +0300 Subject: [PATCH 088/230] switched uma-rs-resteasy to 3.1.4.Final. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 91d6dda1a..58a4ec83b 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ org.xdi uma-rs-resteasy - 3.1.3-SNAPSHOT + 3.1.4.Final org.xdi From 7d08286515a32fb4927d9652328f7020c8ebdf25 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 19:59:40 +0400 Subject: [PATCH 089/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index ccef09883..1b95a27ae 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -84,6 +84,10 @@ if [ -x /etc/init.d/oxd-server ] || [ -e /etc/init/oxd-server.conf ]; then service oxd-server stop || exit $? fi chkconfig --del oxd-server +if [ -x /etc/init.d/oxd-https-extension ]; then +service oxd-https-extension stop || exit $? +fi +chkconfig --del oxd-https-extension %files %defattr(-,root,root,-) From dad03aad7eb577c3e349a89eb15fb9d98d9e74e9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 20:07:50 +0400 Subject: [PATCH 090/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 0fe3da85b..001d99960 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -84,6 +84,10 @@ if [ -x /etc/init.d/oxd-server-4.0.0 ] || [ -e /etc/init/oxd-server.conf ]; then service oxd-server-4.0.0 stop || exit $? fi chkconfig --del oxd-server-4.0.0 +if [ -x /etc/init.d/oxd-https-extension ]; then +service oxd-https-extension stop || exit $? +fi +chkconfig --del oxd-https-extension %files %defattr(-,root,root,-) From 413b15295c66915f7ca478351156249b6b5de5cc Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 21:00:02 +0400 Subject: [PATCH 091/230] Update oxd-server.init.d --- debian/oxd-server.init.d | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d index 3fb95badb..def5fa16f 100644 --- a/debian/oxd-server.init.d +++ b/debian/oxd-server.init.d @@ -409,14 +409,14 @@ do_start () { start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 dip_in_logs - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then ### Since error occurred, we should remove the PID file at this point itself. rm -f $OXD_PID_FILE - echo "Some error encountered..." + echo "Some errors encountered..." echo "See log below: " echo "" echo "$ERROR_STATUS" @@ -424,6 +424,14 @@ do_start () { echo "For details please check $OXD_INIT_LOG ." echo "Exiting..." exit 1 + else + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 fi fi @@ -444,6 +452,32 @@ do_start () { exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & disown \$! echo \$! > '$OXD_PID_FILE'" + dip_in_logs + START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + else + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + fi else "${RUN_CMD[@]}" > /dev/null & disown $! From 39cdc4d184b814ae1c015ed361b2248d35150a27 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 21:04:22 +0400 Subject: [PATCH 092/230] Update prerm --- debian/prerm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/debian/prerm b/debian/prerm index f11f4e184..1b020320d 100644 --- a/debian/prerm +++ b/debian/prerm @@ -1,2 +1,15 @@ #!/bin/sh -e + +# Stopping oxd-server +if [ -x /etc/init.d/oxd-server ]; then +service oxd-server stop || exit $? +fi +chkconfig --del oxd-server > /dev/null 2>&1 + +# Stopping oxd-https-extension +if [ -x /etc/init.d/oxd-https-extension ]; then +service oxd-https-extension stop || exit $? +fi +chkconfig --del oxd-https-extension > /dev/null 2>&1 + exit 0 From 60c233cb603ccaab97be9c672152647e14be7515 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 22:30:00 +0400 Subject: [PATCH 093/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 1b95a27ae..4789e3ebe 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -81,11 +81,11 @@ chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun if [ -x /etc/init.d/oxd-server ] || [ -e /etc/init/oxd-server.conf ]; then -service oxd-server stop || exit $? +service oxd-server stop > /dev/null 2>&1 fi chkconfig --del oxd-server if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop || exit $? +service oxd-https-extension stop > /dev/null 2>&1 fi chkconfig --del oxd-https-extension From e6d08f9dfcbd0301e66b9f93df9cde8d84bb4ea3 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 23:31:53 +0400 Subject: [PATCH 094/230] Update oxd-server.init.d --- debian/oxd-server.init.d | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d index def5fa16f..0eff480f9 100644 --- a/debian/oxd-server.init.d +++ b/debian/oxd-server.init.d @@ -408,7 +408,8 @@ do_start () { fi start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - dip_in_logs + #dip_in_logs + sleep 2 START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then @@ -452,7 +453,8 @@ do_start () { exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & disown \$! echo \$! > '$OXD_PID_FILE'" - dip_in_logs + #dip_in_logs + sleep 2 START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then From 313b1448370d57471318d696aa25a1d086e247cd Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 23:33:00 +0400 Subject: [PATCH 095/230] Update prerm --- debian/prerm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/prerm b/debian/prerm index 1b020320d..d7000a70e 100644 --- a/debian/prerm +++ b/debian/prerm @@ -2,13 +2,13 @@ # Stopping oxd-server if [ -x /etc/init.d/oxd-server ]; then -service oxd-server stop || exit $? +service oxd-server stop > /dev/null 2>&1 fi chkconfig --del oxd-server > /dev/null 2>&1 # Stopping oxd-https-extension if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop || exit $? +service oxd-https-extension stop > /dev/null 2>&1 fi chkconfig --del oxd-https-extension > /dev/null 2>&1 From f0c2be678a915c05d3168333123a1539e235b9e8 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 23:34:21 +0400 Subject: [PATCH 096/230] Update prerm --- debian/prerm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/debian/prerm b/debian/prerm index f11f4e184..a73f1f89d 100644 --- a/debian/prerm +++ b/debian/prerm @@ -1,2 +1,15 @@ #!/bin/sh -e + +# Stopping oxd-server-4.0.0 +if [ -x /etc/init.d/oxd-server-4.0.0 ]; then +service oxd-server-4.0.0 stop > /dev/null 2>&1 +fi +chkconfig --del oxd-server-4.0.0 > /dev/null 2>&1 + +# Stopping oxd-https-extension +if [ -x /etc/init.d/oxd-https-extension ]; then +service oxd-https-extension stop > /dev/null 2>&1 +fi +chkconfig --del oxd-https-extension > /dev/null 2>&1 + exit 0 From 66cf53a53792d5b05b297592f6ca382cdec54205 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Oct 2018 23:37:11 +0400 Subject: [PATCH 097/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index 001d99960..d4e617408 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -81,11 +81,11 @@ chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun if [ -x /etc/init.d/oxd-server-4.0.0 ] || [ -e /etc/init/oxd-server.conf ]; then -service oxd-server-4.0.0 stop || exit $? +service oxd-server-4.0.0 stop > /dev/null 2>&1 fi chkconfig --del oxd-server-4.0.0 if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop || exit $? +service oxd-https-extension stop > /dev/null 2>&1 fi chkconfig --del oxd-https-extension From 4bce41f74c4e221411a521c41a0df24f27983521 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 00:22:46 +0400 Subject: [PATCH 098/230] Update oxd-server-4.0.init.d --- debian/oxd-server-4.0.init.d | 44 ++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/debian/oxd-server-4.0.init.d b/debian/oxd-server-4.0.init.d index 3fb95badb..0eff480f9 100644 --- a/debian/oxd-server-4.0.init.d +++ b/debian/oxd-server-4.0.init.d @@ -408,15 +408,16 @@ do_start () { fi start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 - dip_in_logs - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` + #dip_in_logs + sleep 2 + START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then ### Since error occurred, we should remove the PID file at this point itself. rm -f $OXD_PID_FILE - echo "Some error encountered..." + echo "Some errors encountered..." echo "See log below: " echo "" echo "$ERROR_STATUS" @@ -424,6 +425,14 @@ do_start () { echo "For details please check $OXD_INIT_LOG ." echo "Exiting..." exit 1 + else + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 fi fi @@ -444,6 +453,33 @@ do_start () { exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & disown \$! echo \$! > '$OXD_PID_FILE'" + #dip_in_logs + sleep 2 + START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + if [ "x$START_STATUS" = "x" ]; then + ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process + if [ "x$ERROR_STATUS" != "x" ]; then + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "See log below: " + echo "" + echo "$ERROR_STATUS" + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + else + ### Since error occurred, we should remove the PID file at this point itself. + rm -f $OXD_PID_FILE + echo "Some errors encountered..." + echo "" + echo "For details please check $OXD_INIT_LOG ." + echo "Exiting..." + exit 1 + fi + fi else "${RUN_CMD[@]}" > /dev/null & disown $! From ad54e2294b39ce1289af3d7993c96cf3b95a6963 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 01:17:40 +0400 Subject: [PATCH 099/230] Update oxd-server.init.d --- debian/oxd-server.init.d | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server.init.d b/debian/oxd-server.init.d index 0eff480f9..ad18e1158 100644 --- a/debian/oxd-server.init.d +++ b/debian/oxd-server.init.d @@ -410,8 +410,8 @@ do_start () { #dip_in_logs sleep 2 - START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 - ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then From a323e0bbab27ff7c8058ca20024939f6f4acbb78 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 01:27:57 +0400 Subject: [PATCH 100/230] Update prerm --- debian/prerm | 2 -- 1 file changed, 2 deletions(-) diff --git a/debian/prerm b/debian/prerm index d7000a70e..f3c7e47da 100644 --- a/debian/prerm +++ b/debian/prerm @@ -4,12 +4,10 @@ if [ -x /etc/init.d/oxd-server ]; then service oxd-server stop > /dev/null 2>&1 fi -chkconfig --del oxd-server > /dev/null 2>&1 # Stopping oxd-https-extension if [ -x /etc/init.d/oxd-https-extension ]; then service oxd-https-extension stop > /dev/null 2>&1 fi -chkconfig --del oxd-https-extension > /dev/null 2>&1 exit 0 From aab1d787e70d4726a4838bc7c7187a3ae13f5264 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 01:32:54 +0400 Subject: [PATCH 101/230] Update oxd-server-4.0.init.d --- debian/oxd-server-4.0.init.d | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server-4.0.init.d b/debian/oxd-server-4.0.init.d index 0eff480f9..ad18e1158 100644 --- a/debian/oxd-server-4.0.init.d +++ b/debian/oxd-server-4.0.init.d @@ -410,8 +410,8 @@ do_start () { #dip_in_logs sleep 2 - START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 - ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then From 0d418766df4d3954d51113c5b915dc1efc7db805 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 09:38:57 +0300 Subject: [PATCH 102/230] #199 : fixed NPE if parameters to oxls.sh is malformed https://github.com/GluuFederation/oxd/issues/199 --- oxd-server/src/main/java/org/xdi/oxd/server/Cli.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 0229e2f73..26f127f0d 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -154,17 +154,21 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { command.setParamsObject(new GetRpParams(oxdId)); GetRpResponse resp = client.send(command).dataAsResponse(GetRpResponse.class); - print(oxdId, resp.getNode()); + if (resp != null) { + print(oxdId, resp.getNode()); + } else { + System.out.println("Failed to fetch entry from database, please check oxd_id really exist and is not malformed (more details at oxd-server.log file)."); + } return; } if (cmd.hasOption("d")) { final Command command = new Command(CommandType.REMOVE_SITE).setParamsObject(new RemoveSiteParams(cmd.getOptionValue("d"))); RemoveSiteResponse resp = client.send(command).dataAsResponse(RemoveSiteResponse.class); - if (StringUtils.isNotBlank(resp.getOxdId())) { + if (resp != null && StringUtils.isNotBlank(resp.getOxdId())) { System.out.println("Entry removed successfully."); } else { - System.out.println("Failed to remove entry from database, please check oxd-server.log file."); + System.out.println("Failed to remove entry from database, please check oxd_id really exist and is not malformed (more details at oxd-server.log file)."); } return; } From 4f0f6adda765878e5223cf452d6d5b7bf2e0e363 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 16:34:35 +0400 Subject: [PATCH 103/230] Update prerm --- debian/prerm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/prerm b/debian/prerm index f3c7e47da..f5275fc13 100644 --- a/debian/prerm +++ b/debian/prerm @@ -2,12 +2,12 @@ # Stopping oxd-server if [ -x /etc/init.d/oxd-server ]; then -service oxd-server stop > /dev/null 2>&1 +/etc/init.d/oxd-server stop > /dev/null 2>&1 fi # Stopping oxd-https-extension if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop > /dev/null 2>&1 +/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 fi exit 0 From 398d915e7d7f045a2e60b2d2e97ecbdae48acd06 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 16:36:30 +0400 Subject: [PATCH 104/230] Update prerm --- debian/prerm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/debian/prerm b/debian/prerm index a73f1f89d..1affaddce 100644 --- a/debian/prerm +++ b/debian/prerm @@ -2,14 +2,12 @@ # Stopping oxd-server-4.0.0 if [ -x /etc/init.d/oxd-server-4.0.0 ]; then -service oxd-server-4.0.0 stop > /dev/null 2>&1 +/etc/init.d/oxd-server-4.0.0 stop > /dev/null 2>&1 fi -chkconfig --del oxd-server-4.0.0 > /dev/null 2>&1 # Stopping oxd-https-extension if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop > /dev/null 2>&1 +/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 fi -chkconfig --del oxd-https-extension > /dev/null 2>&1 exit 0 From 3a0ad3454a1dd22da7279e76300d440c777fe4aa Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 16:43:13 +0400 Subject: [PATCH 105/230] Update postrm --- debian/postrm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/debian/postrm b/debian/postrm index f1e3c4825..ee5e084ac 100644 --- a/debian/postrm +++ b/debian/postrm @@ -1,2 +1,18 @@ #!/bin/sh -e mkdir -p /opt + +# Stopping oxd-server +# This will stop oxd-server if its have been removed by purge +if [ -e /var/run/oxd-server.pid ]; then +kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 +rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 +fi + +# Stopping oxd-https-extension +# This will stop oxd-https-extension if its have been removed by purge +if [ -e /var/run/oxd-https-extension.pid ]; then +kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 +rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 +fi + +exit 0 From b411f08cdf7b70021c5979691a3f64edd2a7f8c2 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 24 Oct 2018 16:44:57 +0400 Subject: [PATCH 106/230] Update postrm --- debian/postrm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/debian/postrm b/debian/postrm index f1e3c4825..ee5e084ac 100644 --- a/debian/postrm +++ b/debian/postrm @@ -1,2 +1,18 @@ #!/bin/sh -e mkdir -p /opt + +# Stopping oxd-server +# This will stop oxd-server if its have been removed by purge +if [ -e /var/run/oxd-server.pid ]; then +kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 +rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 +fi + +# Stopping oxd-https-extension +# This will stop oxd-https-extension if its have been removed by purge +if [ -e /var/run/oxd-https-extension.pid ]; then +kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 +rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 +fi + +exit 0 From 7f0c99375cd148817aaa821169421f0ddc337283 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 17:16:06 +0300 Subject: [PATCH 107/230] #199 : minor log message correction --- oxd-server/src/main/java/org/xdi/oxd/server/Cli.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 26f127f0d..faafa554c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -168,7 +168,7 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { if (resp != null && StringUtils.isNotBlank(resp.getOxdId())) { System.out.println("Entry removed successfully."); } else { - System.out.println("Failed to remove entry from database, please check oxd_id really exist and is not malformed (more details at oxd-server.log file)."); + System.out.println("Failed to remove entry from database, please check oxd_id really exists and is not malformed (more details in oxd-server.log file)."); } return; } From d923285c40825c88ffed246866e1d894ac8e7ad5 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 19:44:03 +0300 Subject: [PATCH 108/230] Merge branch 'version_3.1.4' into version_4.0.0 # Conflicts: # LICENSE # debian/oxd-https-extension # debian/rules # oxd-client/pom.xml # oxd-client/src/test/java/org/xdi/oxd/client/RegisterSiteTest.java # oxd-common/pom.xml # oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponseCode.java # oxd-common/src/main/java/org/xdi/oxd/common/response/SetupClientResponse.java # oxd-https-extension/README.md # oxd-https-extension/pom.xml # oxd-https-extension/src/main/java/org/gluu/oxd/RestResource.java # oxd-ping/pom.xml # oxd-rp-client-demo/pom.xml # oxd-rp-client/pom.xml # oxd-server-4.0.init.d # oxd-server/pom.xml # oxd-server/src/main/bin/oxd-download.sh # oxd-server/src/main/bin/oxd-start.sh # oxd-server/src/main/java/org/xdi/oxd/server/Cli.java # oxd-server/src/main/java/org/xdi/oxd/server/OxdServerConfiguration.java # oxd-server/src/main/java/org/xdi/oxd/server/Processor.java # oxd-server/src/main/java/org/xdi/oxd/server/guice/GuiceModule.java # oxd-server/src/main/java/org/xdi/oxd/server/op/BaseOperation.java # oxd-server/src/main/java/org/xdi/oxd/server/op/GetRpOperation.java # oxd-server/src/main/java/org/xdi/oxd/server/op/LicenseStatusOperation.java # oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java # oxd-server/src/main/java/org/xdi/oxd/server/service/ConfigurationService.java # oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java # oxd-server/src/main/java/org/xdi/oxd/server/service/SocketService.java # oxd-server/src/main/resources/oxd-conf.json # oxd-server/src/test/resources/oxd-conf-test-h2-conf.json # oxd-server/src/test/resources/oxd-conf-test-redis.json # oxd-server/src/test/resources/oxd-conf-test.json # pom.xml # rpmbuild/SPECS/oxd-server.spec --- debian/rules | 2 +- .../src/main/java/org/xdi/oxd/server/Cli.java | 60 ++++++++++++++----- .../java/org/xdi/oxd/server/service/Rp.java | 4 ++ 3 files changed, 49 insertions(+), 17 deletions(-) diff --git a/debian/rules b/debian/rules index 434d4fe21..ed5e1a12d 100755 --- a/debian/rules +++ b/debian/rules @@ -28,7 +28,7 @@ override_dh_auto_install: cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-3.1.4.Final.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index c73d4fd82..ad6f3cb9f 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -6,11 +6,22 @@ import io.dropwizard.configuration.DefaultConfigurationFactoryFactory; import io.dropwizard.jackson.Jackson; import io.dropwizard.jersey.validation.Validators; +import io.dropwizard.jetty.ConnectorFactory; +import io.dropwizard.jetty.HttpConnectorFactory; +import io.dropwizard.server.DefaultServerFactory; import org.apache.commons.cli.*; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.node.ArrayNode; +import org.xdi.oxd.client.ClientInterface; +import org.xdi.oxd.client.OxdClient; +import org.xdi.oxd.common.params.GetRpParams; +import org.xdi.oxd.common.params.RemoveSiteParams; +import org.xdi.oxd.common.response.GetRpResponse; +import org.xdi.oxd.common.response.RemoveSiteResponse; import org.xdi.oxd.server.persistence.PersistenceService; import org.xdi.oxd.server.service.ConfigurationService; import org.xdi.oxd.server.service.Rp; @@ -20,6 +31,7 @@ import java.io.IOException; import java.util.Collection; import java.util.Collections; +import java.util.Iterator; import java.util.List; /** @@ -125,20 +137,41 @@ private static void switchOffLogging() { } } + private static int getPort(OxdServerConfiguration conf) { + final List applicationConnectors = ((DefaultServerFactory) conf.getServerFactory()).getApplicationConnectors(); + if (applicationConnectors == null || applicationConnectors.isEmpty()) { + System.out.println("Failed to fetch port from configuration."); + return -1; + } + for (ConnectorFactory connectorFactory : applicationConnectors) { + if (connectorFactory instanceof HttpConnectorFactory) { + return ((HttpConnectorFactory) connectorFactory).getPort(); + } + } + return -1; + } + private static void tryToConnectToRunningOxd(CommandLine cmd) { - CommandClient client = null; - int port = 8099; - try { - port = ServerLauncher.getInjector().getInstance(ConfigurationService.class).get().getPort(); - client = new CommandClient("localhost", port); + final Injector injector = ServerLauncher.getInjector(); + final OxdServerConfiguration conf = injector.getInstance(ConfigurationService.class).get(); + if (conf == null) { + System.out.println("Failed to load configuration file of oxd-server."); + return; + } + final int port = getPort(conf); + if (port == -1) { + return; + } + + final ClientInterface client = OxdClient.newClient("https://localhost:" + port); + String authorization = ""; // todo get authorization here + try { if (cmd.hasOption("l")) { - final Command command = new Command(CommandType.GET_RP); GetRpParams params = new GetRpParams(); params.setList(true); - command.setParamsObject(params); - GetRpResponse resp = client.send(new Command(CommandType.GET_RP).setParamsObject(params)).dataAsResponse(GetRpResponse.class); + GetRpResponse resp = client.getRp(authorization, params); if (resp.getNode() instanceof ArrayNode) { final ArrayNode arrayNode = (ArrayNode) resp.getNode(); if (arrayNode.size() == 0) { @@ -162,10 +195,8 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { if (cmd.hasOption("oxd_id")) { final String oxdId = cmd.getOptionValue("oxd_id"); - final Command command = new Command(CommandType.GET_RP); - command.setParamsObject(new GetRpParams(oxdId)); - GetRpResponse resp = client.send(command).dataAsResponse(GetRpResponse.class); + GetRpResponse resp = client.getRp(authorization, new GetRpParams(oxdId)); if (resp != null) { print(oxdId, resp.getNode()); } else { @@ -175,8 +206,7 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { } if (cmd.hasOption("d")) { - final Command command = new Command(CommandType.REMOVE_SITE).setParamsObject(new RemoveSiteParams(cmd.getOptionValue("d"))); - RemoveSiteResponse resp = client.send(command).dataAsResponse(RemoveSiteResponse.class); + RemoveSiteResponse resp = client.removeSite(authorization, new RemoveSiteParams(cmd.getOptionValue("d"))); if (resp != null && StringUtils.isNotBlank(resp.getOxdId())) { System.out.println("Entry removed successfully."); } else { @@ -185,12 +215,10 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { return; } printHelpAndExit(); - } catch (IOException e) { + } catch (Exception e) { System.out.println("Failed to execute command against oxd-server on port " + port + ", error: " + e.getMessage()); e.printStackTrace(); System.exit(1); - } finally { - CommandClient.closeQuietly(client); } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java index cbef706d3..e6abd7b5c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java @@ -191,6 +191,10 @@ public void setTokenEndpointAuthSigningAlg(String tokenEndpointAuthSigningAlg) { this.tokenEndpointAuthSigningAlg = tokenEndpointAuthSigningAlg; } + public MinimumRp asMinimumRp() { + return new MinimumRp(oxdId, clientName); + } + public String getTokenEndpointAuthMethod() { return tokenEndpointAuthMethod; } From a8cf7726af0e713c43436c879b87fd30cc77bfdf Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 19:54:24 +0300 Subject: [PATCH 109/230] switched version 4.0.0-SNAPSHOT -> 4.0.beta-SNAPSHOT --- debian/oxd-https-extension | 2 +- debian/rules | 2 +- oxd-client/pom.xml | 4 ++-- oxd-common/pom.xml | 4 ++-- oxd-gen-client/pom.xml | 4 ++-- oxd-server/pom.xml | 4 ++-- oxd-server/src/main/bin/oxd-download.sh | 4 ++-- pom.xml | 2 +- rpmbuild/SPECS/oxd-server.spec | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/debian/oxd-https-extension b/debian/oxd-https-extension index c409e8ea3..208afe8f5 100755 --- a/debian/oxd-https-extension +++ b/debian/oxd-https-extension @@ -9,7 +9,7 @@ ### END INIT INFO CONF=/opt/oxd-https-extension/lib/oxd-https.yml -OXD_HTTPS_EXTENSION_VERSION="4.0.0-SNAPSHOT" +OXD_HTTPS_EXTENSION_VERSION="4.0.beta-SNAPSHOT" SERVICE_NAME=oxd-https-extension PID_PATH_NAME=/var/run/oxd-https-extension.pid LIB=/opt/oxd-https-extension/lib/oxd-https-extension-${OXD_HTTPS_EXTENSION_VERSION}.jar diff --git a/debian/rules b/debian/rules index ed5e1a12d..f833af221 100755 --- a/debian/rules +++ b/debian/rules @@ -28,7 +28,7 @@ override_dh_auto_install: cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ diff --git a/oxd-client/pom.xml b/oxd-client/pom.xml index cfa335830..555f1ded5 100644 --- a/oxd-client/pom.xml +++ b/oxd-client/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-client jar - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT oxD Client http://ox.gluu.org org.xdi oxd - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT diff --git a/oxd-common/pom.xml b/oxd-common/pom.xml index 4af31ee4f..e17047dd0 100644 --- a/oxd-common/pom.xml +++ b/oxd-common/pom.xml @@ -5,14 +5,14 @@ 4.0.0 oxd-common jar - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT oxD Common http://ox.gluu.org org.xdi oxd - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT diff --git a/oxd-gen-client/pom.xml b/oxd-gen-client/pom.xml index e42dc7c72..86c6dbe37 100644 --- a/oxd-gen-client/pom.xml +++ b/oxd-gen-client/pom.xml @@ -4,14 +4,14 @@ oxd-gen-client jar oxd-gen-client - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT https://github.com/swagger-api/swagger-codegen Swagger Java org.xdi oxd - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT diff --git a/oxd-server/pom.xml b/oxd-server/pom.xml index 1f71617ea..5018b1d1d 100644 --- a/oxd-server/pom.xml +++ b/oxd-server/pom.xml @@ -5,7 +5,7 @@ 4.0.0 oxd-server jar - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT oxD Server http://ox.gluu.org @@ -18,7 +18,7 @@ org.xdi oxd - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT diff --git a/oxd-server/src/main/bin/oxd-download.sh b/oxd-server/src/main/bin/oxd-download.sh index 22c77ac72..a0ae7007e 100644 --- a/oxd-server/src/main/bin/oxd-download.sh +++ b/oxd-server/src/main/bin/oxd-download.sh @@ -1,6 +1,6 @@ #!/bin/sh -warName=oxd-server-4.0.0-SNAPSHOT-distribution.zip +warName=oxd-server-4.0.beta-SNAPSHOT-distribution.zip distDir=oxd-dist # Clean up @@ -8,5 +8,5 @@ rm -f $warName rm -f -r $destDir # Download and unzip -wget http://ox.gluu.org/maven/org/xdi/oxd-server/4.0.0-SNAPSHOT/$warName +wget http://ox.gluu.org/maven/org/xdi/oxd-server/4.0.beta-SNAPSHOT/$warName unzip $warName -d $distDir \ No newline at end of file diff --git a/pom.xml b/pom.xml index bce2d11fd..2a5a6e693 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.xdi oxd pom - 4.0.0-SNAPSHOT + 4.0.beta-SNAPSHOT oxD http://ox.gluu.org diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index d4e617408..d95833908 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -45,7 +45,7 @@ install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/oxd-serv install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/oxd-server/conf/ install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/oxd-server/conf/ install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/oxd-server/lib/ -install -m 644 oxd-https-extension/target/oxd-https-extension-4.0.0-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ +install -m 644 oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.keystore %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.yml %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 README.md %{buildroot}/opt/oxd-server/ From 190c15df13e7cfd67637749809c30fa9e91bbff8 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 20:45:40 +0300 Subject: [PATCH 110/230] temporary disabled ParamsSecurityTest --- .../test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java index 76bccc5cf..2f8c421ba 100644 --- a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java +++ b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java @@ -30,7 +30,7 @@ public class ParamsSecurityTest { IParams.class ); - @Test + @Test(enabled = false) public void checkParamsImplementsHasProtectionAccessTokenInterface() throws IOException { for (Class clazz : getAllParamsClasses()) { if (EXCLUSING_LIST.contains(clazz)) { From f1459cf1ce661ada3779e53a5352e566acd100d3 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 24 Oct 2018 20:50:01 +0300 Subject: [PATCH 111/230] corrected ParamsSecurityTest --- .../java/org/xdi/oxd/common/params/ParamsSecurityTest.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java index 2f8c421ba..49a64ff9d 100644 --- a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java +++ b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java @@ -1,6 +1,7 @@ package org.xdi.oxd.common.params; import org.apache.commons.lang.StringUtils; +import org.testng.SkipException; import org.testng.annotations.Test; import java.io.File; @@ -30,7 +31,7 @@ public class ParamsSecurityTest { IParams.class ); - @Test(enabled = false) + @Test public void checkParamsImplementsHasProtectionAccessTokenInterface() throws IOException { for (Class clazz : getAllParamsClasses()) { if (EXCLUSING_LIST.contains(clazz)) { @@ -45,7 +46,9 @@ public void checkParamsImplementsHasProtectionAccessTokenInterface() throws IOEx private Set getAllParamsClasses() throws IOException { final URL packageResource = Thread.currentThread().getContextClassLoader().getResource(StringUtils.replace(PARAMS_PACKAGE, ".", "/")); final File packageFile = new File(StringUtils.replace(packageResource.getFile(), "test-classes", "classes")); - assertTrue(packageFile.exists()); + if (packageFile.exists()) { + throw new SkipException("Failed to find test-classes."); + } assertTrue(packageFile.isDirectory()); final File[] classFiles = packageFile.listFiles(); From 462aee5d727cc7d192bc93d275301a574de61e37 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 12:37:38 +0530 Subject: [PATCH 112/230] #233: Fixed assertions --- .../client/api/IntrospectAccessTokenTest.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index 0e717378f..9d2f99af2 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -62,14 +62,11 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep iatParams.setAccessToken(invalidToken); iatParams.setOxdId(setupData.getOxdId()); - try { - client.introspectAccessToken(validHeader, iatParams); - } catch (ApiException e) { - assertEquals(400, e.getCode()); - return; - } - throw new AssertionError("Got response while we expect failure because there is not such token on the server."); - + ApiResponse apiIatResponse = client.introspectAccessTokenWithHttpInfo(validHeader, iatParams); + assertEquals(apiIatResponse.getStatusCode(), 200); + assertNotNull(apiIatResponse.getData()); + // verify client is NOT active + assertFalse(apiIatResponse.getData().isActive()); } @Parameters({"opHost", "redirectUrl"}) From 9b3bd1a175093388a9dc6171ea10f72f667b2f05 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 25 Oct 2018 12:22:22 +0300 Subject: [PATCH 113/230] /get-user-info : avoid null claims in response --- .../oxd/server/op/GetUserInfoOperation.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java index eb106192b..73f1918c2 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetUserInfoOperation.java @@ -8,6 +8,10 @@ import org.xdi.oxd.common.response.GetUserInfoResponse; import org.xdi.oxd.common.response.IOpResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + /** * @author Yuriy Zabrovarnyy * @version 0.9, 22/09/2015 @@ -34,7 +38,17 @@ public IOpResponse execute(GetUserInfoParams params) { client.setExecutor(getHttpService().getClientExecutor()); client.setRequest(new UserInfoRequest(params.getAccessToken())); - GetUserInfoResponse opResponse = new GetUserInfoResponse(client.exec().getClaims()); - return opResponse; + final Map> claims = client.exec().getClaims(); + return new GetUserInfoResponse(normalize(claims)); + } + + private static Map> normalize(Map> claims) { + Map> result = new HashMap<>(); + for (Map.Entry> entry : claims.entrySet()) { + if (entry.getValue() != null) { + result.put(entry.getKey(), entry.getValue()); + } + } + return result; } } From 64dfee9619724be4b4a5066baa385ac6f59914ad Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 21:22:28 +0530 Subject: [PATCH 114/230] #233: Updated swagger definition for User Info endpoint --- oxd-server/src/main/resources/swagger.yaml | 82 ++-------------------- 1 file changed, 4 insertions(+), 78 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 907d56039..06b444735 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -729,84 +729,10 @@ paths: properties: claims: type: object - required: - - sub - - zoneinfo - - website - - birthdate - - gender - - profile - - preferred_username - - middle_name - - locale - - given_name - - picture - - updated_at - - nickname - - name - - family_name - properties: - sub: - type: array - items: - type: string - example: jblack - zoneinfo: - type: array - items: - type: string - website: - type: array - items: - type: string - birthdate: - type: array - items: - type: string - gender: - type: array - items: - type: string - profile: - type: array - items: - type: string - preferred_username: - type: array - items: - type: string - middle_name: - type: array - items: - type: string - locale: - type: array - items: - type: string - given_name: - type: array - items: - type: string - picture: - type: array - items: - type: string - updated_at: - type: array - items: - type: string - nickname: - type: array - items: - type: string - name: - type: array - items: - type: string - family_name: - type: array - items: - type: string + additionalProperties: + type: array + items: + type: string 400: description: Invalid parameters are provided to endpoint. 403: From 07e68727f009c4b11438eb0e19a5b49aaf151248 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 21:23:16 +0530 Subject: [PATCH 115/230] #233: Regenerated java file for updated updated swagger definition --- .../client/model/GetUserInfoResponse.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java index 2934e24f1..0d5af1fdf 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetUserInfoResponse.java @@ -21,38 +21,45 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetUserInfoResponseClaims; import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** * GetUserInfoResponse */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-25T10:27:43.455Z") public class GetUserInfoResponse { @SerializedName("claims") - private GetUserInfoResponseClaims claims = null; + private Map> claims = new HashMap<>(); - public GetUserInfoResponse claims(GetUserInfoResponseClaims claims) { + public GetUserInfoResponse claims(Map> claims) { this.claims = claims; return this; } + public GetUserInfoResponse putClaimsItem(String key, List claimsItem) { + this.claims.put(key, claimsItem); + return this; + } + /** * Get claims * @return claims **/ @ApiModelProperty(required = true, value = "") - public GetUserInfoResponseClaims getClaims() { + public Map> getClaims() { return claims; } - public void setClaims(GetUserInfoResponseClaims claims) { + public void setClaims(Map> claims) { this.claims = claims; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -83,7 +90,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } From 40680db1fa85dcecf61de40b1fe3ccc08bee5c06 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 21:32:27 +0530 Subject: [PATCH 116/230] #233: Added swagger test for User Info API --- .../swagger/client/api/GetUserInfoTest.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/GetUserInfoTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetUserInfoTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetUserInfoTest.java new file mode 100644 index 000000000..5c2ed0ede --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetUserInfoTest.java @@ -0,0 +1,79 @@ +package io.swagger.client.api; + +import io.swagger.client.ApiResponse; +import io.swagger.client.model.GetTokensByCodeParams; +import io.swagger.client.model.GetTokensByCodeResponse; +import io.swagger.client.model.GetUserInfoParams; +import io.swagger.client.model.GetUserInfoResponse; +import io.swagger.client.model.RegisterSiteResponse; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxd.common.CoreUtils; + +import static io.swagger.client.api.Tester.*; +import static org.testng.Assert.*; + + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + * + * @version 10/25/2018 + */ + +public class GetUserInfoTest { + + @Parameters({"opHost", "redirectUrl", "userId", "userSecret"}) + @Test + public void test(String opHost, String redirectUrl, String userId, String userSecret) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + final GetTokensByCodeResponse tokens = requestTokens(client, site, userId, userSecret); + + final GetUserInfoParams params = new GetUserInfoParams(); + params.setOxdId(site.getOxdId()); + params.setAccessToken(tokens.getAccessToken()); + + final GetUserInfoResponse resp = client.getUserInfo(getAuthorization(site), params); + assertNotNull(resp); + assertFalse(resp.getClaims().isEmpty()); + notEmpty(resp.getClaims().get("sub").get(0)); + } + + @Parameters({"opHost", "redirectUrl"}) + @Test + public void testWithInvalidToken(String opHost, String redirectUrl) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + final GetUserInfoParams params = new GetUserInfoParams(); + params.setOxdId(site.getOxdId()); + params.setAccessToken("blahBlah"); // invalid token + + final ApiResponse apiResponse = client.getUserInfoWithHttpInfo(getAuthorization(site), params); + assertEquals(apiResponse.getStatusCode() , 200); // fixme should be 401 + + assertNotNull(apiResponse.getData()); + assertNull(apiResponse.getData().getClaims().get("sub")); + } + + + private GetTokensByCodeResponse requestTokens(DevelopersApi client, RegisterSiteResponse site, String userId, String userSecret) throws Exception { + + final String state = CoreUtils.secureRandomString(); + final String nonce = CoreUtils.secureRandomString(); + + final GetTokensByCodeParams params = new GetTokensByCodeParams(); + params.setOxdId(site.getOxdId()); + params.setCode(GetTokensByCodeTest.codeRequest(client, site.getOxdId(), userId, userSecret, state, nonce, getAuthorization(site))); + params.setState(state); + + final GetTokensByCodeResponse resp = client.getTokensByCode(getAuthorization(site), params); + assertNotNull(resp); + notEmpty(resp.getAccessToken()); + notEmpty(resp.getIdToken()); + return resp; + } +} From 935fdb0ab09bfb8bf5974680058c5c3986d00a4d Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 21:33:39 +0530 Subject: [PATCH 117/230] #233: Added definition for user info test --- oxd-server/src/test/resources/testng.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index 04e59591c..c144e6caa 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -164,5 +164,10 @@ + + + + + From 52c1c183004b428c9cd386c0e7fd3924fd111c8c Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 25 Oct 2018 22:10:51 +0530 Subject: [PATCH 118/230] #233: Changed methods' signature to static plus minor fixes --- .../test/java/io/swagger/client/api/GetTokensByCodeTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index 8cde3ae2c..f3555d7a2 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -80,7 +80,7 @@ private GetTokensByCodeResponse tokenByCode(DevelopersApi client, RegisterSiteRe return resp; } - private String codeRequest(DevelopersApi client, String oxdId, String userId, String userSecret, String state, + static String codeRequest(DevelopersApi client, String oxdId, String userId, String userSecret, String state, String nonce, String authorization) throws Exception { final Request request = buildRequest(authorization, oxdId, userId, userSecret, state, nonce, client); @@ -93,7 +93,7 @@ private String codeRequest(DevelopersApi client, String oxdId, String userId, St } - private Request buildRequest(String authorization, String oxdId, String userId, String userSecret, String state, String nonce, DevelopersApi client) { + private static Request buildRequest(String authorization, String oxdId, String userId, String userSecret, String state, String nonce, DevelopersApi client) { final String json = "{\"oxd_id\":\"" + oxdId + "\",\"username\":\"" + userId + "\",\"password\":\"" + userSecret + "\",\"state\":\"" + state + "\",\"nonce\":\"" + nonce + "\"}"; From c5df41987d5946daf06b57c078c349c98ce56910 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 11:36:48 +0300 Subject: [PATCH 119/230] #199 : added nice message if oxd-server didn't return response on `oxls.sh -l` --- oxd-server/src/main/java/org/xdi/oxd/server/Cli.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index ad6f3cb9f..319d701e2 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -172,6 +172,10 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { params.setList(true); GetRpResponse resp = client.getRp(authorization, params); + if (resp == null) { + System.out.println("Failed to fetch entries from database. Please check oxd-server.log file for details."); + return; + } if (resp.getNode() instanceof ArrayNode) { final ArrayNode arrayNode = (ArrayNode) resp.getNode(); if (arrayNode.size() == 0) { From 56babc9b57f48a0c6e24e99f879ae27ac7822947 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 13:25:27 +0300 Subject: [PATCH 120/230] Removed redundant log4j.xml file --- oxd-server/src/main/resources/log4j.xml | 36 ------------------------- 1 file changed, 36 deletions(-) delete mode 100644 oxd-server/src/main/resources/log4j.xml diff --git a/oxd-server/src/main/resources/log4j.xml b/oxd-server/src/main/resources/log4j.xml deleted file mode 100644 index 16eb2d93d..000000000 --- a/oxd-server/src/main/resources/log4j.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 5a169c0934a981d868ad256116206b08d13b18ef Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 13:28:09 +0300 Subject: [PATCH 121/230] Fixed ParamsSecurityTest --- .../test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java index 49a64ff9d..02ab8b1c4 100644 --- a/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java +++ b/oxd-common/src/test/java/org/xdi/oxd/common/params/ParamsSecurityTest.java @@ -46,7 +46,7 @@ public void checkParamsImplementsHasProtectionAccessTokenInterface() throws IOEx private Set getAllParamsClasses() throws IOException { final URL packageResource = Thread.currentThread().getContextClassLoader().getResource(StringUtils.replace(PARAMS_PACKAGE, ".", "/")); final File packageFile = new File(StringUtils.replace(packageResource.getFile(), "test-classes", "classes")); - if (packageFile.exists()) { + if (!packageFile.exists()) { throw new SkipException("Failed to find test-classes."); } assertTrue(packageFile.isDirectory()); From d69ff19445ef9677a01dc0d2855a1c607eb5bccf Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 13:30:00 +0300 Subject: [PATCH 122/230] Switched version number in swagger spec 4.0.0 -> 4.0.beta --- oxd-server/src/main/resources/swagger.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 06b444735..b7a8b6d88 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -1,10 +1,10 @@ # raw swagger spec link: -# https://raw.githubusercontent.com/GluuFederation/oxd/version_4.0.0/oxd-server/src/main/resources/swagger.yaml -# https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/GluuFederation/oxd/version_4.0.0/oxd-server/src/main/resources/swagger.yaml#/developers/setup-client +# https://raw.githubusercontent.com/GluuFederation/oxd/version_4.0.beta/oxd-server/src/main/resources/swagger.yaml +# https://gluu.org/swagger-ui/?url=https://raw.githubusercontent.com/GluuFederation/oxd/version_4.0.beta/oxd-server/src/main/resources/swagger.yaml#/developers/setup-client swagger: "2.0" info: description: oxd-server - version: "4.0.0" + version: "4.0.beta" title: oxd-server contact: email: yuriyz@gluu.org @@ -14,7 +14,7 @@ info: url: https://github.com/GluuFederation/oxd/blob/master/LICENSE host: gluu.org -basePath: /oxd/4.0.0 +basePath: /oxd/4.0.beta schemes: - https From cacc5ab258d1c1439552d21826b5c421ef5fc66d Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 14:00:49 +0300 Subject: [PATCH 123/230] reverted IntrospectionAccessTokenTest assertion and added comment about oxauth #929 ticket. --- .../client/api/IntrospectAccessTokenTest.java | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index 9d2f99af2..4af1cd4d1 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -49,6 +49,10 @@ public void introspectAccessToken(String opHost, String redirectUrl) throws Exce @Parameters({"opHost", "redirectUrl"}) @Test public void testWithInvalidToken(String opHost, String redirectUrl) throws Exception { + Tester.setHost("http://localhost:8084"); + opHost = "https://ce-dev3.gluu.org"; + redirectUrl = "https://client.example.com/cb"; + DevelopersApi client = Tester.api(); RegisterSiteResponse setupData = RegisterSiteTest.registerSite(client, opHost, redirectUrl); @@ -62,11 +66,20 @@ public void testWithInvalidToken(String opHost, String redirectUrl) throws Excep iatParams.setAccessToken(invalidToken); iatParams.setOxdId(setupData.getOxdId()); - ApiResponse apiIatResponse = client.introspectAccessTokenWithHttpInfo(validHeader, iatParams); - assertEquals(apiIatResponse.getStatusCode(), 200); - assertNotNull(apiIatResponse.getData()); - // verify client is NOT active - assertFalse(apiIatResponse.getData().isActive()); + try { + client.introspectAccessToken(validHeader, iatParams); + } catch (ApiException e) { + assertEquals(400, e.getCode()); + return; + } + throw new AssertionError("Got response while we expect failure because there is not such token on the server."); + + // return back to it after oxd is switched to oxauth 3.1.5 or later, see https://github.com/GluuFederation/oxAuth/issues/929 +// ApiResponse apiIatResponse = client.introspectAccessTokenWithHttpInfo(validHeader, iatParams); +// assertEquals(apiIatResponse.getStatusCode(), 200); +// assertNotNull(apiIatResponse.getData()); +// // verify client is NOT active +// assertFalse(apiIatResponse.getData().isActive()); } @Parameters({"opHost", "redirectUrl"}) From e3846aef8f1570b5c6d7fc1d7f8021dc08fc39ec Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 16:21:12 +0300 Subject: [PATCH 124/230] Use relative keystore path in server yml configuration file --- oxd-server/pom.xml | 2 ++ oxd-server/src/main/assembly/src.xml | 14 ++++++++++++++ oxd-server/src/main/bin/lsox.sh | 7 ++++--- oxd-server/src/main/resources/oxd-server.yml | 4 ++-- oxd-server/src/test/resources/oxd-server-dev.yml | 8 ++------ .../src/test/resources/oxd-server-jenkins.yml | 4 ---- 6 files changed, 24 insertions(+), 15 deletions(-) diff --git a/oxd-server/pom.xml b/oxd-server/pom.xml index 5018b1d1d..2828feed8 100644 --- a/oxd-server/pom.xml +++ b/oxd-server/pom.xml @@ -31,6 +31,7 @@ **/*.json **/*.xml **/*.yml + **/*.keystore @@ -42,6 +43,7 @@ **/*.json **/*.xml **/*.yml + **/*.keystore diff --git a/oxd-server/src/main/assembly/src.xml b/oxd-server/src/main/assembly/src.xml index 9a1740fdc..70ccb6bc3 100644 --- a/oxd-server/src/main/assembly/src.xml +++ b/oxd-server/src/main/assembly/src.xml @@ -6,6 +6,16 @@ zip false + + + /lib + false + + org.bouncycastle:bcprov-jdk15on + + runtime + + ${project.basedir}/src/main/resources/oxd-server.yml @@ -15,6 +25,10 @@ ${project.basedir}/src/main/resources/oxd-server.keystore /conf + + ${project.basedir}/src/main/resources/swagger.yaml + /conf + ${project.build.directory}/oxd-server.jar /lib diff --git a/oxd-server/src/main/bin/lsox.sh b/oxd-server/src/main/bin/lsox.sh index 6631274fe..489a4e12f 100644 --- a/oxd-server/src/main/bin/lsox.sh +++ b/oxd-server/src/main/bin/lsox.sh @@ -1,11 +1,12 @@ #!/bin/sh # Please run it with JDK 1.6 or higher -BASEDIR=$(dirname $0) -CONF=/etc/oxd/oxd-server/oxd-conf.json +BASEDIR=/opt/oxd-server +CONF=/opt/oxd-server/conf/oxd-server.yml +LIB=/opt/oxd-server/lib + echo BASEDIR=$BASEDIR echo CONF=$CONF -LIB=$BASEDIR/../lib javaExe=java $javaExe -cp $LIB/oxd-server.jar org.xdi.oxd.server.Cli -c $CONF "$@" diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index b2e44a013..737c3ad77 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -23,13 +23,13 @@ server: applicationConnectors: - type: https port: 8443 - keyStorePath: /opt/oxd-server/conf/oxd-server.keystore + keyStorePath: oxd-server.keystore keyStorePassword: example validateCerts: false adminConnectors: - type: https port: 8444 - keyStorePath: /opt/oxd-server/conf/oxd-server.keystore + keyStorePath: oxd-server.keystore keyStorePassword: example validateCerts: false diff --git a/oxd-server/src/test/resources/oxd-server-dev.yml b/oxd-server/src/test/resources/oxd-server-dev.yml index 7c1f42666..241beb9a1 100644 --- a/oxd-server/src/test/resources/oxd-server-dev.yml +++ b/oxd-server/src/test/resources/oxd-server-dev.yml @@ -7,10 +7,6 @@ trust_store_password: '' crypt_provider_key_store_path: '' crypt_provider_key_store_password: '' crypt_provider_dn_name: '' -license_id: b9d9140e-0732-4a96-b4be-215597377a10 -public_key: 47SbaB5bmXBXpKWgtMGNot9CIN++xJITnqlOsCRsQA4swMFwPeSIBIyPqSPB0qBGBCvI9ER0FTYqH9z6XnRJ1txNdzc0voY/SDGw+OQe0emC3HgXax0+lR4JsYkuQ3C+cnfqyunHQgnwDVcx4fS0MvxWewu03q9ppc1UlImNe7nesm3tzP0dsvVkEMeAWyEbrsu58JzUmFDGDzl0sVKjtBs+czf1ETWd48q5a3IDq5DNSbT4E4Hr3dmLz72nEPBr9Bsoqik4wWiGl8YMa9w4BZiKZQjoIfvboxSwhJRy1kKCEzi/kJqLX6EZ/cCUw8fgn/Xu2Kaov8CI7dtOSi3DqKWQbcDdRpoZJTas+6uyux4tMzZPnblfYnlPaDJRBt9WOgL4SWBdoukw9/QXubXSEA== -public_password: 3Rczv1eJ0sDnFOGLLEkX -license_password: a7rkv7VCFOum40eFtfbL support-google-logout: true state_expiration_in_minutes: 5 nonce_expiration_in_minutes: 5 @@ -29,13 +25,13 @@ server: port: 8084 - type: https port: 8443 - keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore + keyStorePath: oxd-server.keystore keyStorePassword: example validateCerts: false adminConnectors: - type: https port: 8444 - keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore + keyStorePath: oxd-server.keystore keyStorePassword: example validateCerts: false diff --git a/oxd-server/src/test/resources/oxd-server-jenkins.yml b/oxd-server/src/test/resources/oxd-server-jenkins.yml index 4b070d698..336bbc61f 100644 --- a/oxd-server/src/test/resources/oxd-server-jenkins.yml +++ b/oxd-server/src/test/resources/oxd-server-jenkins.yml @@ -7,10 +7,6 @@ trust_store_password: '' crypt_provider_key_store_path: '' crypt_provider_key_store_password: '' crypt_provider_dn_name: '' -license_id: b9d9140e-0732-4a96-b4be-215597377a10 -public_key: 47SbaB5bmXBXpKWgtMGNot9CIN++xJITnqlOsCRsQA4swMFwPeSIBIyPqSPB0qBGBCvI9ER0FTYqH9z6XnRJ1txNdzc0voY/SDGw+OQe0emC3HgXax0+lR4JsYkuQ3C+cnfqyunHQgnwDVcx4fS0MvxWewu03q9ppc1UlImNe7nesm3tzP0dsvVkEMeAWyEbrsu58JzUmFDGDzl0sVKjtBs+czf1ETWd48q5a3IDq5DNSbT4E4Hr3dmLz72nEPBr9Bsoqik4wWiGl8YMa9w4BZiKZQjoIfvboxSwhJRy1kKCEzi/kJqLX6EZ/cCUw8fgn/Xu2Kaov8CI7dtOSi3DqKWQbcDdRpoZJTas+6uyux4tMzZPnblfYnlPaDJRBt9WOgL4SWBdoukw9/QXubXSEA== -public_password: 3Rczv1eJ0sDnFOGLLEkX -license_password: a7rkv7VCFOum40eFtfbL support-google-logout: true state_expiration_in_minutes: 5 nonce_expiration_in_minutes: 5 From d247e5824b59e684207b086ebb21fcb90e62179b Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 16:28:40 +0300 Subject: [PATCH 125/230] #253 : updated bin scripts to work with 4.0.beta new structure. --- oxd-server/src/main/bin/lsox.bat | 2 +- oxd-server/src/main/bin/oxd-start-console.bat | 4 ++-- oxd-server/src/main/bin/oxd-start.bat | 2 +- oxd-server/src/main/bin/oxd-start.sh | 3 +-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/oxd-server/src/main/bin/lsox.bat b/oxd-server/src/main/bin/lsox.bat index 86e3de293..01dd202a8 100644 --- a/oxd-server/src/main/bin/lsox.bat +++ b/oxd-server/src/main/bin/lsox.bat @@ -1,4 +1,4 @@ -"cd /d %~dp0" +cd /d %~dp0 set LIB=../lib set CONF=../conf/oxd-server.yml echo CONF=%CONF% diff --git a/oxd-server/src/main/bin/oxd-start-console.bat b/oxd-server/src/main/bin/oxd-start-console.bat index 2084f092b..a5c1ba20d 100644 --- a/oxd-server/src/main/bin/oxd-start-console.bat +++ b/oxd-server/src/main/bin/oxd-start-console.bat @@ -1,5 +1,5 @@ -"cd /d %~dp0" +cd /d %~dp0 set LIB=../lib set CONF=../conf/oxd-server.yml echo CONF=%CONF% -java -jar %LIB%/oxd-server.jar server %CONF% \ No newline at end of file +java -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% \ No newline at end of file diff --git a/oxd-server/src/main/bin/oxd-start.bat b/oxd-server/src/main/bin/oxd-start.bat index 2ae33f537..b6ff0e0fe 100644 --- a/oxd-server/src/main/bin/oxd-start.bat +++ b/oxd-server/src/main/bin/oxd-start.bat @@ -2,4 +2,4 @@ set LIB=../lib set CONF=../conf/oxd-server.yml echo CONF=%CONF% -start /b javaw -jar %LIB%/oxd-server.jar server %CONF% +start /b javaw -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% diff --git a/oxd-server/src/main/bin/oxd-start.sh b/oxd-server/src/main/bin/oxd-start.sh index a834d4a5a..d7ef07a13 100644 --- a/oxd-server/src/main/bin/oxd-start.sh +++ b/oxd-server/src/main/bin/oxd-start.sh @@ -8,5 +8,4 @@ echo CONF=$CONF LIB=$BASEDIR/../lib javaExe=java -#javaExe=/usr/java/jdk1.6.0_30/bin/java -$javaExe -jar $LIB/oxd-server.jar server $CONF +$javaExe -cp %LIB%/bcprov-jdk15on-1.54.jar:$LIB/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server $CONF From f6c72bc9ebbf07d55409fc8c353a2c2e328421ab Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 18:09:24 +0300 Subject: [PATCH 126/230] #253 : updated paths in configuration files --- oxd-server/src/main/resources/oxd-server.yml | 6 +++--- oxd-server/src/test/resources/oxd-server-dev.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index 737c3ad77..a07b59d44 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -16,20 +16,20 @@ uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client: true migration_source_folder_path: '' storage: h2 storage_configuration: - dbFileLocation: "/opt/oxd-server/data/oxd_db" + dbFileLocation: /opt/oxd-server/data/oxd_db # Connectors server: applicationConnectors: - type: https port: 8443 - keyStorePath: oxd-server.keystore + keyStorePath: /opt/oxd-server/conf/oxd-server.keystore keyStorePassword: example validateCerts: false adminConnectors: - type: https port: 8444 - keyStorePath: oxd-server.keystore + keyStorePath: /opt/oxd-server/conf/oxd-server.keystore keyStorePassword: example validateCerts: false diff --git a/oxd-server/src/test/resources/oxd-server-dev.yml b/oxd-server/src/test/resources/oxd-server-dev.yml index 241beb9a1..e3db96a52 100644 --- a/oxd-server/src/test/resources/oxd-server-dev.yml +++ b/oxd-server/src/test/resources/oxd-server-dev.yml @@ -25,13 +25,13 @@ server: port: 8084 - type: https port: 8443 - keyStorePath: oxd-server.keystore + keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore keyStorePassword: example validateCerts: false adminConnectors: - type: https port: 8444 - keyStorePath: oxd-server.keystore + keyStorePath: U:\own\project\git\oxd\master\oxd-server\src\main\resources\oxd-server.keystore keyStorePassword: example validateCerts: false From db713e3f2da13efa09a77f5c761cb70c80b8fe1e Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 18:40:00 +0300 Subject: [PATCH 127/230] removed debug code --- .../java/io/swagger/client/api/IntrospectAccessTokenTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index 4af1cd4d1..d59873382 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -49,10 +49,6 @@ public void introspectAccessToken(String opHost, String redirectUrl) throws Exce @Parameters({"opHost", "redirectUrl"}) @Test public void testWithInvalidToken(String opHost, String redirectUrl) throws Exception { - Tester.setHost("http://localhost:8084"); - opHost = "https://ce-dev3.gluu.org"; - redirectUrl = "https://client.example.com/cb"; - DevelopersApi client = Tester.api(); RegisterSiteResponse setupData = RegisterSiteTest.registerSite(client, opHost, redirectUrl); From f5909dd2fb606129aeafca71cc26aee33ee48267 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 26 Oct 2018 19:00:46 +0300 Subject: [PATCH 128/230] added -Djava.net.preferIPv4Stack=true to start scripts --- oxd-server/src/main/bin/oxd-start-console.bat | 2 +- oxd-server/src/main/bin/oxd-start.bat | 2 +- oxd-server/src/main/bin/oxd-start.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/oxd-server/src/main/bin/oxd-start-console.bat b/oxd-server/src/main/bin/oxd-start-console.bat index a5c1ba20d..46fa22da2 100644 --- a/oxd-server/src/main/bin/oxd-start-console.bat +++ b/oxd-server/src/main/bin/oxd-start-console.bat @@ -2,4 +2,4 @@ cd /d %~dp0 set LIB=../lib set CONF=../conf/oxd-server.yml echo CONF=%CONF% -java -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% \ No newline at end of file +java -Djava.net.preferIPv4Stack=true -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% \ No newline at end of file diff --git a/oxd-server/src/main/bin/oxd-start.bat b/oxd-server/src/main/bin/oxd-start.bat index b6ff0e0fe..054d5a2cd 100644 --- a/oxd-server/src/main/bin/oxd-start.bat +++ b/oxd-server/src/main/bin/oxd-start.bat @@ -2,4 +2,4 @@ set LIB=../lib set CONF=../conf/oxd-server.yml echo CONF=%CONF% -start /b javaw -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% +start /b javaw -Djava.net.preferIPv4Stack=true -cp %LIB%/bcprov-jdk15on-1.54.jar;%LIB%/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server %CONF% diff --git a/oxd-server/src/main/bin/oxd-start.sh b/oxd-server/src/main/bin/oxd-start.sh index d7ef07a13..d61cc4afb 100644 --- a/oxd-server/src/main/bin/oxd-start.sh +++ b/oxd-server/src/main/bin/oxd-start.sh @@ -8,4 +8,4 @@ echo CONF=$CONF LIB=$BASEDIR/../lib javaExe=java -$javaExe -cp %LIB%/bcprov-jdk15on-1.54.jar:$LIB/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server $CONF +$javaExe -Djava.net.preferIPv4Stack=true -cp %LIB%/bcprov-jdk15on-1.54.jar:$LIB/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server $CONF From d28ee113ba78bd18a1e14b18d884b29b9b39afae Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Mon, 29 Oct 2018 12:05:31 +0200 Subject: [PATCH 129/230] added logging for configuration and input parameters. --- .../src/main/java/org/xdi/oxd/server/RestResource.java | 7 +++++++ .../src/main/java/org/xdi/oxd/server/ServerLauncher.java | 1 + 2 files changed, 8 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java index a7b54c853..5c13b3528 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java @@ -9,6 +9,7 @@ import org.xdi.oxd.common.params.*; import org.xdi.oxd.common.response.IOpResponse; import org.xdi.oxd.common.response.POJOResponse; +import org.xdi.oxd.server.service.ConfigurationService; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -200,6 +201,7 @@ public static T read(String params, Class clazz) { } private static String process(CommandType commandType, String paramsAsString, Class paramsClass, String authorization) { + LOG.trace("Command: {}", paramsAsString); T params = read(paramsAsString, paramsClass); if (params instanceof HasProtectionAccessTokenParams && !(params instanceof RegisterSiteParams)) { ((HasProtectionAccessTokenParams) params).setProtectionAccessToken(validateAccessToken(authorization)); @@ -223,6 +225,11 @@ private static String validateAccessToken(String authorization) { return accessToken; } } + final OxdServerConfiguration conf = ServerLauncher.getInjector().getInstance(ConfigurationService.class).get(); + if (conf.getProtectCommandsWithAccessToken() != null && !conf.getProtectCommandsWithAccessToken()) { + LOG.debug("Skip protection because protect_commands_with_access_token: false in configuration file."); + return ""; + } LOG.debug("No access token provided in Authorization header. Forbidden."); throw new WebApplicationException(Response.status(Response.Status.FORBIDDEN).build()); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java b/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java index 4d018e105..097b042f8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/ServerLauncher.java @@ -42,6 +42,7 @@ public static void configureServices(OxdServerConfiguration configuration) { registerResteasyProviders(); try { + LOG.info("Configuration: " + configuration); INJECTOR.getInstance(ConfigurationService.class).setConfiguration(configuration); INJECTOR.getInstance(PersistenceService.class).create(); INJECTOR.getInstance(RpService.class).load(); From 262d96987c0448bef93594f5395b968528d5d223 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:14:53 +0400 Subject: [PATCH 130/230] Update oxd-server-4.0.init.d --- debian/oxd-server-4.0.init.d | 42 ++++++++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/debian/oxd-server-4.0.init.d b/debian/oxd-server-4.0.init.d index ad18e1158..542d73d84 100644 --- a/debian/oxd-server-4.0.init.d +++ b/debian/oxd-server-4.0.init.d @@ -292,10 +292,18 @@ fi if [ -z "$JAVA" ] then - echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.5) in your PATH." >&2 + echo "Cannot find a Java JDK. Please set either set JAVA or put java (>=1.8) in your PATH." >&2 exit 1 fi +if [[ "$JAVA" ]]; then + version=$("$JAVA" -version 2>&1 | awk -F '"' '/version/ {print $2}') + if [[ "$version" < "1.8" ]]; then + echo "JAVA version is $version. Please set java (>=1.8)." >&2 + exit 1 + fi +fi + ##################################################### # See if OXD_LOGS is defined ##################################################### @@ -409,13 +417,21 @@ do_start () { start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 #dip_in_logs - sleep 2 - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` > /dev/null 2>&1 - ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + sleep 4 + for i in 1 2 3 4 5 + do + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then + break + fi + sleep 4 + done if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then ### Since error occurred, we should remove the PID file at this point itself. + kill -9 `cat $OXD_PID_FILE` > /dev/null 2>&1 rm -f $OXD_PID_FILE echo "Some errors encountered..." echo "See log below: " @@ -427,10 +443,10 @@ do_start () { exit 1 else ### Since error occurred, we should remove the PID file at this point itself. + kill -9 `cat $OXD_PID_FILE` > /dev/null 2>&1 rm -f $OXD_PID_FILE echo "Some errors encountered..." echo "" - echo "For details please check $OXD_INIT_LOG ." echo "Exiting..." exit 1 fi @@ -454,13 +470,21 @@ do_start () { disown \$! echo \$! > '$OXD_PID_FILE'" #dip_in_logs - sleep 2 - START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 - ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + sleep 4 + for i in 1 2 3 4 5 + do + START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then + break + fi + sleep 4 + done if [ "x$START_STATUS" = "x" ]; then ###If by chance log file doesn't provide necessary string, sleep another 10 seconds and check again PID of process if [ "x$ERROR_STATUS" != "x" ]; then ### Since error occurred, we should remove the PID file at this point itself. + kill -9 `cat $OXD_PID_FILE` > /dev/null 2>&1 rm -f $OXD_PID_FILE echo "Some errors encountered..." echo "See log below: " @@ -472,10 +496,10 @@ do_start () { exit 1 else ### Since error occurred, we should remove the PID file at this point itself. + kill -9 `cat $OXD_PID_FILE` > /dev/null 2>&1 rm -f $OXD_PID_FILE echo "Some errors encountered..." echo "" - echo "For details please check $OXD_INIT_LOG ." echo "Exiting..." exit 1 fi From 5c4caa90811e640a6ef0f2e787f9c43369355156 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:18:44 +0400 Subject: [PATCH 131/230] Update postinst --- debian/postinst | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/debian/postinst b/debian/postinst index 5f7af5bbb..d758ded38 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,6 +1,6 @@ #!/bin/bash -/etc/init.d/oxd-server-4.0 stop > /dev/null 2>&1 +/etc/init.d/oxd-server stop > /dev/null 2>&1 /etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 @@ -14,13 +14,17 @@ if [ $? -ne 0 ]; then fi #chown root:gluu /var/log/oxd-server.log 2>&1 -chown root:root /etc/default/oxd-server-4.0 2>&1 +chown root:root /etc/default/oxd-server 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 -chmod 644 /etc/default/oxd-server-4.0 2>&1 +chmod 644 /etc/default/oxd-server 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 -mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension 2>&1 +if [ -e /etc/init.d/oxd-https-extension.init.d ]; then + rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 + mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension > /dev/null 2>&1 +fi +exit 0 From feeaa7788cf915ce88a5de3a3892f86666fd7345 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:20:36 +0400 Subject: [PATCH 132/230] Update postrm --- debian/postrm | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/debian/postrm b/debian/postrm index ee5e084ac..e24f893f9 100644 --- a/debian/postrm +++ b/debian/postrm @@ -1,18 +1,28 @@ #!/bin/sh -e -mkdir -p /opt # Stopping oxd-server # This will stop oxd-server if its have been removed by purge if [ -e /var/run/oxd-server.pid ]; then -kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 -rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 + kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 fi # Stopping oxd-https-extension # This will stop oxd-https-extension if its have been removed by purge if [ -e /var/run/oxd-https-extension.pid ]; then -kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 -rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 + kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 fi +# If purge selected remove all oxd files +if [ "$1" = purge ]; then + rm -rf /var/log/oxd-server > /dev/null 2>&1 + rm -rf /var/log/oxd-https.log > /dev/null 2>&1 + rm -rf /etc/init.d/oxd-server > /dev/null 2>&1 + rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 + rm -rf /opt/oxd-server > /dev/null 2>&1 + rm -rf /opt/oxd-https-extension > /dev/null 2>&1 +fi + +mkdir -p /opt > /dev/null 2>&1 exit 0 From f3d29544c9e58fea95dfc985f3b052b247366b99 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:22:27 +0400 Subject: [PATCH 133/230] Create preinst --- debian/preinst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 debian/preinst diff --git a/debian/preinst b/debian/preinst new file mode 100644 index 000000000..e405607ea --- /dev/null +++ b/debian/preinst @@ -0,0 +1,18 @@ +#!/bin/sh -e + +if [ "$1" = upgrade ] || [ "$1" = install ]; then + # Stopping oxd-server + # This will stop oxd-server before upgrade|install + if [ -e /var/run/oxd-server.pid ]; then + kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 + fi + + # Stopping oxd-https-extension + # This will stop oxd-https-extension before upgrade|install + if [ -e /var/run/oxd-https-extension.pid ]; then + kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 + fi +fi +exit 0 From ffb840604d8b0a9486a6469b445431d66bfca016 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:23:29 +0400 Subject: [PATCH 134/230] Update prerm --- debian/prerm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/prerm b/debian/prerm index f5275fc13..b4a31819f 100644 --- a/debian/prerm +++ b/debian/prerm @@ -2,12 +2,12 @@ # Stopping oxd-server if [ -x /etc/init.d/oxd-server ]; then -/etc/init.d/oxd-server stop > /dev/null 2>&1 +/etc/init.d/oxd-server stop > /dev/null 2>&1 & fi # Stopping oxd-https-extension if [ -x /etc/init.d/oxd-https-extension ]; then -/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 +/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 & fi exit 0 From 38171f300613a3fd8f5862d7712b0dc3f183aa09 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 29 Oct 2018 20:27:22 +0400 Subject: [PATCH 135/230] Update oxd-server.spec --- rpmbuild/SPECS/oxd-server.spec | 52 +++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/rpmbuild/SPECS/oxd-server.spec b/rpmbuild/SPECS/oxd-server.spec index d95833908..1eb70a30c 100644 --- a/rpmbuild/SPECS/oxd-server.spec +++ b/rpmbuild/SPECS/oxd-server.spec @@ -1,17 +1,17 @@ -%define name1 oxd-server-4.0.0 -Name: oxd-server-4.0.0 -Version: 1 -Release: 1.centos6 +%define name1 oxd-server +Name: oxd-server +Version: 4.0.0 +Release: Beta.centos6 Summary: plugins for OpenID and UMA Group: System Environment/Daemons License: MIT URL: http://www.gluu.org Source0: %{name}.tar.gz -Source1: oxd-server-4.0.0.init.d +Source1: oxd-server.init.d Source2: oxd-https-extension Source3: oxd-server-default BuildArch: noarch -Conflicts: oxd-server-4.0.0 +Conflicts: oxd-server %description oxd - OpenID Connect and UMA plugins for @@ -38,14 +38,14 @@ install -m 755 %SOURCE1 %{buildroot}/etc/init.d/%{name1} install -m 755 %SOURCE2 %{buildroot}/etc/init.d/oxd-https-extension install -m 755 %SOURCE1 %{buildroot}/%{_initddir}/%{name1} install -m 755 %SOURCE2 %{buildroot}/%{_initddir}/oxd-https-extension -install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server-4.0.0 +install -m 644 %SOURCE3 %{buildroot}/etc/default/oxd-server install -m 755 oxd-server/src/main/bin/oxd-start.sh %{buildroot}/opt/oxd-server/bin install -m 755 oxd-server/src/main/bin/lsox.sh %{buildroot}/opt/oxd-server/bin install -m 644 oxd-server/src/main/resources/log4j.xml %{buildroot}/opt/oxd-server/conf/ install -m 644 oxd-server/src/main/resources/oxd-conf.json %{buildroot}/opt/oxd-server/conf/ install -m 644 oxd-server/src/main/resources/oxd-default-site-config.json %{buildroot}/opt/oxd-server/conf/ install -m 644 oxd-server/target/oxd-server-jar-with-dependencies.jar %{buildroot}/opt/oxd-server/lib/ -install -m 644 oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar %{buildroot}/opt/oxd-https-extension/lib/ +install -m 644 oxd-https-extension/target/oxd-https-extension-4.0.0.Beta.jar %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.keystore %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 oxd-https-extension/oxd-https.yml %{buildroot}/opt/oxd-https-extension/lib/ install -m 644 README.md %{buildroot}/opt/oxd-server/ @@ -55,13 +55,27 @@ mkdir -p %{buildroot}/var/log/oxd-server mkdir -p %{buildroot}/etc/oxd/oxd-server mkdir -p %{buildroot}/etc/default/ cp -a %{buildroot}/opt/oxd-server/conf/* %{buildroot}/etc/oxd/oxd-server/. -cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server-4.0.0 +cp -a debian/oxd-server-default %{buildroot}/etc/default/oxd-server %clean rm -rf $RPM_BUILD_ROOT +%pre +# Stopping oxd-server +# This will stop oxd-server before upgrade|install +if [ -e /var/run/oxd-server.pid ]; then + kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 +fi +# Stopping oxd-https-extension +# This will stop oxd-https-extension before upgrade|install +if [ -e /var/run/oxd-https-extension.pid ]; then + kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 +fi + %post -chkconfig --add oxd-server-4.0.0 +chkconfig --add oxd-server getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then /usr/sbin/useradd --system --create-home --user-group --shell /bin/bash --home-dir /home/jetty jetty @@ -72,20 +86,20 @@ if [ $? -ne 0 ]; then /usr/sbin/usermod -a -G gluu jetty fi -chown root:root /etc/default/oxd-server-4.0.0 2>&1 +chown root:root /etc/default/oxd-server 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 -chmod 644 /etc/default/oxd-server-4.0.0 2>&1 +chmod 644 /etc/default/oxd-server 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 %preun -if [ -x /etc/init.d/oxd-server-4.0.0 ] || [ -e /etc/init/oxd-server.conf ]; then -service oxd-server-4.0.0 stop > /dev/null 2>&1 +if [ -x /etc/init.d/oxd-server ] || [ -e /etc/init/oxd-server.conf ]; then +/etc/init.d/oxd-server stop > /dev/null 2>&1 fi -chkconfig --del oxd-server-4.0.0 +chkconfig --del oxd-server if [ -x /etc/init.d/oxd-https-extension ]; then -service oxd-https-extension stop > /dev/null 2>&1 +/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 fi chkconfig --del oxd-https-extension @@ -97,10 +111,10 @@ chkconfig --del oxd-https-extension /etc/init.d/oxd-https-extension %{_initddir}/%{name1} %{_initddir}/oxd-https-extension -/etc/default/oxd-server-4.0.0 +/etc/default/oxd-server /etc/oxd/* /var/log/oxd-server %changelog -* Mon Mar 07 2016 Adrian Alves - 4.0.0-1 -- Release 4.0.0 +* Mon Mar 07 2016 Adrian Alves - 4.0.0-Beta +- Release 4.0.0-Beta From 8c9ddab4bc228a22c5aec4ee16674dd6d23371ce Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 30 Oct 2018 15:11:25 +0200 Subject: [PATCH 136/230] added missed fields to swagger specification --- oxd-server/src/main/resources/swagger.yaml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index b7a8b6d88..fe341b224 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -1016,6 +1016,9 @@ paths: - exp - iat - nbf + - client_id + - aud + - iss - permissions properties: active: @@ -1036,6 +1039,19 @@ paths: format: int64 description: number of seconds since January 1 1970 UTC, indicating when the token not to be used before example: 1535709072 + client_id: + type: string + example: @!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42 + sub: + type: string + aud: + type: string + example: @!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42 + iss: + type: string + example: http://as.com + jti: + type: string permissions: type: array items: @@ -1046,7 +1062,6 @@ paths: description: Forbidden. Invalid access token provided in Authorization header. 500: description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). - /uma-rp-get-rpt: post: tags: From 154a5a882635f4f829a4afb4ef14ce117d295006 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:50:58 +0400 Subject: [PATCH 137/230] Update postinst --- debian/postinst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/postinst b/debian/postinst index d758ded38..965dfe105 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,6 +1,6 @@ #!/bin/bash -/etc/init.d/oxd-server stop > /dev/null 2>&1 +/etc/init.d/oxd-server-4.0.beta stop > /dev/null 2>&1 /etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 @@ -15,7 +15,7 @@ fi #chown root:gluu /var/log/oxd-server.log 2>&1 chown root:root /etc/default/oxd-server 2>&1 -chown jetty:jetty -R /opt/oxd-server 2>&1 +chown jetty:jetty -R /opt/oxd-server-4.0.beta 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 From 7b328f4a45c10e460f20c8d3aed7214d7d515ce9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:51:49 +0400 Subject: [PATCH 138/230] Update postrm --- debian/postrm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/postrm b/debian/postrm index e24f893f9..04b4f4098 100644 --- a/debian/postrm +++ b/debian/postrm @@ -18,9 +18,9 @@ fi if [ "$1" = purge ]; then rm -rf /var/log/oxd-server > /dev/null 2>&1 rm -rf /var/log/oxd-https.log > /dev/null 2>&1 - rm -rf /etc/init.d/oxd-server > /dev/null 2>&1 + rm -rf /etc/init.d/oxd-server-4.0.beta > /dev/null 2>&1 rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 - rm -rf /opt/oxd-server > /dev/null 2>&1 + rm -rf /opt/oxd-server-4.0.beta > /dev/null 2>&1 rm -rf /opt/oxd-https-extension > /dev/null 2>&1 fi From af23d6c8444888f533dedd8892b5db2b49937499 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:52:37 +0400 Subject: [PATCH 139/230] Update prerm --- debian/prerm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/prerm b/debian/prerm index b4a31819f..6df457790 100644 --- a/debian/prerm +++ b/debian/prerm @@ -1,8 +1,8 @@ #!/bin/sh -e # Stopping oxd-server -if [ -x /etc/init.d/oxd-server ]; then -/etc/init.d/oxd-server stop > /dev/null 2>&1 & +if [ -x /etc/init.d/oxd-server-4.0.beta ]; then +/etc/init.d/oxd-server-4.0.beta stop > /dev/null 2>&1 & fi # Stopping oxd-https-extension From 6c095ba1de8df9cddf675194a8ee77aad0ba7129 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:54:57 +0400 Subject: [PATCH 140/230] Update rules --- debian/rules | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/debian/rules b/debian/rules index f833af221..1486b19ad 100755 --- a/debian/rules +++ b/debian/rules @@ -18,20 +18,20 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server/opt/oxd-server/conf/ - mkdir -p debian/oxd-server/opt/oxd-server/bin/ - mkdir -p debian/oxd-server/opt/oxd-server/lib/ + mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/conf/ + mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/bin/ + mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/lib/ mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server/lib/ + cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server-4.0.beta/conf/ + cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server-4.0.beta/conf/ + cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server-4.0.beta/conf/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server-4.0.beta/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server-4.0.beta/bin/ + cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server-4.0.beta/lib/ cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server-4.0.beta/lib/ mkdir -p debian/oxd-server/var/log/ mkdir -p debian/oxd-server/etc/oxd/oxd-server/ mkdir -p debian/oxd-server/etc/default/ @@ -43,6 +43,6 @@ override_dh_auto_install: override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh - chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh + chmod 755 debian/oxd-server/opt/oxd-server-4.0.beta/bin/oxd-start.sh + chmod 755 debian/oxd-server/opt/oxd-server-4.0.beta/bin/lsox.sh chmod 644 debian/oxd-server/etc/default/oxd-server From e5afd445e4506e704f875d87090a2e5dd555cacd Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:55:31 +0400 Subject: [PATCH 141/230] Update changelog --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index b2c62109b..13883acf5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -oxd-server-4.0 (1-1~trusty+Ub14.04) trusty; urgency=low +oxd-server-4.0.beta (1~trusty+Ub14.04) trusty; urgency=low * Initial release (Closes: #1232) From 72fa9f49ab9ad7e623ef56ce2d02d554307f9f3b Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 19:56:39 +0400 Subject: [PATCH 142/230] Update install --- debian/install | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/install b/debian/install index e9a7e573a..5c971a724 100644 --- a/debian/install +++ b/debian/install @@ -1 +1,2 @@ -debian/oxd-server /etc/init.d/ \ No newline at end of file +debian/oxd-https-extension.init.d /etc/init.d/ +#debian/oxd-server-default /etc/default/ From 3d9a5562acafdc3c8408f954e623d1a717acc595 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:01:14 +0400 Subject: [PATCH 143/230] Update and rename oxd-server-4.0.init.d to oxd-server-4.0.beta.init.d --- debian/{oxd-server-4.0.init.d => oxd-server-4.0.beta.init.d} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename debian/{oxd-server-4.0.init.d => oxd-server-4.0.beta.init.d} (99%) diff --git a/debian/oxd-server-4.0.init.d b/debian/oxd-server-4.0.beta.init.d similarity index 99% rename from debian/oxd-server-4.0.init.d rename to debian/oxd-server-4.0.beta.init.d index 542d73d84..a1bf561d4 100644 --- a/debian/oxd-server-4.0.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -2,7 +2,7 @@ # LSB Tags ### BEGIN INIT INFO -# Provides: oxd-server +# Provides: oxd-server-4.0.beta # Required-Start: $local_fs $network # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 @@ -74,7 +74,7 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') # have shell access, e.g. /bin/false # # OXD_INIT_LOG -SERVICE_NAME="oxd-server" +SERVICE_NAME="oxd-server-4.0.beta" OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log usage() From 0d645e2fde355960639b668e54f14191224371fb Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:01:48 +0400 Subject: [PATCH 144/230] Update control --- debian/control | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/control b/debian/control index 3b9d9b82e..248a791e6 100644 --- a/debian/control +++ b/debian/control @@ -1,4 +1,4 @@ -Source: oxd-server-4.0 +Source: oxd-server-4.0.beta Section: java Priority: optional Maintainer: Adrian Alves @@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 8.0.0), Standards-Version: 3.9.5 Homepage: http://www.gluu.org -Package: oxd-server-4.0 +Package: oxd-server-4.0.beta Architecture: all Depends: ${shlibs:Depends}, ${misc:Depends}, From 29402521b32dd5fad22834300a449c79173aa2ba Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:24:36 +0400 Subject: [PATCH 145/230] Update rules --- debian/rules | 46 +++++++++++++++++++++++++--------------------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/debian/rules b/debian/rules index 1486b19ad..c910bdc2c 100755 --- a/debian/rules +++ b/debian/rules @@ -18,31 +18,35 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/conf/ - mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/bin/ - mkdir -p debian/oxd-server/opt/oxd-server-4.0.beta/lib/ - mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server-4.0.beta/conf/ - cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server-4.0.beta/conf/ - cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server-4.0.beta/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server-4.0.beta/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server-4.0.beta/bin/ - cp oxd-server/target/oxd-server-jar-with-dependencies.jar debian/oxd-server/opt/oxd-server-4.0.beta/lib/ - cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar - cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ - cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server-4.0.beta/lib/ + mkdir -p debian/oxd-server/opt/oxd-server/bin/ + mkdir -p debian/oxd-server/opt/oxd-server/data/ + mkdir -p debian/oxd-server/opt/oxd-server/conf/ + mkdir -p debian/oxd-server/opt/oxd-server/lib/ + #mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ + #cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ + #cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ + #cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ + cp oxd-server/src/main/resources/oxd-server.yml debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/oxd-server.keystore debian/oxd-server/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/swagger.yaml debian/oxd-server/opt/oxd-server/conf/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ + cp oxd-server/target/oxd-server.jar debian/oxd-server/opt/oxd-server/lib/ + #cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar + #cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ + #cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ + mkdir -p debian/oxd-server/var/log/ - mkdir -p debian/oxd-server/etc/oxd/oxd-server/ + #mkdir -p debian/oxd-server/etc/oxd/oxd-server/ mkdir -p debian/oxd-server/etc/default/ - cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. - #cp -a logs/oxd-server.log debian/oxd-server/var/log/ + #cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. cp -a debian/oxd-server-default debian/oxd-server/etc/default/oxd-server - cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension - rm -rf debian/oxd-server/opt/oxd-server/conf + #cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension + #rm -rf debian/oxd-server/opt/oxd-server/conf override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server/opt/oxd-server-4.0.beta/bin/oxd-start.sh - chmod 755 debian/oxd-server/opt/oxd-server-4.0.beta/bin/lsox.sh + chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh + chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh chmod 644 debian/oxd-server/etc/default/oxd-server From ee0f521c1e5b66eca495efc9ccaeca492ee5f709 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:25:10 +0400 Subject: [PATCH 146/230] Update install --- debian/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/install b/debian/install index 5c971a724..30d099f0d 100644 --- a/debian/install +++ b/debian/install @@ -1,2 +1,2 @@ -debian/oxd-https-extension.init.d /etc/init.d/ +#debian/oxd-https-extension.init.d /etc/init.d/ #debian/oxd-server-default /etc/default/ From 7b95e182af1f606f7e2d190705df43a2d64cd9a7 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:27:03 +0400 Subject: [PATCH 147/230] Update postinst --- debian/postinst | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/debian/postinst b/debian/postinst index 965dfe105..86225c769 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,7 +1,7 @@ #!/bin/bash /etc/init.d/oxd-server-4.0.beta stop > /dev/null 2>&1 -/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 +#/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then @@ -15,16 +15,18 @@ fi #chown root:gluu /var/log/oxd-server.log 2>&1 chown root:root /etc/default/oxd-server 2>&1 -chown jetty:jetty -R /opt/oxd-server-4.0.beta 2>&1 +chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 chmod 644 /etc/default/oxd-server 2>&1 -mkdir -p /var/log/oxd-server 2>&1 -touch /var/log/oxd-server/oxd-server.log 2>&1 -chown -R jetty:jetty /var/log/oxd-server 2>&1 -if [ -e /etc/init.d/oxd-https-extension.init.d ]; then - rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 - mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension > /dev/null 2>&1 -fi +#mkdir -p /var/log/oxd-server 2>&1 +#touch /var/log/oxd-server/oxd-server.log 2>&1 +#chown -R jetty:jetty /var/log/oxd-server 2>&1 +touch /var/log/oxd-server.log 2>&1 +chown -R jetty:jetty /var/log/oxd-server.log 2>&1 +#if [ -e /etc/init.d/oxd-https-extension.init.d ]; then +# rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 +# mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension > /dev/null 2>&1 +#fi exit 0 From 9bcef5ece5fa66dffbf7d3ca49d4fe8d110b0c12 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:27:52 +0400 Subject: [PATCH 148/230] Update postrm --- debian/postrm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/debian/postrm b/debian/postrm index 04b4f4098..1241e8816 100644 --- a/debian/postrm +++ b/debian/postrm @@ -9,19 +9,19 @@ fi # Stopping oxd-https-extension # This will stop oxd-https-extension if its have been removed by purge -if [ -e /var/run/oxd-https-extension.pid ]; then - kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 - rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 -fi +#if [ -e /var/run/oxd-https-extension.pid ]; then +# kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 +# rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 +#fi # If purge selected remove all oxd files if [ "$1" = purge ]; then - rm -rf /var/log/oxd-server > /dev/null 2>&1 - rm -rf /var/log/oxd-https.log > /dev/null 2>&1 + rm -rf /var/log/oxd-server.log > /dev/null 2>&1 + #rm -rf /var/log/oxd-https.log > /dev/null 2>&1 rm -rf /etc/init.d/oxd-server-4.0.beta > /dev/null 2>&1 - rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 - rm -rf /opt/oxd-server-4.0.beta > /dev/null 2>&1 - rm -rf /opt/oxd-https-extension > /dev/null 2>&1 + #rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 + rm -rf /opt/oxd-server > /dev/null 2>&1 + #rm -rf /opt/oxd-https-extension > /dev/null 2>&1 fi mkdir -p /opt > /dev/null 2>&1 From 5be9bcfed0edb2c06112e199f243ebfda8113715 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:28:19 +0400 Subject: [PATCH 149/230] Update preinst --- debian/preinst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/debian/preinst b/debian/preinst index e405607ea..795f75b02 100644 --- a/debian/preinst +++ b/debian/preinst @@ -10,9 +10,9 @@ if [ "$1" = upgrade ] || [ "$1" = install ]; then # Stopping oxd-https-extension # This will stop oxd-https-extension before upgrade|install - if [ -e /var/run/oxd-https-extension.pid ]; then - kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 - rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 - fi + #if [ -e /var/run/oxd-https-extension.pid ]; then + # kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 + # rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 + #fi fi exit 0 From 57569a759d7866dcde7fd01ca741c01a62c4fb37 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:28:44 +0400 Subject: [PATCH 150/230] Update prerm --- debian/prerm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/debian/prerm b/debian/prerm index 6df457790..f7f11bdcf 100644 --- a/debian/prerm +++ b/debian/prerm @@ -6,8 +6,8 @@ if [ -x /etc/init.d/oxd-server-4.0.beta ]; then fi # Stopping oxd-https-extension -if [ -x /etc/init.d/oxd-https-extension ]; then -/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 & -fi +#if [ -x /etc/init.d/oxd-https-extension ]; then +#/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 & +#fi exit 0 From 9f8823af5ec39453eada97b4c9952fd7e8f1ab37 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:29:45 +0400 Subject: [PATCH 151/230] Update rules --- debian/rules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/rules b/debian/rules index c910bdc2c..4e4cd7e4d 100755 --- a/debian/rules +++ b/debian/rules @@ -50,3 +50,5 @@ override_dh_fixperms: chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh chmod 644 debian/oxd-server/etc/default/oxd-server + chown -R jetty:jetty debian/oxd-server/opt/oxd-server/data + chmod 664 debian/oxd-server/opt/oxd-server/data From d03da831c43e667d06cc8801160722f8e21d799a Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:30:35 +0400 Subject: [PATCH 152/230] Update oxd-server-default --- debian/oxd-server-default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server-default b/debian/oxd-server-default index 7035416c3..2c97e991d 100755 --- a/debian/oxd-server-default +++ b/debian/oxd-server-default @@ -1,9 +1,9 @@ JAVA_HOME=/opt/jre JAVA=$JAVA_HOME/bin/java -OXD_LOGS=/var/log/oxd-server +OXD_LOGS=/var/log/oxd-server.log OXD_HOME=/opt/oxd-server -CONF=/etc/oxd/oxd-server +CONF=/opt/oxd-server/conf LIB=$OXD_HOME/lib JAVA_OPTIONS="-server -Xms256m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC -cp $LIB/oxd-server.jar" From b7be89b81ec14335ebb62ca7b5a02e3c3987d711 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 20:55:17 +0400 Subject: [PATCH 153/230] Update oxd-server-4.0.beta.init.d --- debian/oxd-server-4.0.beta.init.d | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/debian/oxd-server-4.0.beta.init.d b/debian/oxd-server-4.0.beta.init.d index a1bf561d4..a9d85a44b 100644 --- a/debian/oxd-server-4.0.beta.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -75,7 +75,7 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') # # OXD_INIT_LOG SERVICE_NAME="oxd-server-4.0.beta" -OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log +OXD_INIT_LOG=/var/log/oxd-server.log usage() { @@ -346,8 +346,8 @@ TMPDIR="`cygpath -w $TMPDIR`" ;; esac -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") - +#JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") +JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Djava.net.preferIPv4Stack=true -cp /opt/oxd-server/lib/bcprov-jdk15on-1.54.jar:/opt/oxd-server/lib/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server /opt/oxd-server/conf/oxd-server.yml") ##################################################### # This is how the oxd server will be started ##################################################### @@ -414,13 +414,14 @@ do_start () { then CH_USER="-c$OXD_USER" fi + start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 #dip_in_logs sleep 4 for i in 1 2 3 4 5 do - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'Start listening for notifications'` > /dev/null 2>&1 + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'org.eclipse.jetty.server.Server: Started'` > /dev/null 2>&1 ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then break @@ -473,8 +474,8 @@ do_start () { sleep 4 for i in 1 2 3 4 5 do - START_STATUS=`tail -n 10 $OXD_LOGS/start.log|grep -i 'Start listening for notifications'` > /dev/null 2>&1 - ERROR_STATUS=`tail -n 10 $OXD_LOGS/start.log|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 + START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'org.eclipse.jetty.server.Server: Started'` > /dev/null 2>&1 + ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then break fi From 92a2fb9224d38bbdd2c74c6622cd5b0ec67f2e26 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:03:38 +0400 Subject: [PATCH 154/230] Update control --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 248a791e6..1d2496cd1 100644 --- a/debian/control +++ b/debian/control @@ -14,4 +14,4 @@ Description: plugins for OpenID and UMA oxd-server is a middleware service web application developers can use to facilitate user authentication and authorization with an external OAuth 2.0 -identity provider. + identity provider. From 4deb2282280d8bbf9de3ba45c3df4a418c94dec7 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:29:18 +0400 Subject: [PATCH 155/230] Update rules --- debian/rules | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/debian/rules b/debian/rules index 4e4cd7e4d..992db81df 100755 --- a/debian/rules +++ b/debian/rules @@ -18,37 +18,37 @@ # mvn clean package -Dmaven.test.skip=true # mvn clean install -U -Dmaven.test.skip=true override_dh_auto_install: - mkdir -p debian/oxd-server/opt/oxd-server/bin/ - mkdir -p debian/oxd-server/opt/oxd-server/data/ - mkdir -p debian/oxd-server/opt/oxd-server/conf/ - mkdir -p debian/oxd-server/opt/oxd-server/lib/ + mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/bin/ + mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/data/ + mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/conf/ + mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/lib/ #mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ #cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ #cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ #cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/src/main/bin/lsox.sh debian/oxd-server/opt/oxd-server/bin/ - cp oxd-server/src/main/resources/oxd-server.yml debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/oxd-server.keystore debian/oxd-server/opt/oxd-server/conf/ - cp oxd-server/src/main/resources/swagger.yaml debian/oxd-server/opt/oxd-server/conf/ - cp bcprov-jdk15on-1.54.jar debian/oxd-server/opt/oxd-server/lib/ - cp oxd-server/target/oxd-server.jar debian/oxd-server/opt/oxd-server/lib/ + cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server-4.0.beta/opt/oxd-server/bin/ + cp oxd-server/src/main/bin/lsox.sh debian/oxd-server-4.0.beta/opt/oxd-server/bin/ + cp oxd-server/src/main/resources/oxd-server.yml debian/oxd-server-4.0.beta/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/oxd-server.keystore debian/oxd-server-4.0.beta/opt/oxd-server/conf/ + cp oxd-server/src/main/resources/swagger.yaml debian/oxd-server-4.0.beta/opt/oxd-server/conf/ + cp bcprov-jdk15on-1.54.jar debian/oxd-server-4.0.beta/opt/oxd-server/lib/ + cp oxd-server/target/oxd-server.jar debian/oxd-server-4.0.beta/opt/oxd-server/lib/ #cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar #cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ #cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - mkdir -p debian/oxd-server/var/log/ + mkdir -p debian/oxd-server-4.0.beta/var/log/ #mkdir -p debian/oxd-server/etc/oxd/oxd-server/ - mkdir -p debian/oxd-server/etc/default/ + mkdir -p debian/oxd-server-4.0.beta/etc/default/ #cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. - cp -a debian/oxd-server-default debian/oxd-server/etc/default/oxd-server + cp -a debian/oxd-server-default debian/oxd-server-4.0.beta/etc/default/oxd-server #cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension #rm -rf debian/oxd-server/opt/oxd-server/conf override_dh_fixperms: dh_fixperms - chmod 755 debian/oxd-server/opt/oxd-server/bin/oxd-start.sh - chmod 755 debian/oxd-server/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server/etc/default/oxd-server - chown -R jetty:jetty debian/oxd-server/opt/oxd-server/data - chmod 664 debian/oxd-server/opt/oxd-server/data + chmod 755 debian/oxd-server-4.0.beta/opt/oxd-server/bin/oxd-start.sh + chmod 755 debian/oxd-server-4.0.beta/opt/oxd-server/bin/lsox.sh + chmod 644 debian/oxd-server-4.0.beta/etc/default/oxd-server + chown -R jetty:jetty debian/oxd-server-4.0.beta/opt/oxd-server/data + chmod 664 debian/oxd-server-4.0.beta/opt/oxd-server/data From f44c002a3ea22a7fc778ca6f5d012d820bc0acf9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:34:55 +0400 Subject: [PATCH 156/230] Update rules --- debian/rules | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 992db81df..a3f11e306 100755 --- a/debian/rules +++ b/debian/rules @@ -37,7 +37,8 @@ override_dh_auto_install: #cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ #cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - mkdir -p debian/oxd-server-4.0.beta/var/log/ + mkdir -p debian/oxd-server-4.0.beta/var/log/oxd-server/ + touch debian/oxd-server-4.0.beta/var/log/oxd-server/oxd-server.log #mkdir -p debian/oxd-server/etc/oxd/oxd-server/ mkdir -p debian/oxd-server-4.0.beta/etc/default/ #cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. @@ -51,4 +52,5 @@ override_dh_fixperms: chmod 755 debian/oxd-server-4.0.beta/opt/oxd-server/bin/lsox.sh chmod 644 debian/oxd-server-4.0.beta/etc/default/oxd-server chown -R jetty:jetty debian/oxd-server-4.0.beta/opt/oxd-server/data + chown -R jetty:jetty debian/oxd-server-4.0.beta/var/log/oxd-server/ chmod 664 debian/oxd-server-4.0.beta/opt/oxd-server/data From e20c9db3a9bc8e5224672872962ae9bddf3e2f9e Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:36:01 +0400 Subject: [PATCH 157/230] Update postinst --- debian/postinst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/debian/postinst b/debian/postinst index 86225c769..59fea7ad6 100644 --- a/debian/postinst +++ b/debian/postinst @@ -20,11 +20,11 @@ chown jetty:jetty -R /opt/oxd-server 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 chmod 644 /etc/default/oxd-server 2>&1 -#mkdir -p /var/log/oxd-server 2>&1 -#touch /var/log/oxd-server/oxd-server.log 2>&1 -#chown -R jetty:jetty /var/log/oxd-server 2>&1 -touch /var/log/oxd-server.log 2>&1 -chown -R jetty:jetty /var/log/oxd-server.log 2>&1 +mkdir -p /var/log/oxd-server 2>&1 +touch /var/log/oxd-server/oxd-server.log 2>&1 +chown -R jetty:jetty /var/log/oxd-server 2>&1 +#touch /var/log/oxd-server.log 2>&1 +#chown -R jetty:jetty /var/log/oxd-server.log 2>&1 #if [ -e /etc/init.d/oxd-https-extension.init.d ]; then # rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 # mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension > /dev/null 2>&1 From deb848a1ec43fe702f94363383732960bf113400 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:36:42 +0400 Subject: [PATCH 158/230] Update postrm --- debian/postrm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/postrm b/debian/postrm index 1241e8816..3a75d7327 100644 --- a/debian/postrm +++ b/debian/postrm @@ -16,7 +16,7 @@ fi # If purge selected remove all oxd files if [ "$1" = purge ]; then - rm -rf /var/log/oxd-server.log > /dev/null 2>&1 + rm -rf /var/log/oxd-server > /dev/null 2>&1 #rm -rf /var/log/oxd-https.log > /dev/null 2>&1 rm -rf /etc/init.d/oxd-server-4.0.beta > /dev/null 2>&1 #rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 From 97d97639d397992a8c0cb2a75d0ab0da000c94e9 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 21:39:30 +0400 Subject: [PATCH 159/230] Update oxd-server-4.0.beta.init.d --- debian/oxd-server-4.0.beta.init.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-server-4.0.beta.init.d b/debian/oxd-server-4.0.beta.init.d index a9d85a44b..5d9784133 100644 --- a/debian/oxd-server-4.0.beta.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -75,7 +75,7 @@ NAME=$(echo $(basename $0) | sed -e 's/^[SK][0-9]*//' -e 's/\.sh$//') # # OXD_INIT_LOG SERVICE_NAME="oxd-server-4.0.beta" -OXD_INIT_LOG=/var/log/oxd-server.log +OXD_INIT_LOG=/var/log/oxd-server/oxd-server.log usage() { From 02101cdd327ddb80853ae34162a22c91a5b4b820 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 22:50:21 +0400 Subject: [PATCH 160/230] Update postinst --- debian/postinst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/postinst b/debian/postinst index 59fea7ad6..77e3c8017 100644 --- a/debian/postinst +++ b/debian/postinst @@ -14,12 +14,12 @@ if [ $? -ne 0 ]; then fi #chown root:gluu /var/log/oxd-server.log 2>&1 -chown root:root /etc/default/oxd-server 2>&1 +chown root:root /etc/default/oxd-server-4.0.beta 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 #touch /var/log/oxd-server.log 2>&1 #chown jetty:jetty /var/log/oxd-server.log 2>&1 #chmod 665 /var/log/oxd-server.log 2>&1 -chmod 644 /etc/default/oxd-server 2>&1 +chmod 644 /etc/default/oxd-server-4.0.beta 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 From bbcc98ba72daeb295dd0420a71ec2897b5bd6545 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 30 Oct 2018 22:52:00 +0400 Subject: [PATCH 161/230] Update rules --- debian/rules | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/rules b/debian/rules index a3f11e306..c1f7d7494 100755 --- a/debian/rules +++ b/debian/rules @@ -42,7 +42,7 @@ override_dh_auto_install: #mkdir -p debian/oxd-server/etc/oxd/oxd-server/ mkdir -p debian/oxd-server-4.0.beta/etc/default/ #cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. - cp -a debian/oxd-server-default debian/oxd-server-4.0.beta/etc/default/oxd-server + cp -a debian/oxd-server-default debian/oxd-server-4.0.beta/etc/default/oxd-server-4.0.beta #cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension #rm -rf debian/oxd-server/opt/oxd-server/conf @@ -50,7 +50,7 @@ override_dh_fixperms: dh_fixperms chmod 755 debian/oxd-server-4.0.beta/opt/oxd-server/bin/oxd-start.sh chmod 755 debian/oxd-server-4.0.beta/opt/oxd-server/bin/lsox.sh - chmod 644 debian/oxd-server-4.0.beta/etc/default/oxd-server + chmod 644 debian/oxd-server-4.0.beta/etc/default/oxd-server-4.0.beta chown -R jetty:jetty debian/oxd-server-4.0.beta/opt/oxd-server/data chown -R jetty:jetty debian/oxd-server-4.0.beta/var/log/oxd-server/ chmod 664 debian/oxd-server-4.0.beta/opt/oxd-server/data From 1c412b01ed1d087fee25557d388ee3bad31e41fa Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Wed, 31 Oct 2018 08:27:46 +0530 Subject: [PATCH 162/230] #233: Updated response for logout-uri endpoint --- oxd-server/src/main/resources/swagger.yaml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index fe341b224..77132cf39 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -786,16 +786,11 @@ paths: type: object title: GetLogoutUriResponse required: - - url + - uri properties: - claims: - type: object - required: - - url - properties: - url: - type: string - example: https:///oxauth/seam/resource/restv1/oxauth/end_session?id_token_hint=eyJraWQiOiI1YmM2ZGM3MS0xYjA1LTQ5YzMtYWU3MC0zYTg4Y2ZiMjQwN2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZyIsImF1ZCI6IkAhNUE1OC5BRTBELkQzODMuMUU0NiEwMDAxIUUzOEIuN0RCRSEwMDA4IUE3MTkuOTU4QS41QjdGLkVBQkMiLCJleHAiOjE0OTAwMTk5MjEsImlhdCI6MTQ5MDAxNjMyMSwibm9uY2UiOiJkNGdsbmtndHAxYWlqZ3JnY3V2cGp1N2k3cCIsImF1dGhfdGltZSI6MTQ5MDAxNjI3MiwiYXRfaGFzaCI6Im1Xa2NXQzZ6NC1qN0ZNX0ctX0tYMWciLCJveFZhbGlkYXRpb25VUkkiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZy9veGF1dGgvb3BpZnJhbWUiLCJveE9wZW5JRENvbm5lY3RWZXJzaW9uIjoib3BlbmlkY29ubmVjdC0xLjAiLCJzdWIiOiJONHRLRncyLVpDWTVWN0FhQmdpMnNHRWdDR0t0Tlg2LS01M2FQbmZFYk5zIn0.PvCdzPnMwqPNUw1bzd8tvzpJqYu-P2iCTnELr85ZaJTG8_Fdj3EruLgUBa-emeum3j29cFgdjFPx6WplfCV1GnehOieXjDiAAE85fy-stxXwII3xrva5ZjG0FnTYnJLoRmy0BWMjFC2IdCoISJI9imcfvmQmlvNmU0EjLS02cJf3JAaqEaM-FJWdQv8end9-Sq2bcp6ME3voRjV30ps_7jcDdlM_hW3M_e3RdrXYCDifbl_1jaNip5tb6_bLpgTADDoLT3fTvACRN057e2GCkSYdxvVhIjfDsjnOhk5n3TDcWedriu99H8-sNXyI_aBr3HAXd37CsgmdfIJcgUNJJw + uri: + type: string + example: https:///oxauth/seam/resource/restv1/oxauth/end_session?id_token_hint=eyJraWQiOiI1YmM2ZGM3MS0xYjA1LTQ5YzMtYWU3MC0zYTg4Y2ZiMjQwN2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZyIsImF1ZCI6IkAhNUE1OC5BRTBELkQzODMuMUU0NiEwMDAxIUUzOEIuN0RCRSEwMDA4IUE3MTkuOTU4QS41QjdGLkVBQkMiLCJleHAiOjE0OTAwMTk5MjEsImlhdCI6MTQ5MDAxNjMyMSwibm9uY2UiOiJkNGdsbmtndHAxYWlqZ3JnY3V2cGp1N2k3cCIsImF1dGhfdGltZSI6MTQ5MDAxNjI3MiwiYXRfaGFzaCI6Im1Xa2NXQzZ6NC1qN0ZNX0ctX0tYMWciLCJveFZhbGlkYXRpb25VUkkiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZy9veGF1dGgvb3BpZnJhbWUiLCJveE9wZW5JRENvbm5lY3RWZXJzaW9uIjoib3BlbmlkY29ubmVjdC0xLjAiLCJzdWIiOiJONHRLRncyLVpDWTVWN0FhQmdpMnNHRWdDR0t0Tlg2LS01M2FQbmZFYk5zIn0.PvCdzPnMwqPNUw1bzd8tvzpJqYu-P2iCTnELr85ZaJTG8_Fdj3EruLgUBa-emeum3j29cFgdjFPx6WplfCV1GnehOieXjDiAAE85fy-stxXwII3xrva5ZjG0FnTYnJLoRmy0BWMjFC2IdCoISJI9imcfvmQmlvNmU0EjLS02cJf3JAaqEaM-FJWdQv8end9-Sq2bcp6ME3voRjV30ps_7jcDdlM_hW3M_e3RdrXYCDifbl_1jaNip5tb6_bLpgTADDoLT3fTvACRN057e2GCkSYdxvVhIjfDsjnOhk5n3TDcWedriu99H8-sNXyI_aBr3HAXd37CsgmdfIJcgUNJJw 400: description: Invalid parameters are provided to endpoint. 403: From 7ec8e1d1275cb82b3c9528c03e4b276e932d822a Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Wed, 31 Oct 2018 08:28:25 +0530 Subject: [PATCH 163/230] #233: Regenerated model for logout uri --- .../client/model/GetLogoutUriResponse.java | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java index 8261b948c..90804fec6 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetLogoutUriResponse.java @@ -21,38 +21,37 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import io.swagger.client.model.GetLogoutUriResponseClaims; import java.io.IOException; /** * GetLogoutUriResponse */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-31T01:45:57.530Z") public class GetLogoutUriResponse { - @SerializedName("claims") - private GetLogoutUriResponseClaims claims = null; + @SerializedName("uri") + private String uri = null; - public GetLogoutUriResponse claims(GetLogoutUriResponseClaims claims) { - this.claims = claims; + public GetLogoutUriResponse uri(String uri) { + this.uri = uri; return this; } /** - * Get claims - * @return claims + * Get uri + * @return uri **/ - @ApiModelProperty(value = "") - public GetLogoutUriResponseClaims getClaims() { - return claims; + @ApiModelProperty(example = "https:///oxauth/seam/resource/restv1/oxauth/end_session?id_token_hint=eyJraWQiOiI1YmM2ZGM3MS0xYjA1LTQ5YzMtYWU3MC0zYTg4Y2ZiMjQwN2QiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZyIsImF1ZCI6IkAhNUE1OC5BRTBELkQzODMuMUU0NiEwMDAxIUUzOEIuN0RCRSEwMDA4IUE3MTkuOTU4QS41QjdGLkVBQkMiLCJleHAiOjE0OTAwMTk5MjEsImlhdCI6MTQ5MDAxNjMyMSwibm9uY2UiOiJkNGdsbmtndHAxYWlqZ3JnY3V2cGp1N2k3cCIsImF1dGhfdGltZSI6MTQ5MDAxNjI3MiwiYXRfaGFzaCI6Im1Xa2NXQzZ6NC1qN0ZNX0ctX0tYMWciLCJveFZhbGlkYXRpb25VUkkiOiJodHRwczovL2NlLWRldi5nbHV1Lm9yZy9veGF1dGgvb3BpZnJhbWUiLCJveE9wZW5JRENvbm5lY3RWZXJzaW9uIjoib3BlbmlkY29ubmVjdC0xLjAiLCJzdWIiOiJONHRLRncyLVpDWTVWN0FhQmdpMnNHRWdDR0t0Tlg2LS01M2FQbmZFYk5zIn0.PvCdzPnMwqPNUw1bzd8tvzpJqYu-P2iCTnELr85ZaJTG8_Fdj3EruLgUBa-emeum3j29cFgdjFPx6WplfCV1GnehOieXjDiAAE85fy-stxXwII3xrva5ZjG0FnTYnJLoRmy0BWMjFC2IdCoISJI9imcfvmQmlvNmU0EjLS02cJf3JAaqEaM-FJWdQv8end9-Sq2bcp6ME3voRjV30ps_7jcDdlM_hW3M_e3RdrXYCDifbl_1jaNip5tb6_bLpgTADDoLT3fTvACRN057e2GCkSYdxvVhIjfDsjnOhk5n3TDcWedriu99H8-sNXyI_aBr3HAXd37CsgmdfIJcgUNJJw", required = true, value = "") + public String getUri() { + return uri; } - public void setClaims(GetLogoutUriResponseClaims claims) { - this.claims = claims; + public void setUri(String uri) { + this.uri = uri; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -60,12 +59,12 @@ public boolean equals(java.lang.Object o) { return false; } GetLogoutUriResponse getLogoutUriResponse = (GetLogoutUriResponse) o; - return Objects.equals(this.claims, getLogoutUriResponse.claims); + return Objects.equals(this.uri, getLogoutUriResponse.uri); } @Override public int hashCode() { - return Objects.hash(claims); + return Objects.hash(uri); } @@ -74,7 +73,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class GetLogoutUriResponse {\n"); - sb.append(" claims: ").append(toIndentedString(claims)).append("\n"); + sb.append(" uri: ").append(toIndentedString(uri)).append("\n"); sb.append("}"); return sb.toString(); } @@ -83,7 +82,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } From b387f14a24737c39d948e6ddc1d203d0251c0153 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Wed, 31 Oct 2018 11:46:37 +0530 Subject: [PATCH 164/230] #233: Added Test class for logout url end point --- .../swagger/client/api/GetLogoutUrlTest.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java new file mode 100644 index 000000000..19cd3d183 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java @@ -0,0 +1,76 @@ +package io.swagger.client.api; + +import io.swagger.client.ApiException; +import io.swagger.client.model.GetLogoutUriParams; +import io.swagger.client.model.GetLogoutUriResponse; +import io.swagger.client.model.RegisterSiteResponse; + +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import java.net.URLEncoder; +import java.util.UUID; + +import static io.swagger.client.api.Tester.api; +import static org.testng.Assert.*; + +/** + * Dummy test because we can't check real session management which is handled via browser cookies. + * + * @author Yuriy Zabrovarnyy + * @author Shoeb + * @version 10/31/2018 + */ + +public class GetLogoutUrlTest { + + @Parameters({"opHost", "redirectUrl", "postLogoutRedirectUrl"}) + @Test + public void test(String opHost, String redirectUrl, String postLogoutRedirectUrl) throws Exception { + DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, ""); + + final GetLogoutUriParams params = new GetLogoutUriParams(); + params.setOxdId(site.getOxdId()); + params.setIdTokenHint("dummy_token"); + params.setPostLogoutRedirectUri(postLogoutRedirectUrl); + params.setState(UUID.randomUUID().toString()); + params.setSessionState(UUID.randomUUID().toString()); // here must be real session instead of dummy UUID + + final GetLogoutUriResponse resp = client.getLogoutUri(Tester.getAuthorization(), params); + assertNotNull(resp); + assertNotNull(resp.getUri()); + assertTrue(resp.getUri().contains(URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"))); + } + + + @Test + public void testWithInvalidOxdId() throws Exception { + final DevelopersApi client = api(); + + final GetLogoutUriParams params = new GetLogoutUriParams(); + params.setOxdId(UUID.randomUUID().toString()); + + try { + client.getLogoutUri(Tester.getAuthorization(), params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); // fixme should be 404 (NOT_FOUND) instead of BAD_REQUEST, + } + } + + @Test + public void testWithNullOxdId() throws Exception { + final DevelopersApi client = api(); + + final GetLogoutUriParams params = new GetLogoutUriParams(); + params.setOxdId(null); + + try { + client.getLogoutUri(Tester.getAuthorization(), params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); //BAD_REQUEST + } + } + +} From 3e4eca2f3da0cbf0b9876519fca424cb50f00600 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Wed, 31 Oct 2018 11:47:45 +0530 Subject: [PATCH 165/230] #233: Added definition for logout url end point test --- oxd-server/src/test/resources/testng.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index c144e6caa..f7ea1fb72 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -170,4 +170,11 @@ + + + + + + + From b9981032ce650f39577c6a3e62e234b152b3f8c9 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 31 Oct 2018 12:35:35 +0200 Subject: [PATCH 166/230] fixed example fields in swagger spec --- oxd-server/src/main/resources/swagger.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index fe341b224..d6bfe775a 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -1041,12 +1041,12 @@ paths: example: 1535709072 client_id: type: string - example: @!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42 + example: "@!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42" sub: type: string aud: type: string - example: @!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42 + example: "@!DBE5.84F8.631A.9172!0001!CD07.49BE!0008!0ED4.C61D.6FA7.8F42" iss: type: string example: http://as.com From 5b3e2237d0226e0eb648de5e3e11ca4fe592e087 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 31 Oct 2018 12:40:30 +0200 Subject: [PATCH 167/230] #253 : fixing CLI to make work via http transport (it worked via sockets before). This commit does not solve problem with authorization (we can't open database directly if oxd-server is running due to 1 lock h2 database limit). https://github.com/GluuFederation/oxd/issues/253 --- .../src/main/java/org/xdi/oxd/server/Cli.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 319d701e2..1ea1ab35d 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -8,6 +8,7 @@ import io.dropwizard.jersey.validation.Validators; import io.dropwizard.jetty.ConnectorFactory; import io.dropwizard.jetty.HttpConnectorFactory; +import io.dropwizard.jetty.HttpsConnectorFactory; import io.dropwizard.server.DefaultServerFactory; import org.apache.commons.cli.*; import org.apache.commons.lang.StringUtils; @@ -26,6 +27,7 @@ import org.xdi.oxd.server.service.ConfigurationService; import org.xdi.oxd.server.service.Rp; import org.xdi.oxd.server.service.RpService; +import org.xdi.util.Pair; import java.io.File; import java.io.IOException; @@ -51,7 +53,8 @@ public static void main(String[] args) { Injector injector = ServerLauncher.getInjector(); - injector.getInstance(ConfigurationService.class).setConfiguration(parseConfiguration(cmd.getOptionValue("c"))); + final OxdServerConfiguration conf = parseConfiguration(cmd.getOptionValue("c")); + injector.getInstance(ConfigurationService.class).setConfiguration(conf); injector.getInstance(PersistenceService.class).create(); RpService rpService = injector.getInstance(RpService.class); @@ -137,18 +140,23 @@ private static void switchOffLogging() { } } - private static int getPort(OxdServerConfiguration conf) { + private static Pair getPort(OxdServerConfiguration conf) { final List applicationConnectors = ((DefaultServerFactory) conf.getServerFactory()).getApplicationConnectors(); if (applicationConnectors == null || applicationConnectors.isEmpty()) { System.out.println("Failed to fetch port from configuration."); - return -1; + return null; } - for (ConnectorFactory connectorFactory : applicationConnectors) { + for (ConnectorFactory connectorFactory : applicationConnectors) { // first look up https + if (connectorFactory instanceof HttpsConnectorFactory) { + return new Pair<>(((HttpsConnectorFactory) connectorFactory).getPort(), true); + } + } + for (ConnectorFactory connectorFactory : applicationConnectors) { // then http if (connectorFactory instanceof HttpConnectorFactory) { - return ((HttpConnectorFactory) connectorFactory).getPort(); + return new Pair<>(((HttpsConnectorFactory) connectorFactory).getPort(), false); } } - return -1; + return null; } private static void tryToConnectToRunningOxd(CommandLine cmd) { @@ -159,12 +167,14 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { return; } - final int port = getPort(conf); - if (port == -1) { + final Pair port = getPort(conf); + if (port == null) { + System.out.println("Failed to fetch port from configuration."); return; } - final ClientInterface client = OxdClient.newClient("https://localhost:" + port); + final String protocol = port.getSecond() ? "https" : "http"; + final ClientInterface client = OxdClient.newClient(protocol + "://localhost:" + port.getFirst()); String authorization = ""; // todo get authorization here try { if (cmd.hasOption("l")) { From f7ca73cdffa36ade2f79689d8c2a89c4014c99ff Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 31 Oct 2018 12:42:01 +0200 Subject: [PATCH 168/230] renamed LogoutResponse -> GetLogoutUriResponse to conform general pattern. --- .../java/org/xdi/oxd/client/ClientInterface.java | 2 +- ...goutResponse.java => GetLogoutUriResponse.java} | 14 ++++++-------- .../xdi/oxd/server/op/GetLogoutUrlOperation.java | 6 +++--- .../java/org/xdi/oxd/server/GetLogoutUrlTest.java | 4 ++-- 4 files changed, 12 insertions(+), 14 deletions(-) rename oxd-common/src/main/java/org/xdi/oxd/common/response/{LogoutResponse.java => GetLogoutUriResponse.java} (60%) diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index 9117e4069..4d3bf313b 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -82,7 +82,7 @@ public interface ClientInterface { @Path("/get-logout-uri") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - LogoutResponse getLogoutUri(@HeaderParam("Authorization") String authorization, GetLogoutUrlParams params); + GetLogoutUriResponse getLogoutUri(@HeaderParam("Authorization") String authorization, GetLogoutUrlParams params); @POST @Path("/get-access-token-by-refresh-token") diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetLogoutUriResponse.java similarity index 60% rename from oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java rename to oxd-common/src/main/java/org/xdi/oxd/common/response/GetLogoutUriResponse.java index 33622761d..486967b53 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/response/LogoutResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetLogoutUriResponse.java @@ -7,16 +7,16 @@ * @version 0.9, 17/11/2015 */ -public class LogoutResponse implements IOpResponse { +public class GetLogoutUriResponse implements IOpResponse { @JsonProperty(value = "uri") @com.fasterxml.jackson.annotation.JsonProperty(value = "uri") private String uri; - public LogoutResponse() { + public GetLogoutUriResponse() { } - public LogoutResponse(String uri) { + public GetLogoutUriResponse(String uri) { this.uri = uri; } @@ -30,10 +30,8 @@ public void setUri(String uri) { @Override public String toString() { - final StringBuilder sb = new StringBuilder(); - sb.append("LogoutResponse"); - sb.append("{uri='").append(uri).append('\''); - sb.append('}'); - return sb.toString(); + return "GetLogoutUriResponse" + + "{uri='" + uri + '\'' + + '}'; } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java index 45fbf8b9b..ca4e54a92 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetLogoutUrlOperation.java @@ -9,7 +9,7 @@ import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.GetLogoutUrlParams; import org.xdi.oxd.common.response.IOpResponse; -import org.xdi.oxd.common.response.LogoutResponse; +import org.xdi.oxd.common.response.GetLogoutUriResponse; import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.ConfigurationService; import org.xdi.oxd.server.service.Rp; @@ -54,7 +54,7 @@ public IOpResponse execute(GetLogoutUrlParams params) throws Exception { if (Strings.isNullOrEmpty(endSessionEndpoint)) { if (site.getOpHost().startsWith(GOOGLE_OP_HOST) && getInstance(ConfigurationService.class).get().getSupportGoogleLogout()) { String logoutUrl = "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=" + postLogoutRedirectUrl; - return new LogoutResponse(logoutUrl); + return new GetLogoutUriResponse(logoutUrl); } LOG.error("Failed to get end_session_endpoint at: " + getDiscoveryService().getConnectDiscoveryUrl(site)); @@ -72,7 +72,7 @@ public IOpResponse execute(GetLogoutUrlParams params) throws Exception { uri += separator(uri) + "session_state=" + params.getSessionState(); } - return new LogoutResponse(uri); + return new GetLogoutUriResponse(uri); } private static String separator(String uri) { diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java index b68a05ad2..3aa6ecacd 100644 --- a/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetLogoutUrlTest.java @@ -4,7 +4,7 @@ import org.testng.annotations.Test; import org.xdi.oxd.client.ClientInterface; import org.xdi.oxd.common.params.GetLogoutUrlParams; -import org.xdi.oxd.common.response.LogoutResponse; +import org.xdi.oxd.common.response.GetLogoutUriResponse; import org.xdi.oxd.common.response.RegisterSiteResponse; import java.io.IOException; @@ -37,7 +37,7 @@ public void test(String host, String opHost, String redirectUrl, String postLogo params.setState(UUID.randomUUID().toString()); params.setSessionState(UUID.randomUUID().toString()); // here must be real session instead of dummy UUID - final LogoutResponse resp = client.getLogoutUri(Tester.getAuthorization(), params); + final GetLogoutUriResponse resp = client.getLogoutUri(Tester.getAuthorization(), params); assertNotNull(resp); assertTrue(resp.getUri().contains(URLEncoder.encode(postLogoutRedirectUrl, "UTF-8"))); } From 917094687b2ab9a4245bc9c805b3b04a8386d4b0 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 31 Oct 2018 19:24:53 +0400 Subject: [PATCH 169/230] Update oxd-server-default --- debian/oxd-server-default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server-default b/debian/oxd-server-default index 2c97e991d..6d2e1a6e5 100755 --- a/debian/oxd-server-default +++ b/debian/oxd-server-default @@ -1,11 +1,11 @@ JAVA_HOME=/opt/jre JAVA=$JAVA_HOME/bin/java -OXD_LOGS=/var/log/oxd-server.log +OXD_LOGS=/var/log/oxd-server OXD_HOME=/opt/oxd-server CONF=/opt/oxd-server/conf LIB=$OXD_HOME/lib -JAVA_OPTIONS="-server -Xms256m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC -cp $LIB/oxd-server.jar" +JAVA_OPTIONS="-server -Xms256m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC" OXD_USER=jetty From 8822ac85c06e9fa05e7797f1c38a517b16f6ae7a Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 31 Oct 2018 18:48:13 +0200 Subject: [PATCH 170/230] fixed oxd-server.log file location /var/log/oxd-server.log -> /var/log/oxd-server/oxd-server.log --- oxd-server/src/main/resources/oxd-server.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index a07b59d44..c46447e5a 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -53,8 +53,8 @@ logging: - type: file threshold: INFO logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" - currentLogFilename: /var/log/oxd-server.log - archivedLogFilenamePattern: /var/log/oxd-server-%d{yyyy-MM-dd}-%i.log.gz + currentLogFilename: /var/log/oxd-server/oxd-server.log + archivedLogFilenamePattern: /var/log/oxd-server/oxd-server-%d{yyyy-MM-dd}-%i.log.gz archivedFileCount: 7 timeZone: UTC maxFileSize: 10MB From 2d297a5e9db610fcdf92ff1f56fe19c3bced66e2 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 31 Oct 2018 23:33:24 +0400 Subject: [PATCH 171/230] Update oxd-server-4.0.beta.init.d --- debian/oxd-server-4.0.beta.init.d | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/debian/oxd-server-4.0.beta.init.d b/debian/oxd-server-4.0.beta.init.d index 5d9784133..309e966c5 100644 --- a/debian/oxd-server-4.0.beta.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -178,7 +178,7 @@ TMPDIR=${TMPDIR:-/tmp} ################################################## # oxd-server's hallmark ################################################## -OXD_INSTALL_TRACE_FILE="oxd-server-jar-with-dependencies.jar" +OXD_INSTALL_TRACE_FILE="oxd-server.jar" ################################################## @@ -322,7 +322,7 @@ then CYGWIN*) OXD_LOGS="`cygpath -w $OXD_LOGS`";; esac - JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") + #JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.logging.dir=$OXD_LOGS") fi ##################################################### @@ -347,7 +347,6 @@ TMPDIR="`cygpath -w $TMPDIR`" esac #JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Doxd.home=$OXD_HOME" "-Doxd.base=$OXD_BASE" "-Djava.io.tmpdir=$TMPDIR") -JAVA_OPTIONS=(${JAVA_OPTIONS[*]} "-Djava.net.preferIPv4Stack=true -cp /opt/oxd-server/lib/bcprov-jdk15on-1.54.jar:/opt/oxd-server/lib/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server /opt/oxd-server/conf/oxd-server.yml") ##################################################### # This is how the oxd server will be started ##################################################### @@ -414,14 +413,14 @@ do_start () { then CH_USER="-c$OXD_USER" fi - - start-stop-daemon -S -p"$OXD_PID_FILE" $CH_USER -d"$OXD_BASE" -b -m -a "$JAVA" -- "${RUN_ARGS[@]}" start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 + + start-stop-daemon --start --quiet --make-pidfile --pidfile OXD_PID_FILE --background --exec $JAVA -- ${JAVA_OPTIONS[@]} >> $OXD_LOGS/start.log 2>&1 #dip_in_logs sleep 4 for i in 1 2 3 4 5 do - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'org.eclipse.jetty.server.Server: Started'` > /dev/null 2>&1 + START_STATUS=`tail -n 4 $OXD_INIT_LOG|grep -i 'o.e.j.s.Server - Started'` > /dev/null 2>&1 ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then break @@ -467,14 +466,14 @@ do_start () { chown "$OXD_USER" "$OXD_PID_FILE" # FIXME: Broken solution: wordsplitting, pathname expansion, arbitrary command execution, etc. su - "$OXD_USER" $SU_SHELL -c " - exec ${RUN_CMD[*]} start-log-file="$OXD_LOGS/start.log" >> "$OXD_LOGS/start.log" 2>&1 & + exec $JAVA ${JAVA_OPTIONS[@]} >> "$OXD_LOGS/start.log" 2>&1 & disown \$! echo \$! > '$OXD_PID_FILE'" #dip_in_logs sleep 4 for i in 1 2 3 4 5 do - START_STATUS=`tail -n 10 $OXD_INIT_LOG|grep -i 'org.eclipse.jetty.server.Server: Started'` > /dev/null 2>&1 + START_STATUS=`tail -n 4 $OXD_INIT_LOG|grep -i 'o.e.j.s.Server - Started'` > /dev/null 2>&1 ERROR_STATUS=`tail -n 10 $OXD_INIT_LOG|egrep -i "Failed to start oxd server|Error"` > /dev/null 2>&1 if [ "x$START_STATUS" != "x" ] || [ "x$ERROR_STATUS" != "x" ]; then break @@ -506,7 +505,7 @@ do_start () { fi fi else - "${RUN_CMD[@]}" > /dev/null & + $JAVA ${JAVA_OPTIONS[@]} > /dev/null & disown $! echo $! > "$OXD_PID_FILE" fi From 6ae0e7bcf475beceb1106e1e660946be5a668cba Mon Sep 17 00:00:00 2001 From: David Date: Wed, 31 Oct 2018 23:34:25 +0400 Subject: [PATCH 172/230] Update oxd-server-default --- debian/oxd-server-default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-server-default b/debian/oxd-server-default index 6d2e1a6e5..c30a575e2 100755 --- a/debian/oxd-server-default +++ b/debian/oxd-server-default @@ -6,6 +6,6 @@ OXD_HOME=/opt/oxd-server CONF=/opt/oxd-server/conf LIB=$OXD_HOME/lib -JAVA_OPTIONS="-server -Xms256m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC" +JAVA_OPTIONS="-server -Xms256m -Xmx512m -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC -Djava.net.preferIPv4Stack=true -cp /opt/oxd-server/lib/bcprov-jdk15on-1.54.jar:/opt/oxd-server/lib/oxd-server.jar org.xdi.oxd.server.OxdServerApplication server /opt/oxd-server/conf/oxd-server.yml" OXD_USER=jetty From 945a12d75a049421c59fe50e191169e82a826f2c Mon Sep 17 00:00:00 2001 From: David Date: Wed, 31 Oct 2018 23:57:47 +0400 Subject: [PATCH 173/230] Update oxd-server-4.0.beta.init.d --- debian/oxd-server-4.0.beta.init.d | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/oxd-server-4.0.beta.init.d b/debian/oxd-server-4.0.beta.init.d index 309e966c5..c1fee72b8 100644 --- a/debian/oxd-server-4.0.beta.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -414,7 +414,7 @@ do_start () { CH_USER="-c$OXD_USER" fi - start-stop-daemon --start --quiet --make-pidfile --pidfile OXD_PID_FILE --background --exec $JAVA -- ${JAVA_OPTIONS[@]} >> $OXD_LOGS/start.log 2>&1 + start-stop-daemon --start --quiet --make-pidfile --pidfile $OXD_PID_FILE --background --exec $JAVA -- ${JAVA_OPTIONS[@]} >> $OXD_LOGS/start.log 2>&1 #dip_in_logs sleep 4 @@ -452,7 +452,7 @@ do_start () { fi fi - chown "$OXD_USER" "$OXD_PID_FILE" + chown "$OXD_USER" "$OXD_PID_FILE" > /dev/null 2>&1 else if [ -n "$OXD_USER" ] && [ `whoami` != "$OXD_USER" ] then From 38d8d6742f439f7f0a823063486ad9a88a33c4b5 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 31 Oct 2018 23:59:48 +0400 Subject: [PATCH 174/230] Update postrm --- debian/postrm | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/debian/postrm b/debian/postrm index 3a75d7327..6175a8769 100644 --- a/debian/postrm +++ b/debian/postrm @@ -2,26 +2,16 @@ # Stopping oxd-server # This will stop oxd-server if its have been removed by purge -if [ -e /var/run/oxd-server.pid ]; then - kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 - rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 +if [ -e /var/run/oxd-server-4.0.beta.pid ]; then + kill -9 `cat /var/run/oxd-server-4.0.beta.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-server-4.0.beta.pid > /dev/null 2>&1 fi -# Stopping oxd-https-extension -# This will stop oxd-https-extension if its have been removed by purge -#if [ -e /var/run/oxd-https-extension.pid ]; then -# kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 -# rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 -#fi - # If purge selected remove all oxd files if [ "$1" = purge ]; then rm -rf /var/log/oxd-server > /dev/null 2>&1 - #rm -rf /var/log/oxd-https.log > /dev/null 2>&1 rm -rf /etc/init.d/oxd-server-4.0.beta > /dev/null 2>&1 - #rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 rm -rf /opt/oxd-server > /dev/null 2>&1 - #rm -rf /opt/oxd-https-extension > /dev/null 2>&1 fi mkdir -p /opt > /dev/null 2>&1 From ded4418975eac7812a4950c926d98c48d80bc317 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:00:18 +0400 Subject: [PATCH 175/230] Update install --- debian/install | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/debian/install b/debian/install index 30d099f0d..f7b4ab61d 100644 --- a/debian/install +++ b/debian/install @@ -1,2 +1 @@ -#debian/oxd-https-extension.init.d /etc/init.d/ -#debian/oxd-server-default /etc/default/ +# Nothing to install here From f8175bf7208b10135cefb46f8cf499a08d90df46 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:00:54 +0400 Subject: [PATCH 176/230] Update preinst --- debian/preinst | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/debian/preinst b/debian/preinst index 795f75b02..adad4540c 100644 --- a/debian/preinst +++ b/debian/preinst @@ -3,16 +3,10 @@ if [ "$1" = upgrade ] || [ "$1" = install ]; then # Stopping oxd-server # This will stop oxd-server before upgrade|install - if [ -e /var/run/oxd-server.pid ]; then - kill -9 `cat /var/run/oxd-server.pid` > /dev/null 2>&1 - rm -rf /var/run/oxd-server.pid > /dev/null 2>&1 + if [ -e /var/run/oxd-server-4.0.beta.pid ]; then + kill -9 `cat /var/run/oxd-server-4.0.beta.pid` > /dev/null 2>&1 + rm -rf /var/run/oxd-server-4.0.beta.pid > /dev/null 2>&1 fi - # Stopping oxd-https-extension - # This will stop oxd-https-extension before upgrade|install - #if [ -e /var/run/oxd-https-extension.pid ]; then - # kill -9 `cat /var/run/oxd-https-extension.pid` > /dev/null 2>&1 - # rm -rf /var/run/oxd-https-extension.pid > /dev/null 2>&1 - #fi fi exit 0 From a7a9d4331a06ff2df8d229d6d22e1ab64c7d1dc2 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:01:12 +0400 Subject: [PATCH 177/230] Update prerm --- debian/prerm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/debian/prerm b/debian/prerm index f7f11bdcf..b70927654 100644 --- a/debian/prerm +++ b/debian/prerm @@ -5,9 +5,4 @@ if [ -x /etc/init.d/oxd-server-4.0.beta ]; then /etc/init.d/oxd-server-4.0.beta stop > /dev/null 2>&1 & fi -# Stopping oxd-https-extension -#if [ -x /etc/init.d/oxd-https-extension ]; then -#/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 & -#fi - exit 0 From aa6cc817f13fa2723292cf9735b39b35421ce5eb Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:02:43 +0400 Subject: [PATCH 178/230] Update rules --- debian/rules | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/debian/rules b/debian/rules index c1f7d7494..5f2196ae9 100755 --- a/debian/rules +++ b/debian/rules @@ -22,10 +22,6 @@ override_dh_auto_install: mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/data/ mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/conf/ mkdir -p debian/oxd-server-4.0.beta/opt/oxd-server/lib/ - #mkdir -p debian/oxd-server/opt/oxd-https-extension/lib/ - #cp oxd-server/src/main/resources/oxd-conf.json debian/oxd-server/opt/oxd-server/conf/ - #cp oxd-server/src/main/resources/oxd-default-site-config.json debian/oxd-server/opt/oxd-server/conf/ - #cp oxd-server/src/main/resources/log4j.xml debian/oxd-server/opt/oxd-server/conf/ cp oxd-server/src/main/bin/oxd-start.sh debian/oxd-server-4.0.beta/opt/oxd-server/bin/ cp oxd-server/src/main/bin/lsox.sh debian/oxd-server-4.0.beta/opt/oxd-server/bin/ cp oxd-server/src/main/resources/oxd-server.yml debian/oxd-server-4.0.beta/opt/oxd-server/conf/ @@ -33,18 +29,10 @@ override_dh_auto_install: cp oxd-server/src/main/resources/swagger.yaml debian/oxd-server-4.0.beta/opt/oxd-server/conf/ cp bcprov-jdk15on-1.54.jar debian/oxd-server-4.0.beta/opt/oxd-server/lib/ cp oxd-server/target/oxd-server.jar debian/oxd-server-4.0.beta/opt/oxd-server/lib/ - #cp oxd-https-extension/target/oxd-https-extension-4.0.beta-SNAPSHOT.jar debian/oxd-server/opt/oxd-https-extension/lib/oxd-https-extension-jar-with-dependencies.jar - #cp oxd-https-extension/oxd-https.keystore debian/oxd-server/opt/oxd-https-extension/lib/ - #cp oxd-https-extension/oxd-https.yml debian/oxd-server/opt/oxd-https-extension/lib/ - mkdir -p debian/oxd-server-4.0.beta/var/log/oxd-server/ touch debian/oxd-server-4.0.beta/var/log/oxd-server/oxd-server.log - #mkdir -p debian/oxd-server/etc/oxd/oxd-server/ mkdir -p debian/oxd-server-4.0.beta/etc/default/ - #cp -a debian/oxd-server/opt/oxd-server/conf/* debian/oxd-server/etc/oxd/oxd-server/. cp -a debian/oxd-server-default debian/oxd-server-4.0.beta/etc/default/oxd-server-4.0.beta - #cp -a debian/oxd-https-extension-default debian/oxd-server/etc/default/oxd-https-extension - #rm -rf debian/oxd-server/opt/oxd-server/conf override_dh_fixperms: dh_fixperms @@ -53,4 +41,4 @@ override_dh_fixperms: chmod 644 debian/oxd-server-4.0.beta/etc/default/oxd-server-4.0.beta chown -R jetty:jetty debian/oxd-server-4.0.beta/opt/oxd-server/data chown -R jetty:jetty debian/oxd-server-4.0.beta/var/log/oxd-server/ - chmod 664 debian/oxd-server-4.0.beta/opt/oxd-server/data + chmod 764 debian/oxd-server-4.0.beta/opt/oxd-server/data From aeaba8d5251fec4772c053eea7d04f5de4f0beff Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:03:28 +0400 Subject: [PATCH 179/230] Update postinst --- debian/postinst | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/debian/postinst b/debian/postinst index 77e3c8017..4cc438e7d 100644 --- a/debian/postinst +++ b/debian/postinst @@ -1,7 +1,6 @@ #!/bin/bash /etc/init.d/oxd-server-4.0.beta stop > /dev/null 2>&1 -#/etc/init.d/oxd-https-extension stop > /dev/null 2>&1 getent passwd jetty > /dev/null 2>&1 if [ $? -ne 0 ]; then @@ -13,20 +12,10 @@ if [ $? -ne 0 ]; then /usr/sbin/usermod -a -G gluu jetty fi -#chown root:gluu /var/log/oxd-server.log 2>&1 chown root:root /etc/default/oxd-server-4.0.beta 2>&1 chown jetty:jetty -R /opt/oxd-server 2>&1 -#touch /var/log/oxd-server.log 2>&1 -#chown jetty:jetty /var/log/oxd-server.log 2>&1 -#chmod 665 /var/log/oxd-server.log 2>&1 chmod 644 /etc/default/oxd-server-4.0.beta 2>&1 mkdir -p /var/log/oxd-server 2>&1 touch /var/log/oxd-server/oxd-server.log 2>&1 chown -R jetty:jetty /var/log/oxd-server 2>&1 -#touch /var/log/oxd-server.log 2>&1 -#chown -R jetty:jetty /var/log/oxd-server.log 2>&1 -#if [ -e /etc/init.d/oxd-https-extension.init.d ]; then -# rm -rf /etc/init.d/oxd-https-extension > /dev/null 2>&1 -# mv /etc/init.d/oxd-https-extension.init.d /etc/init.d/oxd-https-extension > /dev/null 2>&1 -#fi exit 0 From 6d74defd6bcbfd040ec831bb0cd116c539686b8d Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Nov 2018 00:32:51 +0400 Subject: [PATCH 180/230] Update oxd-server-4.0.beta.init.d --- debian/oxd-server-4.0.beta.init.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/oxd-server-4.0.beta.init.d b/debian/oxd-server-4.0.beta.init.d index c1fee72b8..ec71119b3 100644 --- a/debian/oxd-server-4.0.beta.init.d +++ b/debian/oxd-server-4.0.beta.init.d @@ -414,7 +414,7 @@ do_start () { CH_USER="-c$OXD_USER" fi - start-stop-daemon --start --quiet --make-pidfile --pidfile $OXD_PID_FILE --background --exec $JAVA -- ${JAVA_OPTIONS[@]} >> $OXD_LOGS/start.log 2>&1 + start-stop-daemon --start --quiet --chuid $OXD_USER --make-pidfile --pidfile $OXD_PID_FILE --background --exec $JAVA -- ${JAVA_OPTIONS[@]} >> $OXD_LOGS/start.log 2>&1 #dip_in_logs sleep 4 From 0503070b8af036d60f1a0d1dd04565c3c81230f1 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 2 Nov 2018 13:55:00 +0200 Subject: [PATCH 181/230] #259 : added access_token_as_jwt and access_token_signing_alg parameters to /register-site and /update-site commands. https://github.com/GluuFederation/oxd/issues/259 --- .../oxd/common/params/RegisterSiteParams.java | 22 +++++++++++++++++ .../oxd/common/params/UpdateSiteParams.java | 22 +++++++++++++++++ .../oxd/server/op/RegisterSiteOperation.java | 5 ++++ .../oxd/server/op/UpdateSiteOperation.java | 15 ++++++++++++ .../java/org/xdi/oxd/server/service/Rp.java | 24 +++++++++++++++++++ oxd-server/src/main/resources/swagger.yaml | 15 +++++++++++- 6 files changed, 102 insertions(+), 1 deletion(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/params/RegisterSiteParams.java b/oxd-common/src/main/java/org/xdi/oxd/common/params/RegisterSiteParams.java index 6ccfdb73c..b8ba8094e 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/params/RegisterSiteParams.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/params/RegisterSiteParams.java @@ -67,10 +67,30 @@ public class RegisterSiteParams implements HasOxdIdParams { private List contacts; @JsonProperty(value = "trusted_client") private Boolean trusted_client = false; + @JsonProperty(value = "access_token_as_jwt") + private Boolean access_token_as_jwt = false; + @JsonProperty(value = "access_token_signing_alg") + private String access_token_signing_alg; public RegisterSiteParams() { } + public Boolean getAccessTokenAsJwt() { + return access_token_as_jwt; + } + + public void setAccessTokenAsJwt(Boolean access_token_as_jwt) { + this.access_token_as_jwt = access_token_as_jwt; + } + + public String getAccessTokenSigningAlg() { + return access_token_signing_alg; + } + + public void setAccessTokenSigningAlg(String access_token_signing_alg) { + this.access_token_signing_alg = access_token_signing_alg; + } + public String getClientRegistrationAccessToken() { return client_registration_access_token; } @@ -299,6 +319,8 @@ public String toString() { ", grant_types=" + grant_types + ", contacts=" + contacts + ", trusted_client=" + trusted_client + + ", access_token_as_jwt=" + access_token_as_jwt + + ", access_token_signing_alg=" + access_token_signing_alg + '}'; } diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/params/UpdateSiteParams.java b/oxd-common/src/main/java/org/xdi/oxd/common/params/UpdateSiteParams.java index 408fc23ae..c2abdc376 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/params/UpdateSiteParams.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/params/UpdateSiteParams.java @@ -54,6 +54,10 @@ public class UpdateSiteParams implements HasProtectionAccessTokenParams { private List contacts; @JsonProperty(value = "protection_access_token") private String protection_access_token; + @JsonProperty(value = "access_token_as_jwt") + private Boolean access_token_as_jwt = false; + @JsonProperty(value = "access_token_signing_alg") + private String access_token_signing_alg; public UpdateSiteParams() { } @@ -210,6 +214,22 @@ public void setContacts(List contacts) { this.contacts = contacts; } + public Boolean getAccessTokenAsJwt() { + return access_token_as_jwt; + } + + public void setAccessTokenAsJwt(Boolean access_token_as_jwt) { + this.access_token_as_jwt = access_token_as_jwt; + } + + public String getAccessTokenSigningAlg() { + return access_token_signing_alg; + } + + public void setAccessTokenSigningAlg(String access_token_signing_alg) { + this.access_token_signing_alg = access_token_signing_alg; + } + @Override public String toString() { final StringBuilder sb = new StringBuilder(); @@ -228,6 +248,8 @@ public String toString() { sb.append(", grant_types=").append(grant_types); sb.append(", contacts=").append(contacts); sb.append(", protection_access_token=").append(protection_access_token); + sb.append(", access_token_as_jwt=").append(access_token_as_jwt); + sb.append(", access_token_signing_alg=").append(access_token_signing_alg); sb.append('}'); return sb.toString(); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java index c1f774ea7..4471188ce 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/RegisterSiteOperation.java @@ -326,6 +326,11 @@ private RegisterRequest createRegisterClientRequest(RegisterSiteParams params) { request.setSectorIdentifierUri(params.getClientSectorIdentifierUri()); } + request.setAccessTokenAsJwt(params.getAccessTokenAsJwt()); + request.setAccessTokenSigningAlg(SignatureAlgorithm.fromString(params.getAccessTokenSigningAlg())); + + rp.setAccessTokenAsJwt(params.getAccessTokenAsJwt()); + rp.setAccessTokenSigningAlg(params.getAccessTokenSigningAlg()); rp.setResponseTypes(params.getResponseTypes()); rp.setPostLogoutRedirectUri(params.getPostLogoutRedirectUri()); rp.setContacts(params.getContacts()); diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java index 92f4e706c..db0c4ed1c 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/UpdateSiteOperation.java @@ -11,6 +11,7 @@ import org.xdi.oxauth.client.RegisterResponse; import org.xdi.oxauth.model.common.GrantType; import org.xdi.oxauth.model.common.ResponseType; +import org.xdi.oxauth.model.crypto.signature.SignatureAlgorithm; import org.xdi.oxd.common.Command; import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.UpdateSiteParams; @@ -138,6 +139,20 @@ private RegisterRequest createRegisterClientRequest(Rp rp, UpdateSiteParams para rp.setRedirectUris(Lists.newArrayList(redirectUris)); } + if (params.getAccessTokenAsJwt() != null) { + rp.setAccessTokenAsJwt(params.getAccessTokenAsJwt()); + request.setAccessTokenAsJwt(params.getAccessTokenAsJwt()); + } else { + request.setAccessTokenAsJwt(rp.getAccessTokenAsJwt()); + } + + if (params.getAccessTokenSigningAlg() != null) { + rp.setAccessTokenSigningAlg(params.getAccessTokenSigningAlg()); + request.setAccessTokenSigningAlg(SignatureAlgorithm.fromString(params.getAccessTokenSigningAlg())); + } else { + request.setAccessTokenSigningAlg(SignatureAlgorithm.fromString(rp.getAccessTokenSigningAlg())); + } + if (!Strings.isNullOrEmpty(params.getClientJwksUri())) { request.setJwksUri(params.getClientJwksUri()); } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java index e6abd7b5c..c11565063 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/service/Rp.java @@ -114,6 +114,10 @@ public class Rp implements Serializable { private Date rptCreatedAt; @JsonProperty(value = "oxd_rp_programming_language") private String oxdRpProgrammingLanguage; + @JsonProperty(value = "access_token_as_jwt") + private Boolean accessTokenAsJwt = false; + @JsonProperty(value = "access_token_signing_alg") + private String accessTokenSigningAlg; public Rp() { } @@ -173,6 +177,24 @@ public Rp(Rp conf) { this.umaProtectedResources = conf.umaProtectedResources; this.oxdRpProgrammingLanguage = conf.oxdRpProgrammingLanguage; + this.accessTokenAsJwt = conf.accessTokenAsJwt; + this.accessTokenSigningAlg = conf.accessTokenSigningAlg; + } + + public Boolean getAccessTokenAsJwt() { + return accessTokenAsJwt; + } + + public void setAccessTokenAsJwt(Boolean accessTokenAsJwt) { + this.accessTokenAsJwt = accessTokenAsJwt; + } + + public String getAccessTokenSigningAlg() { + return accessTokenSigningAlg; + } + + public void setAccessTokenSigningAlg(String accessTokenSigningAlg) { + this.accessTokenSigningAlg = accessTokenSigningAlg; } public List getFrontChannelLogoutUri() { @@ -621,6 +643,8 @@ public String toString() { ", tokenEndpointAuthSigningAlg=" + tokenEndpointAuthSigningAlg + ", tokenEndpointAuthMethod=" + tokenEndpointAuthMethod + ", oxdRpProgrammingLanguage=" + oxdRpProgrammingLanguage + + ", accessTokenAsJwt=" + accessTokenAsJwt + + ", accessTokenSigningAlg=" + accessTokenSigningAlg + '}'; } } diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index ffc4414ae..0a17a11d8 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -322,7 +322,13 @@ paths: description: client secret of existing client, must be used together with client_id trusted_client: type: boolean - description: specified whether client is trusted. Default value is false. + description: specifies whether client is trusted. Default value is false. + access_token_as_jwt: + type: boolean + description: specifies whether access_token should be return as JWT or not. Default value is false. + accessTokenSigningAlg: + type: string + description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 responses: 200: @@ -444,6 +450,13 @@ paths: type: array items: type: string + access_token_as_jwt: + type: boolean + description: specifies whether access_token should be return as JWT or not. Default value is false. + accessTokenSigningAlg: + type: string + description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 + responses: 200: description: OK From 2979a97ef1c016622ff8c3bb6785c3da780c9cc3 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 2 Nov 2018 14:12:12 +0200 Subject: [PATCH 182/230] #259 : typo --- oxd-server/src/main/resources/swagger.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 0a17a11d8..8e26c80d7 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -326,7 +326,7 @@ paths: access_token_as_jwt: type: boolean description: specifies whether access_token should be return as JWT or not. Default value is false. - accessTokenSigningAlg: + access_token_signing_alg: type: string description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 @@ -453,7 +453,7 @@ paths: access_token_as_jwt: type: boolean description: specifies whether access_token should be return as JWT or not. Default value is false. - accessTokenSigningAlg: + access_token_signing_alg: type: string description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 From 7d3f7266bb9865f538db98ba045899581f076029 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 4 Nov 2018 12:41:24 +0530 Subject: [PATCH 183/230] #233: Added definitions for RsResource and its internal objects --- oxd-server/src/main/resources/swagger.yaml | 45 +++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 8e26c80d7..52d935bf3 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -911,7 +911,7 @@ paths: resources: type: array items: - type: object + $ref: "#/definitions/RsResource" responses: 200: description: OK @@ -973,11 +973,14 @@ paths: title: UmaRsCheckAccessResponse required: - access + - ticket properties: access: type: string example: granted description: Possible values are granted, denied + ticket: + type: string 400: description: Invalid parameters are provided to endpoint. 403: @@ -1209,3 +1212,43 @@ definitions: oxd_id: type: string example: bcad760f-91ba-46e1-a020-05e4281d91b6 + + # List of reusable objects + Condition: + type: object + required: + - httpMethods + - scopes + - scope_expression + - ticketScopes + properties: + httpMethods: + type: array + items: + type: string + scopes: + type: array + items: + type: string + scope_expression: + type: array + items: + type: string + ticketScopes: + type: array + items: + type: string + + RsResource: + type: object + required: + - path + - conditions + properties: + path: + type: string + conditions: + type: array + items: + $ref: "#/definitions/Condition" + From 8aa469624cbe36230bb76afe4eb715e078c7cb3c Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 4 Nov 2018 12:42:02 +0530 Subject: [PATCH 184/230] #233: Regenerated files for RsResource swagger definition --- .../io/swagger/client/model/Condition.java | 184 ++++++++++++++++++ .../io/swagger/client/model/RsResource.java | 124 ++++++++++++ .../model/UmaRsCheckAccessResponse.java | 35 +++- .../client/model/UmaRsProtectParams.java | 19 +- 4 files changed, 347 insertions(+), 15 deletions(-) create mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/Condition.java create mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/RsResource.java diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/Condition.java b/oxd-gen-client/src/main/java/io/swagger/client/model/Condition.java new file mode 100644 index 000000000..9150cc272 --- /dev/null +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/Condition.java @@ -0,0 +1,184 @@ +/* + * oxd-server + * oxd-server + * + * OpenAPI spec version: 4.0.beta + * Contact: yuriyz@gluu.org + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package io.swagger.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * Condition + */ +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-02T03:20:19.280Z") +public class Condition { + @SerializedName("httpMethods") + private List httpMethods = new ArrayList(); + + @SerializedName("scopes") + private List scopes = new ArrayList(); + + @SerializedName("scope_expression") + private List scopeExpression = new ArrayList(); + + @SerializedName("ticketScopes") + private List ticketScopes = new ArrayList(); + + public Condition httpMethods(List httpMethods) { + this.httpMethods = httpMethods; + return this; + } + + public Condition addHttpMethodsItem(String httpMethodsItem) { + this.httpMethods.add(httpMethodsItem); + return this; + } + + /** + * Get httpMethods + * @return httpMethods + **/ + @ApiModelProperty(required = true, value = "") + public List getHttpMethods() { + return httpMethods; + } + + public void setHttpMethods(List httpMethods) { + this.httpMethods = httpMethods; + } + + public Condition scopes(List scopes) { + this.scopes = scopes; + return this; + } + + public Condition addScopesItem(String scopesItem) { + this.scopes.add(scopesItem); + return this; + } + + /** + * Get scopes + * @return scopes + **/ + @ApiModelProperty(required = true, value = "") + public List getScopes() { + return scopes; + } + + public void setScopes(List scopes) { + this.scopes = scopes; + } + + public Condition scopeExpression(List scopeExpression) { + this.scopeExpression = scopeExpression; + return this; + } + + public Condition addScopeExpressionItem(String scopeExpressionItem) { + this.scopeExpression.add(scopeExpressionItem); + return this; + } + + /** + * Get scopeExpression + * @return scopeExpression + **/ + @ApiModelProperty(required = true, value = "") + public List getScopeExpression() { + return scopeExpression; + } + + public void setScopeExpression(List scopeExpression) { + this.scopeExpression = scopeExpression; + } + + public Condition ticketScopes(List ticketScopes) { + this.ticketScopes = ticketScopes; + return this; + } + + public Condition addTicketScopesItem(String ticketScopesItem) { + this.ticketScopes.add(ticketScopesItem); + return this; + } + + /** + * Get ticketScopes + * @return ticketScopes + **/ + @ApiModelProperty(required = true, value = "") + public List getTicketScopes() { + return ticketScopes; + } + + public void setTicketScopes(List ticketScopes) { + this.ticketScopes = ticketScopes; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Condition condition = (Condition) o; + return Objects.equals(this.httpMethods, condition.httpMethods) && + Objects.equals(this.scopes, condition.scopes) && + Objects.equals(this.scopeExpression, condition.scopeExpression) && + Objects.equals(this.ticketScopes, condition.ticketScopes); + } + + @Override + public int hashCode() { + return Objects.hash(httpMethods, scopes, scopeExpression, ticketScopes); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class Condition {\n"); + + sb.append(" httpMethods: ").append(toIndentedString(httpMethods)).append("\n"); + sb.append(" scopes: ").append(toIndentedString(scopes)).append("\n"); + sb.append(" scopeExpression: ").append(toIndentedString(scopeExpression)).append("\n"); + sb.append(" ticketScopes: ").append(toIndentedString(ticketScopes)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RsResource.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RsResource.java new file mode 100644 index 000000000..3ca92f4a4 --- /dev/null +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/RsResource.java @@ -0,0 +1,124 @@ +/* + * oxd-server + * oxd-server + * + * OpenAPI spec version: 4.0.beta + * Contact: yuriyz@gluu.org + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package io.swagger.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.client.model.Condition; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * RsResource + */ +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-02T03:20:19.280Z") +public class RsResource { + @SerializedName("path") + private String path = null; + + @SerializedName("conditions") + private List conditions = new ArrayList(); + + public RsResource path(String path) { + this.path = path; + return this; + } + + /** + * Get path + * @return path + **/ + @ApiModelProperty(required = true, value = "") + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public RsResource conditions(List conditions) { + this.conditions = conditions; + return this; + } + + public RsResource addConditionsItem(Condition conditionsItem) { + this.conditions.add(conditionsItem); + return this; + } + + /** + * Get conditions + * @return conditions + **/ + @ApiModelProperty(required = true, value = "") + public List getConditions() { + return conditions; + } + + public void setConditions(List conditions) { + this.conditions = conditions; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RsResource rsResource = (RsResource) o; + return Objects.equals(this.path, rsResource.path) && + Objects.equals(this.conditions, rsResource.conditions); + } + + @Override + public int hashCode() { + return Objects.hash(path, conditions); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RsResource {\n"); + + sb.append(" path: ").append(toIndentedString(path)).append("\n"); + sb.append(" conditions: ").append(toIndentedString(conditions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java index 5290fe2b5..e111dcc35 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsCheckAccessResponse.java @@ -2,7 +2,7 @@ * oxd-server * oxd-server * - * OpenAPI spec version: 4.0.0 + * OpenAPI spec version: 4.0.beta * Contact: yuriyz@gluu.org * * NOTE: This class is auto generated by the swagger code generator program. @@ -26,11 +26,14 @@ /** * UmaRsCheckAccessResponse */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-01T06:40:52.054Z") public class UmaRsCheckAccessResponse { @SerializedName("access") private String access = null; + @SerializedName("ticket") + private String ticket = null; + public UmaRsCheckAccessResponse access(String access) { this.access = access; return this; @@ -49,9 +52,27 @@ public void setAccess(String access) { this.access = access; } + public UmaRsCheckAccessResponse ticket(String ticket) { + this.ticket = ticket; + return this; + } + + /** + * Get ticket + * @return ticket + **/ + @ApiModelProperty(required = true, value = "") + public String getTicket() { + return ticket; + } + + public void setTicket(String ticket) { + this.ticket = ticket; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -59,12 +80,13 @@ public boolean equals(java.lang.Object o) { return false; } UmaRsCheckAccessResponse umaRsCheckAccessResponse = (UmaRsCheckAccessResponse) o; - return Objects.equals(this.access, umaRsCheckAccessResponse.access); + return Objects.equals(this.access, umaRsCheckAccessResponse.access) && + Objects.equals(this.ticket, umaRsCheckAccessResponse.ticket); } @Override public int hashCode() { - return Objects.hash(access); + return Objects.hash(access, ticket); } @@ -74,6 +96,7 @@ public String toString() { sb.append("class UmaRsCheckAccessResponse {\n"); sb.append(" access: ").append(toIndentedString(access)).append("\n"); + sb.append(" ticket: ").append(toIndentedString(ticket)).append("\n"); sb.append("}"); return sb.toString(); } @@ -82,7 +105,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java index ef5c00e84..7885b4bc0 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UmaRsProtectParams.java @@ -2,7 +2,7 @@ * oxd-server * oxd-server * - * OpenAPI spec version: 4.0.0 + * OpenAPI spec version: 4.0.beta * Contact: yuriyz@gluu.org * * NOTE: This class is auto generated by the swagger code generator program. @@ -21,6 +21,7 @@ import com.google.gson.stream.JsonWriter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import io.swagger.client.model.RsResource; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -28,7 +29,7 @@ /** * UmaRsProtectParams */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-02T03:20:19.280Z") public class UmaRsProtectParams { @SerializedName("oxd_id") private String oxdId = null; @@ -37,7 +38,7 @@ public class UmaRsProtectParams { private Boolean overwrite = null; @SerializedName("resources") - private List resources = new ArrayList(); + private List resources = new ArrayList(); public UmaRsProtectParams oxdId(String oxdId) { this.oxdId = oxdId; @@ -75,12 +76,12 @@ public void setOverwrite(Boolean overwrite) { this.overwrite = overwrite; } - public UmaRsProtectParams resources(List resources) { + public UmaRsProtectParams resources(List resources) { this.resources = resources; return this; } - public UmaRsProtectParams addResourcesItem(Object resourcesItem) { + public UmaRsProtectParams addResourcesItem(RsResource resourcesItem) { this.resources.add(resourcesItem); return this; } @@ -90,17 +91,17 @@ public UmaRsProtectParams addResourcesItem(Object resourcesItem) { * @return resources **/ @ApiModelProperty(required = true, value = "") - public List getResources() { + public List getResources() { return resources; } - public void setResources(List resources) { + public void setResources(List resources) { this.resources = resources; } @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -135,7 +136,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } From 13df94fb803bf06f5719d3e91b969b449201a831 Mon Sep 17 00:00:00 2001 From: Mustafa Baser Date: Tue, 6 Nov 2018 00:42:45 +0300 Subject: [PATCH 185/230] add upgrade script --- upgrade/oxd-server.yml.temp | 71 +++++++++++++++++ upgrade/oxd_updater.py | 153 ++++++++++++++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 upgrade/oxd-server.yml.temp create mode 100644 upgrade/oxd_updater.py diff --git a/upgrade/oxd-server.yml.temp b/upgrade/oxd-server.yml.temp new file mode 100644 index 000000000..871d094a3 --- /dev/null +++ b/upgrade/oxd-server.yml.temp @@ -0,0 +1,71 @@ +# server configuration +use_client_authentication_for_pat: {{use_client_authentication_for_pat}} +trust_all_certs: {{trust_all_certs}} +trust_store_path: {{trust_store_path}} +trust_store_password: {{trust_store_password}} +crypt_provider_key_store_path: {{crypt_provider_key_store_path}} +crypt_provider_key_store_password: {{crypt_provider_key_store_password}} +crypt_provider_dn_name: {{crypt_provider_dn_name}} +support-google-logout: {{support-google-logout}} +state_expiration_in_minutes: {{state_expiration_in_minutes}} +nonce_expiration_in_minutes: {{nonce_expiration_in_minutes}} +public_op_key_cache_expiration_in_minutes: {{public_op_key_cache_expiration_in_minutes}} +protect_commands_with_access_token: {{protect_commands_with_access_token}} +uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client: {{uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client}} +migration_source_folder_path: {{migration_source_folder_path}} +storage: h2 +storage_configuration: + dbFileLocation: {{storage_configuration:dbFileLocation}} + +# Connectors +server: + applicationConnectors: + - type: https + port: 8443 + keyStorePath: /opt/oxd-server/conf/oxd-server.keystore + keyStorePassword: example + validateCerts: false + adminConnectors: + - type: https + port: 8444 + keyStorePath: /opt/oxd-server/conf/oxd-server.keystore + keyStorePassword: example + validateCerts: false + +# Logging settings. +logging: + + # The default level of all loggers. Can be OFF, ERROR, WARN, INFO, DEBUG, TRACE, or ALL. + level: {{logging:level}} + + # Logger-specific levels. + loggers: + org.gluu: TRACE + org.xdi: {{logging:loggers:org.xdi}} + +# Logback's Time Based Rolling Policy - archivedLogFilenamePattern: /tmp/application-%d{yyyy-MM-dd}.log.gz +# Logback's Size and Time Based Rolling Policy - archivedLogFilenamePattern: /tmp/application-%d{yyyy-MM-dd}-%i.log.gz +# Logback's Fixed Window Rolling Policy - archivedLogFilenamePattern: /tmp/application-%i.log.gz + + appenders: + - type: console + - type: file + threshold: INFO + logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" + #currentLogFilename: {{logging:appenders|1:currentLogFilename}} + currentLogFilename: /var/log/oxd-server/oxd-server.log + archivedLogFilenamePattern: {{logging:appenders|1:archivedLogFilenamePattern}} + archivedFileCount: 7 + timeZone: UTC + maxFileSize: 10MB + +defaultSiteConfig: + op_host: {{defaultSiteConfig:op_host}} + op_discovery_path: {{defaultSiteConfig:op_discovery_path}} + response_types: {{defaultSiteConfig:response_types}} + grant_type: {{defaultSiteConfig:response_types}} + acr_values: {{defaultSiteConfig:acr_values}} + scope: {{defaultSiteConfig:scope}} + ui_locales: {{defaultSiteConfig:ui_locales}} + claims_locales: {{defaultSiteConfig:claims_locales}} + contacts: {{defaultSiteConfig:contacts}} diff --git a/upgrade/oxd_updater.py b/upgrade/oxd_updater.py new file mode 100644 index 000000000..29b1555f1 --- /dev/null +++ b/upgrade/oxd_updater.py @@ -0,0 +1,153 @@ +import os +import time +import glob +import shutil +import json +import xml.etree.ElementTree as ET +import string +import yaml +import re + + +def get_by_attrib(elements, attrib, value=True): + for element in elements: + if element.get('name') == attrib: + if value: + return element.get('value') + return element + if value: + return '' + +def json_load_byteified(file_handle): + return _byteify( + json.load(open(file_handle), object_hook=_byteify), + ignore_dicts=True + ) + + +def _byteify(data, ignore_dicts = False): + # if this is a unicode string, return its string representation + if isinstance(data, unicode): + return data.encode('utf-8') + # if this is a list of values, return list of byteified values + if isinstance(data, list): + return [ _byteify(item, ignore_dicts=True) for item in data ] + # if this is a dictionary, return dictionary of byteified keys and values + # but only if we haven't already byteified it + if isinstance(data, dict) and not ignore_dicts: + return { + _byteify(key, ignore_dicts=True): _byteify(value, ignore_dicts=True) + for key, value in data.iteritems() + } + # if it's anything else, return it in its original form + return data + + +oxd_base_dir = '/opt/oxd-server' +oxd_data_dir = os.path.join(oxd_base_dir, 'conf') +oxd_conf_dir = '/etc/oxd/oxd-server' if os.path.exists('etc/oxd/oxd-server') else '/opt/oxd-server/conf' + +oxd_data_backup_dir = os.path.join(oxd_base_dir, 'json_data_backup') + +oxd_conf_json_fn = os.path.join(oxd_conf_dir, 'oxd-conf.json') +oxd_default_site_config_json_fn = os.path.join(oxd_conf_dir, 'oxd-default-site-config.json') +log4j_xml_fn = os.path.join(oxd_conf_dir, 'log4j.xml') + + + +oxd4_server_yaml_fn = os.path.join(oxd_conf_dir, 'oxd-server.yml') + +shutil.copyfile(oxd4_server_yaml_fn, oxd4_server_yaml_fn + '._backup_'+time.ctime().replace(' ','_')) + + +oxd_conf_json = json_load_byteified(oxd_conf_json_fn) +oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_fn) + +log4j_xml_tree = tree = ET.parse(log4j_xml_fn) +log4j_xml_root = log4j_xml_tree.getroot() + +oxd4_server_yaml = yaml.safe_load(open(oxd4_server_yaml_fn).read()) + + +for key in oxd_default_site_config_json: + if key in oxd4_server_yaml['defaultSiteConfig']: + oxd4_server_yaml['defaultSiteConfig'][key] = oxd_default_site_config_json[key] + + + +for key in oxd_conf_json: + if key in oxd4_server_yaml: + oxd4_server_yaml[key] = oxd_conf_json[key] + + +xml_appenders = log4j_xml_root.findall('appender') + + + +file_attrib = get_by_attrib(xml_appenders, 'FILE', False) + +params = file_attrib.findall('param') + +currentLogFilename = get_by_attrib(params, 'File') +log_fp, log_e = os.path.splitext(currentLogFilename) + +oxd4_server_yaml['logging']['appenders'][1]['currentLogFilename'] = currentLogFilename + +DatePattern = log_file_attrib = get_by_attrib(params, 'DatePattern') + +archivedLogFilenamePattern = log_fp +'-%d{'+ DatePattern.replace("'.'",'') + '}-%i.log.gz' + +oxd4_server_yaml['logging']['appenders'][1]['archivedLogFilenamePattern'] = archivedLogFilenamePattern + +categories = log4j_xml_root.findall('category') +org_xdi_attrib = get_by_attrib(categories, 'org.xdi', False) +org_xdi = org_xdi_attrib.find('priority').get('value') +oxd4_server_yaml['logging']['loggers']['org.xdi'] = org_xdi + + +root = log4j_xml_root.find('root') + +priority = root.find('priority').get('value') + +oxd4_server_yaml['logging']['level'] = priority + + +if not os.path.exists(oxd_data_backup_dir): + os.mkdir(oxd_data_backup_dir) + +json_files = glob.glob(os.path.join(oxd_data_dir,'*.json')) + +json_files.remove(os.path.join(oxd_data_dir,'oxd-conf.json')) +json_files.remove(os.path.join(oxd_data_dir,'oxd-default-site-config.json')) + +for json_file in json_files: + shutil.move(json_file, oxd_data_backup_dir) + +oxd4_server_yaml['migration_source_folder_path'] = oxd_data_backup_dir + +yaml_temp = open('oxd-server.yml.temp').read() + +sub_vars = re.findall('\{\{(.*?)\}\}', yaml_temp) + +for sv in sub_vars: + sv_pattern = sv.split(':') + m = oxd4_server_yaml + for p in sv_pattern: + if '|' in p: + p,n=p.split('|') + m = m[p][int(n)] + else: + m = m[p] + + if type(True) == type(m): + m = str(m).lower() + if not m: + m="''" + k = '{{'+sv+'}}' + #print sv, m + yaml_temp = yaml_temp.replace(k,str(m)) + + +with open(oxd4_server_yaml_fn,'w') as W: + W.write(yaml_temp) + From 1e239cd35229d94cd2726c2d6f5d353f8ef3341d Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 6 Nov 2018 14:13:30 +0200 Subject: [PATCH 186/230] swag spec : more verbose description for /update-site operation --- oxd-server/src/main/resources/swagger.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 8e26c80d7..6bb8e77c8 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -377,7 +377,7 @@ paths: - developers summary: Update Site operationId: update-site - description: Updates site at oxd-server + description: Updates site at oxd-server. If something changes in a pre-registered client, you can use this API to update your client in the OP. consumes: - application/json produces: From 65918aa0fe59254a89951a5e425ada8d0a366dcb Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Tue, 6 Nov 2018 14:15:20 +0200 Subject: [PATCH 187/230] swag spec : moved /register-site operation right below /health-check. Since /setup-client is removed, it is more clear for end-user to see /register-site first. --- oxd-server/src/main/resources/swagger.yaml | 297 +++++++++++---------- 1 file changed, 149 insertions(+), 148 deletions(-) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index 6bb8e77c8..8c4ecb546 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -36,6 +36,155 @@ paths: 200: description: OK + /register-site: + post: + tags: + - developers + summary: Register Site + operationId: register-site + description: Registers site at oxd-server + consumes: + - application/json + produces: + - application/json + parameters: + - in: body + name: RegisterSiteParams + schema: + type: object + required: + - authorization_redirect_uri + properties: + authorization_redirect_uri: + type: string + example: https://client.example.org/cb + op_host: + type: string + example: https:// + description: If missing, must be present in defaults + post_logout_redirect_uri: + type: string + example: https://client.example.org/cb + application_type: + type: string + example: web + response_types: + type: array + items: + type: string + example: ["code"] + grant_types: + type: array + items: + type: string + example: ["authorization_code", "client_credentials"] + scope: + type: array + items: + type: string + example: ["openid"] + acr_values: + type: array + items: + type: string + example: ["basic"] + client_name: + type: string + description: oxd will generate its own non-human readable name by default if client_name is not specified + client_jwks_uri: + type: string + client_token_endpoint_auth_method: + type: string + client_request_uris: + type: array + items: + type: string + client_frontchannel_logout_uris: + type: array + items: + type: string + client_sector_identifier_uri: + type: string + contacts: + type: array + items: + type: string + example: ["foo_bar@spam.org"] + redirect_uris: + type: array + items: + type: string + example: ["https://client.example.org/cb"] + ui_locales: + type: array + items: + type: string + claims_locales: + type: array + items: + type: string + claims_redirect_uri: + type: array + items: + type: string + client_id: + type: string + description: client id of existing client, ignores all other parameters and skips new client registration forcing to use existing client (client_secret is required if this parameter is set) + client_secret: + type: string + description: client secret of existing client, must be used together with client_id + trusted_client: + type: boolean + description: specifies whether client is trusted. Default value is false. + access_token_as_jwt: + type: boolean + description: specifies whether access_token should be return as JWT or not. Default value is false. + access_token_signing_alg: + type: string + description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 + + responses: + 200: + description: OK + schema: + type: object + title: RegisterSiteResponse + required: + - oxd_id + - op_host + properties: + oxd_id: + type: string + example: bcad760f-91ba-46e1-a020-05e4281d91b6 + op_host: + type: string + example: https:// + client_id: + type: string + example: "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387" + client_secret: + type: string + example: f436b936-03fc-433f-9772-53c2bc9e1c74 + client_registration_access_token: + type: string + example: d836df94-44b0-445a-848a-d43189839b17 + client_registration_client_uri: + type: string + example: https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387 + client_id_issued_at: + type: integer + example: 1501854943 + client_secret_expires_at: + type: integer + example: 1501941343 + 400: + description: Invalid parameters are provided to endpoint. + 403: + description: Forbidden. Invalid access token provided in Authorization header. + 500: + description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). + + /get-client-token: post: tags: @@ -223,154 +372,6 @@ paths: 500: description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). - /register-site: - post: - tags: - - developers - summary: Register Site - operationId: register-site - description: Registers site at oxd-server - consumes: - - application/json - produces: - - application/json - parameters: - - in: body - name: RegisterSiteParams - schema: - type: object - required: - - authorization_redirect_uri - properties: - authorization_redirect_uri: - type: string - example: https://client.example.org/cb - op_host: - type: string - example: https:// - description: If missing, must be present in defaults - post_logout_redirect_uri: - type: string - example: https://client.example.org/cb - application_type: - type: string - example: web - response_types: - type: array - items: - type: string - example: ["code"] - grant_types: - type: array - items: - type: string - example: ["authorization_code", "client_credentials"] - scope: - type: array - items: - type: string - example: ["openid"] - acr_values: - type: array - items: - type: string - example: ["basic"] - client_name: - type: string - description: oxd will generate its own non-human readable name by default if client_name is not specified - client_jwks_uri: - type: string - client_token_endpoint_auth_method: - type: string - client_request_uris: - type: array - items: - type: string - client_frontchannel_logout_uris: - type: array - items: - type: string - client_sector_identifier_uri: - type: string - contacts: - type: array - items: - type: string - example: ["foo_bar@spam.org"] - redirect_uris: - type: array - items: - type: string - example: ["https://client.example.org/cb"] - ui_locales: - type: array - items: - type: string - claims_locales: - type: array - items: - type: string - claims_redirect_uri: - type: array - items: - type: string - client_id: - type: string - description: client id of existing client, ignores all other parameters and skips new client registration forcing to use existing client (client_secret is required if this parameter is set) - client_secret: - type: string - description: client secret of existing client, must be used together with client_id - trusted_client: - type: boolean - description: specifies whether client is trusted. Default value is false. - access_token_as_jwt: - type: boolean - description: specifies whether access_token should be return as JWT or not. Default value is false. - access_token_signing_alg: - type: string - description: sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 - - responses: - 200: - description: OK - schema: - type: object - title: RegisterSiteResponse - required: - - oxd_id - - op_host - properties: - oxd_id: - type: string - example: bcad760f-91ba-46e1-a020-05e4281d91b6 - op_host: - type: string - example: https:// - client_id: - type: string - example: "@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387" - client_secret: - type: string - example: f436b936-03fc-433f-9772-53c2bc9e1c74 - client_registration_access_token: - type: string - example: d836df94-44b0-445a-848a-d43189839b17 - client_registration_client_uri: - type: string - example: https:///oxauth/restv1/register?client_id=@!1736.179E.AA60.16B2!0001!8F7C.B9AB!0008!A2BB.9AE6.5F14.B387 - client_id_issued_at: - type: integer - example: 1501854943 - client_secret_expires_at: - type: integer - example: 1501941343 - 400: - description: Invalid parameters are provided to endpoint. - 403: - description: Forbidden. Invalid access token provided in Authorization header. - 500: - description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). - /update-site: post: tags: From c9e4fe20a30950406df1cdb720edcbaa9dc336a6 Mon Sep 17 00:00:00 2001 From: Mustafa Baser Date: Tue, 6 Nov 2018 16:23:08 +0300 Subject: [PATCH 188/230] update oxd_updater.py --- upgrade/oxd_updater.py | 144 +++++++++++++++++++++++------------------ 1 file changed, 80 insertions(+), 64 deletions(-) mode change 100644 => 100755 upgrade/oxd_updater.py diff --git a/upgrade/oxd_updater.py b/upgrade/oxd_updater.py old mode 100644 new mode 100755 index 29b1555f1..37184aceb --- a/upgrade/oxd_updater.py +++ b/upgrade/oxd_updater.py @@ -1,3 +1,5 @@ +#!/usr/bin/python + import os import time import glob @@ -8,7 +10,6 @@ import yaml import re - def get_by_attrib(elements, attrib, value=True): for element in elements: if element.get('name') == attrib: @@ -42,7 +43,7 @@ def _byteify(data, ignore_dicts = False): # if it's anything else, return it in its original form return data - +current_version = '4.0.beta' oxd_base_dir = '/opt/oxd-server' oxd_data_dir = os.path.join(oxd_base_dir, 'conf') oxd_conf_dir = '/etc/oxd/oxd-server' if os.path.exists('etc/oxd/oxd-server') else '/opt/oxd-server/conf' @@ -53,101 +54,116 @@ def _byteify(data, ignore_dicts = False): oxd_default_site_config_json_fn = os.path.join(oxd_conf_dir, 'oxd-default-site-config.json') log4j_xml_fn = os.path.join(oxd_conf_dir, 'log4j.xml') - +conf_yaml_template = '/opt/oxd-server/conf/oxd-server.yml.temp' oxd4_server_yaml_fn = os.path.join(oxd_conf_dir, 'oxd-server.yml') shutil.copyfile(oxd4_server_yaml_fn, oxd4_server_yaml_fn + '._backup_'+time.ctime().replace(' ','_')) +update_required = False -oxd_conf_json = json_load_byteified(oxd_conf_json_fn) -oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_fn) - -log4j_xml_tree = tree = ET.parse(log4j_xml_fn) -log4j_xml_root = log4j_xml_tree.getroot() - -oxd4_server_yaml = yaml.safe_load(open(oxd4_server_yaml_fn).read()) - - -for key in oxd_default_site_config_json: - if key in oxd4_server_yaml['defaultSiteConfig']: - oxd4_server_yaml['defaultSiteConfig'][key] = oxd_default_site_config_json[key] - +if os.path.exists(oxd_conf_json_fn): + oxd_conf_json = json_load_byteified(oxd_conf_json_fn) + update_required = True + +if os.path.exists(oxd_default_site_config_json_fn): + oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_fn) + update_required = True +do_upgrade = False -for key in oxd_conf_json: - if key in oxd4_server_yaml: - oxd4_server_yaml[key] = oxd_conf_json[key] +if update_required: + + print "An old isntance of oxd-server detected." + ask = "Do you want to migrate data to oxd-server-{0}? [y|N]: ".format(current_version) + + answer = raw_input(ask) + if answer and answer.lower()[0] == 'y': + do_upgrade = True + else: + print "You can do upgrade later by running: python /opt/oxd-server/bin/oxd_updater.py" +if do_upgrade: + + log4j_xml_tree = tree = ET.parse(log4j_xml_fn) + log4j_xml_root = log4j_xml_tree.getroot() -xml_appenders = log4j_xml_root.findall('appender') + oxd4_server_yaml = yaml.safe_load(open(oxd4_server_yaml_fn).read()) + for key in oxd_default_site_config_json: + if key in oxd4_server_yaml['defaultSiteConfig']: + oxd4_server_yaml['defaultSiteConfig'][key] = oxd_default_site_config_json[key] -file_attrib = get_by_attrib(xml_appenders, 'FILE', False) + for key in oxd_conf_json: + if key in oxd4_server_yaml: + oxd4_server_yaml[key] = oxd_conf_json[key] -params = file_attrib.findall('param') + xml_appenders = log4j_xml_root.findall('appender') + file_attrib = get_by_attrib(xml_appenders, 'FILE', False) + params = file_attrib.findall('param') -currentLogFilename = get_by_attrib(params, 'File') -log_fp, log_e = os.path.splitext(currentLogFilename) + currentLogFilename = get_by_attrib(params, 'File') + log_fp, log_e = os.path.splitext(currentLogFilename) -oxd4_server_yaml['logging']['appenders'][1]['currentLogFilename'] = currentLogFilename + oxd4_server_yaml['logging']['appenders'][1]['currentLogFilename'] = currentLogFilename -DatePattern = log_file_attrib = get_by_attrib(params, 'DatePattern') + DatePattern = log_file_attrib = get_by_attrib(params, 'DatePattern') -archivedLogFilenamePattern = log_fp +'-%d{'+ DatePattern.replace("'.'",'') + '}-%i.log.gz' + archivedLogFilenamePattern = log_fp +'-%d{'+ DatePattern.replace("'.'",'') + '}-%i.log.gz' -oxd4_server_yaml['logging']['appenders'][1]['archivedLogFilenamePattern'] = archivedLogFilenamePattern + oxd4_server_yaml['logging']['appenders'][1]['archivedLogFilenamePattern'] = archivedLogFilenamePattern -categories = log4j_xml_root.findall('category') -org_xdi_attrib = get_by_attrib(categories, 'org.xdi', False) -org_xdi = org_xdi_attrib.find('priority').get('value') -oxd4_server_yaml['logging']['loggers']['org.xdi'] = org_xdi + categories = log4j_xml_root.findall('category') + org_xdi_attrib = get_by_attrib(categories, 'org.xdi', False) + org_xdi = org_xdi_attrib.find('priority').get('value') + oxd4_server_yaml['logging']['loggers']['org.xdi'] = org_xdi -root = log4j_xml_root.find('root') + root = log4j_xml_root.find('root') -priority = root.find('priority').get('value') + priority = root.find('priority').get('value') -oxd4_server_yaml['logging']['level'] = priority + oxd4_server_yaml['logging']['level'] = priority -if not os.path.exists(oxd_data_backup_dir): - os.mkdir(oxd_data_backup_dir) + if not os.path.exists(oxd_data_backup_dir): + os.mkdir(oxd_data_backup_dir) -json_files = glob.glob(os.path.join(oxd_data_dir,'*.json')) + json_files = glob.glob(os.path.join(oxd_data_dir,'*.json')) -json_files.remove(os.path.join(oxd_data_dir,'oxd-conf.json')) -json_files.remove(os.path.join(oxd_data_dir,'oxd-default-site-config.json')) + json_files.remove(os.path.join(oxd_data_dir,'oxd-conf.json')) + json_files.remove(os.path.join(oxd_data_dir,'oxd-default-site-config.json')) -for json_file in json_files: - shutil.move(json_file, oxd_data_backup_dir) + for json_file in json_files: + shutil.move(json_file, oxd_data_backup_dir) -oxd4_server_yaml['migration_source_folder_path'] = oxd_data_backup_dir + oxd4_server_yaml['migration_source_folder_path'] = oxd_data_backup_dir -yaml_temp = open('oxd-server.yml.temp').read() + yaml_temp = open(conf_yaml_template).read() -sub_vars = re.findall('\{\{(.*?)\}\}', yaml_temp) + sub_vars = re.findall('\{\{(.*?)\}\}', yaml_temp) -for sv in sub_vars: - sv_pattern = sv.split(':') - m = oxd4_server_yaml - for p in sv_pattern: - if '|' in p: - p,n=p.split('|') - m = m[p][int(n)] - else: - m = m[p] + for sv in sub_vars: + sv_pattern = sv.split(':') + m = oxd4_server_yaml + for p in sv_pattern: + if '|' in p: + p,n=p.split('|') + m = m[p][int(n)] + else: + m = m[p] - if type(True) == type(m): - m = str(m).lower() - if not m: - m="''" - k = '{{'+sv+'}}' - #print sv, m - yaml_temp = yaml_temp.replace(k,str(m)) - + if type(True) == type(m): + m = str(m).lower() + if not m: + m="''" + k = '{{'+sv+'}}' + #print sv, m + yaml_temp = yaml_temp.replace(k,str(m)) + -with open(oxd4_server_yaml_fn,'w') as W: - W.write(yaml_temp) + with open(oxd4_server_yaml_fn,'w') as W: + W.write(yaml_temp) + print "Migration is finished. Please restart oxd-server" From d45eda337cc4e26f61efae2f8c7dde1c3f789f15 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Wed, 7 Nov 2018 09:32:03 +0200 Subject: [PATCH 189/230] #225 : fixed bug with double error_description error serialization https://github.com/GluuFederation/oxd/issues/225 --- .../src/main/java/org/xdi/oxd/common/ErrorResponse.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponse.java index e050b0261..f3cda9715 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponse.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/ErrorResponse.java @@ -20,13 +20,10 @@ public class ErrorResponse implements Serializable, IOpResponse { private static final Logger LOG = LoggerFactory.getLogger(ErrorResponse.class); @JsonProperty(value = "error") - @com.fasterxml.jackson.annotation.JsonProperty(value = "error") private String error; @JsonProperty(value = "error_description") - @com.fasterxml.jackson.annotation.JsonProperty(value = "error_description") private String error_description; @JsonProperty(value = "details") - @com.fasterxml.jackson.annotation.JsonProperty(value = "details") private JsonNode details; public ErrorResponse() { @@ -54,12 +51,13 @@ public void setError(String error) { this.error = error; } + @JsonProperty(value = "error_description") public String getErrorDescription() { return error_description; } - public void setErrorDescription(String errorDescription) { - this.error_description = errorDescription; + public void setErrorDescription(String error_description) { + this.error_description = error_description; } public JsonNode getDetails() { From d346e1fc04921f59a720c638656656b05a6e97d0 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 11:05:29 +0530 Subject: [PATCH 190/230] #233: Added definition for UMA full and its linked tests and some register site params --- oxd-server/src/test/resources/testng.xml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index f7ea1fb72..06d73dbb3 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -17,7 +17,8 @@ value="{'resources':[{'path':'/ws/phone','conditions':[{'httpMethods':['GET'],'scopes':['http://photoz.example.com/dev/actions/all','http://photoz.example.com/dev/actions/view'],'scope_expression':{'rule':{'and':[{'or':[{'var':0},{'var':1}]},{'var':2}]},'data':['http://photoz.example.com/dev/actions/all','http://photoz.example.com/dev/actions/add','http://photoz.example.com/dev/actions/view']}},{'httpMethods':['PUT','POST'],'scope_expression':{'rule':{'and':[{'or':[{'var':0},{'var':1}]},{'var':2}]},'data':['http://photoz.example.com/dev/actions/all','http://photoz.example.com/dev/actions/add','http://photoz.example.com/dev/actions/view']},'ticketScopes':['http://photoz.example.com/dev/actions/add']},{'httpMethods':['DELETE'],'scopes':['http://photoz.example.com/dev/actions/all','http://photoz.example.com/dev/actions/remove'],'ticketScopes':['http://photoz.example.com/dev/actions/remove']}]}]}"/> - + + @@ -176,5 +177,24 @@ + + + + + + + + + + + + + + + + + + + From 4e667192bcb04e7ed963117820cf3937e0055051 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 11:14:18 +0530 Subject: [PATCH 191/230] #233: Swagger UMA Full test class --- .../io/swagger/client/api/UmaFullTest.java | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/UmaFullTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/UmaFullTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/UmaFullTest.java new file mode 100644 index 000000000..c30f2a3ee --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/UmaFullTest.java @@ -0,0 +1,119 @@ +package io.swagger.client.api; + +import io.swagger.client.ApiException; +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.RsResource; +import io.swagger.client.model.UmaRpGetRptParams; +import io.swagger.client.model.UmaRpGetRptResponse; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.map.ObjectMapper; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxd.rs.protect.Jackson; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +import static io.swagger.client.api.Tester.api; +import static org.apache.commons.lang.StringUtils.isNotBlank; +import static org.apache.commons.lang.StringUtils.replace; +import static org.testng.Assert.*; + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + * + * @version 11/08/2018 + */ + +public class UmaFullTest { + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void test(String redirectUrl, String opHost, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + final UmaRsCheckAccessResponse checkAccess = RsCheckAccessTest.checkAccess(client, site); + + final UmaRpGetRptParams params = new UmaRpGetRptParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(checkAccess.getTicket()); + + final UmaRpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params); + + assertNotNull(response); + + assertTrue(isNotBlank(response.getAccessToken())); + assertTrue(isNotBlank(response.getPct())); + } + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void testWithInvalidTicket(String redirectUrl, String opHost, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + final UmaRpGetRptParams params = new UmaRpGetRptParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(UUID.randomUUID().toString()); + + try { + client.umaRpGetRpt(Tester.getAuthorization(), params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); // BAD REQUEST + } + + } + + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void testWithClaimTokenButNoTokenFormat(String redirectUrl, String opHost, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + final UmaRsCheckAccessResponse checkAccess = RsCheckAccessTest.checkAccess(client, site); + + final UmaRpGetRptParams params = new UmaRpGetRptParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(checkAccess.getTicket()); + params.setClaimToken(Tester.getAuthorization(site)); + + try { + client.umaRpGetRpt(Tester.getAuthorization(), params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); + } + + } + + public static List resourceList(String rsProtect) throws IOException { + rsProtect = replace(rsProtect, "'", "\""); + + final ObjectMapper jsonMapper = Jackson.createJsonMapper(); + final JsonNode resourcesNode = jsonMapper.readTree(rsProtect).get(("resources")); + + if (resourcesNode != null) + return jsonMapper.readValue(resourcesNode, ArrayList.class); + + throw new IllegalArgumentException("Could not find test data for protected resources"); + + } + +} From 04761b16e15f56be72747f2fa31cbd6aa6e41f80 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 11:45:57 +0530 Subject: [PATCH 192/230] #233: Added definition for RS Protect swagger test --- oxd-server/src/test/resources/testng.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index 06d73dbb3..3a03219ef 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -195,6 +195,11 @@ + + + + + From fdc43d45759cebe5f74688b2d3708668153a47cf Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:20:04 +0530 Subject: [PATCH 193/230] #233: Added test properties for client registrations --- oxd-server/src/test/resources/properties/ce-dev4.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oxd-server/src/test/resources/properties/ce-dev4.properties b/oxd-server/src/test/resources/properties/ce-dev4.properties index 6d720101c..a730b4356 100644 --- a/oxd-server/src/test/resources/properties/ce-dev4.properties +++ b/oxd-server/src/test/resources/properties/ce-dev4.properties @@ -12,3 +12,5 @@ clientSecret=Hh7uLjLw7skv rsProtect={"resources":[{"path":"/ws/phone","conditions":[{"httpMethods":["GET"],"scopes":["http://photoz.example.com/dev/actions/all","http://photoz.example.com/dev/actions/view"],"ticketScopes":["http://photoz.example.com/dev/actions/view"]},{"httpMethods":["PUT", "POST"],"scopes":["http://photoz.example.com/dev/actions/all","http://photoz.example.com/dev/actions/add"],"ticketScopes":["http://photoz.example.com/dev/actions/add"]},{"httpMethods":["DELETE"],"scopes":["http://photoz.example.com/dev/actions/all","http://photoz.example.com/dev/actions/remove"],"ticketScopes":["http://photoz.example.com/dev/actions/remove"]}]}]} rsProtectScopeExpressionSecond={"resources":[{"path":"/GetAll","conditions":[{"httpMethods":["GET"],"scopes":["http://photoz.example.com/dev/actions/a1","http://photoz.example.com/dev/actions/a2","http://photoz.example.com/dev/actions/a3"],"ticketScopes":["http://photoz.example.com/dev/actions/a1","http://photoz.example.com/dev/actions/a2","http://photoz.example.com/dev/actions/a3"],"scope_expression":{"rule":{"and":[{"or":[{"var":0},{"var":1}]},{"var":2}]},"data":["http://photoz.example.com/dev/actions/a1","http://photoz.example.com/dev/actions/a2","http://photoz.example.com/dev/actions/a3"]}}]}]} sectorIdentifierUri=https://ce-dev4.gluu.org/oxauth/sectoridentifier/@!38D4.410C.1D43.8932!0001!37F2.B744!0012!D426.70FD +clientJwksUri=https://exampleidp.com/oauth2/default/v1/keys +accessTokenSigningAlg=HS256 \ No newline at end of file From d4c6243680280023bf615dedea8a5c09d9773038 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:26:02 +0530 Subject: [PATCH 194/230] #233: RS Protect swagger test class --- .../io/swagger/client/api/RsProtectTest.java | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/RsProtectTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RsProtectTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RsProtectTest.java new file mode 100644 index 000000000..e914b6684 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RsProtectTest.java @@ -0,0 +1,129 @@ +package io.swagger.client.api; + +import io.swagger.client.ApiException; +import io.swagger.client.ApiResponse; +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.RsResource; +import io.swagger.client.model.UmaRsCheckAccessParams; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import io.swagger.client.model.UmaRsProtectParams; +import io.swagger.client.model.UmaRsProtectResponse; +import org.apache.commons.lang.StringUtils; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import java.util.List; + +import static io.swagger.client.api.Tester.api; +import static io.swagger.client.api.Tester.getAuthorization; +import static org.testng.Assert.*; + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + * + * @version 11/08/2018 + */ + +public class RsProtectTest { + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void protect(String redirectUrl, String opHost, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + RsCheckAccessTest.checkAccess(client, site); + + } + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void overwriteFalse(String redirectUrl, String opHost, String rsProtect) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + final List resources = UmaFullTest.resourceList(rsProtect); + protectResources(client, site, resources); + + final UmaRsProtectParams params = new UmaRsProtectParams(); + params.setOxdId(site.getOxdId()); + + params.setResources(resources); + + try { + final ApiResponse response = client.umaRsProtectWithHttpInfo(getAuthorization(), params); + assertEquals(response.getStatusCode(), 400); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); + } + + } + + @Parameters({"redirectUrl", "opHost", "rsProtect"}) + @Test + public void overwriteTrue(String redirectUrl, String opHost, String rsProtect) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + final List resources = UmaFullTest.resourceList(rsProtect); + protectResources(client, site, resources); + + final UmaRsProtectParams params = new UmaRsProtectParams(); + params.setOxdId(site.getOxdId()); + params.setResources(resources); + params.setOverwrite(true); // force overwrite + + final UmaRsProtectResponse response = client.umaRsProtect(getAuthorization(), params); + assertNotNull(response); + } + + @Parameters({"redirectUrl", "opHost", "rsProtectScopeExpression"}) + @Test + public void protectWithScopeExpression(String redirectUrl, String opHost, String rsProtectScopeExpression) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + protectResources(client, site, UmaFullTest.resourceList(rsProtectScopeExpression)); + + RsCheckAccessTest.checkAccess(client, site); + + } + + @Parameters({"redirectUrl", "opHost", "rsProtectScopeExpressionSecond"}) + @Test + public void protectWithScopeExpressionSeconds(String redirectUrl, String opHost, String rsProtectScopeExpressionSecond) throws Exception { + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + protectResources(client, site, UmaFullTest.resourceList(rsProtectScopeExpressionSecond)); + + final UmaRsCheckAccessParams params = new UmaRsCheckAccessParams(); + params.setOxdId(site.getOxdId()); + params.setHttpMethod("GET"); + params.setPath("/GetAll"); + params.setRpt(""); + + final UmaRsCheckAccessResponse response = client.umaRsCheckAccess(getAuthorization(), params); + + assertNotNull(response); + assertTrue(StringUtils.isNotBlank(response.getAccess())); + } + + public static UmaRsProtectResponse protectResources(DevelopersApi client, RegisterSiteResponse site, List resources) throws Exception { + final UmaRsProtectParams params = new UmaRsProtectParams(); + params.setOxdId(site.getOxdId()); + params.setResources(resources); + + final UmaRsProtectResponse resp = client.umaRsProtect(getAuthorization(), params); + assertNotNull(resp); + return resp; + } +} From 1498d6f7a292f10096c2b28bf8ab6cb947ee4db6 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:27:50 +0530 Subject: [PATCH 195/230] #233: RS Check Access swagger test class --- .../swagger/client/api/RsCheckAccessTest.java | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/RsCheckAccessTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RsCheckAccessTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RsCheckAccessTest.java new file mode 100644 index 000000000..26e0e908e --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RsCheckAccessTest.java @@ -0,0 +1,52 @@ +package io.swagger.client.api; + +import io.swagger.client.ApiResponse; +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.UmaRsCheckAccessParams; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import org.apache.commons.lang.StringUtils; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import static io.swagger.client.api.Tester.api; +import static org.testng.Assert.*; + + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + * + * @version 11/02/2018 + */ + +public class RsCheckAccessTest { + + @Parameters({"opHost", "redirectUrl", "rsProtect"}) + @Test + public void test(String opHost, String redirectUrl, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + checkAccess(client, site); + } + + public static UmaRsCheckAccessResponse checkAccess(DevelopersApi client, RegisterSiteResponse site) throws Exception { + final UmaRsCheckAccessParams params = new UmaRsCheckAccessParams(); + params.setOxdId(site.getOxdId()); + params.setHttpMethod("GET"); + params.setPath("/ws/phone"); + params.setRpt("dummy"); + + final ApiResponse apiResp = client.umaRsCheckAccessWithHttpInfo(Tester.getAuthorization(), params); + + assertEquals(apiResp.getStatusCode(), 200) ; //fixme should be 401 + assertNotNull(apiResp.getData()); + assertTrue(StringUtils.isNotBlank(apiResp.getData().getAccess())); + + return apiResp.getData(); + } +} From ce20d76250ff20839359b0b66b7ba631625c6d67 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:32:43 +0530 Subject: [PATCH 196/230] #233: Changed a method to static --- .../test/java/io/swagger/client/api/GetTokensByCodeTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java index f3555d7a2..be44582ac 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetTokensByCodeTest.java @@ -57,7 +57,7 @@ private static void refreshToken(GetTokensByCodeResponse resp, DevelopersApi cli notEmpty(refreshResponse.getRefreshToken()); } - private GetTokensByCodeResponse tokenByCode(DevelopersApi client, RegisterSiteResponse site, String userId, String userSecret, String nonce) throws Exception { + private static GetTokensByCodeResponse tokenByCode(DevelopersApi client, RegisterSiteResponse site, String userId, String userSecret, String nonce) throws Exception { final String state = CoreUtils.secureRandomString(); From b9ef2d9d2ae0c7216d736856298a89a08ae405b5 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:35:06 +0530 Subject: [PATCH 197/230] #233: Added RpGetRpt swagger test class --- .../io/swagger/client/api/RpGetRptTest.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/RpGetRptTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RpGetRptTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RpGetRptTest.java new file mode 100644 index 000000000..8204bbc76 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RpGetRptTest.java @@ -0,0 +1,80 @@ +package io.swagger.client.api; + +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.UmaRpGetRptParams; +import io.swagger.client.model.UmaRpGetRptResponse; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import org.apache.commons.lang.StringUtils; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import static io.swagger.client.api.Tester.api; +import static org.apache.commons.lang.StringUtils.isNotBlank; +import static org.testng.Assert.*; + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + * + * @version 11/03/2018 + */ + +public class RpGetRptTest { + + @Parameters({"opHost", "redirectUrl", "rsProtect"}) + @Test + public void test(String opHost, String redirectUrl, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + final UmaRpGetRptResponse response = requestRpt(client, site, rsProtect); + + assertNotNull(response); + + } + + + @Parameters({"opHost", "redirectUrl", "rsProtect"}) + @Test + public void testWithSameRpt(String opHost, String redirectUrl, String rsProtect) throws Exception { + + final DevelopersApi client = api(); + + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + final UmaRpGetRptResponse firstResponse = requestRpt(client, site, rsProtect); + + final UmaRsCheckAccessResponse checkAccess = RsCheckAccessTest.checkAccess(client, site); + + final UmaRpGetRptParams params = new UmaRpGetRptParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(checkAccess.getTicket()); + params.setRpt(firstResponse.getAccessToken()); + + final UmaRpGetRptResponse secondResponse = client.umaRpGetRpt(Tester.getAuthorization(), params); + + assertNotNull(secondResponse); + assertEquals(secondResponse.getAccessToken(), firstResponse.getAccessToken()); + assertFalse(firstResponse.isUpdated()); + assertTrue(secondResponse.isUpdated()); + + } + + + private static UmaRpGetRptResponse requestRpt(DevelopersApi client, RegisterSiteResponse site, String rsProtect) throws Exception { + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + final UmaRsCheckAccessResponse checkAccess = RsCheckAccessTest.checkAccess(client, site); + + final UmaRpGetRptParams params = new UmaRpGetRptParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(checkAccess.getTicket()); + + final UmaRpGetRptResponse response = client.umaRpGetRpt(Tester.getAuthorization(), params); + + assertNotNull(response); + assertTrue(isNotBlank(response.getAccessToken())); + assertTrue(isNotBlank(response.getPct())); + return response; + } +} From 54e841abdcd5eee83acf1c400e29024db5891271 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:36:20 +0530 Subject: [PATCH 198/230] #233: Added Logout URL swagger test class --- .../src/test/java/io/swagger/client/api/GetLogoutUrlTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java index 19cd3d183..acd719a4b 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java @@ -27,9 +27,9 @@ public class GetLogoutUrlTest { @Parameters({"opHost", "redirectUrl", "postLogoutRedirectUrl"}) @Test public void test(String opHost, String redirectUrl, String postLogoutRedirectUrl) throws Exception { - DevelopersApi client = api(); + final DevelopersApi client = api(); - final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, ""); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, "", "", ""); final GetLogoutUriParams params = new GetLogoutUriParams(); params.setOxdId(site.getOxdId()); From 99d135b4ae3e4d1ce3b1e289a7e3da9e69be9ff1 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Thu, 8 Nov 2018 15:46:00 +0530 Subject: [PATCH 199/230] #233: Fixed method signature --- .../src/test/java/io/swagger/client/api/GetLogoutUrlTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java index acd719a4b..169bbc4bd 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java @@ -29,7 +29,7 @@ public class GetLogoutUrlTest { public void test(String opHost, String redirectUrl, String postLogoutRedirectUrl) throws Exception { final DevelopersApi client = api(); - final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, "", "", ""); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, "" ); final GetLogoutUriParams params = new GetLogoutUriParams(); params.setOxdId(site.getOxdId()); From 461062155fe46f27ebeee64d9c9f031f8c34ce72 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 8 Nov 2018 15:13:31 +0200 Subject: [PATCH 200/230] set logging threshold to TRACE --- oxd-server/src/main/resources/oxd-server.yml | 2 +- oxd-server/src/test/resources/oxd-server-dev.yml | 2 +- oxd-server/src/test/resources/oxd-server-jenkins.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/oxd-server/src/main/resources/oxd-server.yml b/oxd-server/src/main/resources/oxd-server.yml index c46447e5a..6b40c8b78 100644 --- a/oxd-server/src/main/resources/oxd-server.yml +++ b/oxd-server/src/main/resources/oxd-server.yml @@ -51,7 +51,7 @@ logging: appenders: - type: console - type: file - threshold: INFO + threshold: TRACE logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" currentLogFilename: /var/log/oxd-server/oxd-server.log archivedLogFilenamePattern: /var/log/oxd-server/oxd-server-%d{yyyy-MM-dd}-%i.log.gz diff --git a/oxd-server/src/test/resources/oxd-server-dev.yml b/oxd-server/src/test/resources/oxd-server-dev.yml index e3db96a52..004428a0e 100644 --- a/oxd-server/src/test/resources/oxd-server-dev.yml +++ b/oxd-server/src/test/resources/oxd-server-dev.yml @@ -53,7 +53,7 @@ logging: appenders: - type: console - type: file - threshold: INFO + threshold: TRACE logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" currentLogFilename: /var/log/oxd-server.log archivedLogFilenamePattern: /var/log/oxd-server-%d{yyyy-MM-dd}-%i.log.gz diff --git a/oxd-server/src/test/resources/oxd-server-jenkins.yml b/oxd-server/src/test/resources/oxd-server-jenkins.yml index 336bbc61f..62f07c7ef 100644 --- a/oxd-server/src/test/resources/oxd-server-jenkins.yml +++ b/oxd-server/src/test/resources/oxd-server-jenkins.yml @@ -45,7 +45,7 @@ logging: appenders: - type: console - type: file - threshold: INFO + threshold: TRACE logFormat: "%-6level [%d{HH:mm:ss.SSS}] [%t] %logger{5} - %X{code} %msg %n" currentLogFilename: oxd-server.log archivedLogFilenamePattern: oxd-server-%d{yyyy-MM-dd}-%i.log.gz From a7baf5977ad057e7df1591c4250d63f9e1dbec9c Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 8 Nov 2018 18:13:29 +0200 Subject: [PATCH 201/230] #262 : introduced access token as JWT to oxd test suite. https://github.com/GluuFederation/oxd/issues/262 --- .../xdi/oxd/server/AccessTokenAsJwtTest.java | 55 +++++++++++++++++++ oxd-server/src/test/resources/testng.xml | 5 ++ 2 files changed, 60 insertions(+) create mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/AccessTokenAsJwtTest.java diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/AccessTokenAsJwtTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/AccessTokenAsJwtTest.java new file mode 100644 index 000000000..0ab49f137 --- /dev/null +++ b/oxd-server/src/test/java/org/xdi/oxd/server/AccessTokenAsJwtTest.java @@ -0,0 +1,55 @@ +package org.xdi.oxd.server; + +import com.google.common.collect.Lists; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxauth.model.common.GrantType; +import org.xdi.oxauth.model.exception.InvalidJwtException; +import org.xdi.oxauth.model.jwt.Jwt; +import org.xdi.oxd.common.params.GetClientTokenParams; +import org.xdi.oxd.common.params.RegisterSiteParams; +import org.xdi.oxd.common.response.GetClientTokenResponse; +import org.xdi.oxd.common.response.RegisterSiteResponse; + +import static junit.framework.Assert.assertNotNull; +import static org.xdi.oxd.server.SetupClientTest.assertResponse; +import static org.xdi.oxd.server.TestUtils.notEmpty; + +/** + * @author Yuriy Zabrovarnyy + */ +public class AccessTokenAsJwtTest { + + @Parameters({"host", "opHost", "redirectUrl"}) + @Test + public void getClientToken(String host, String opHost, String redirectUrl) throws InvalidJwtException { + final RegisterSiteParams params = new RegisterSiteParams(); + params.setOpHost(opHost); + params.setAuthorizationRedirectUri(redirectUrl); + params.setPostLogoutRedirectUri(redirectUrl); + params.setScope(Lists.newArrayList("openid", "uma_protection", "profile")); + params.setAccessTokenAsJwt(true); + params.setTrustedClient(true); + params.setGrantTypes(Lists.newArrayList( + GrantType.AUTHORIZATION_CODE.getValue(), + GrantType.CLIENT_CREDENTIALS.getValue())); + + final RegisterSiteResponse resp = Tester.newClient(host).registerSite(params); + assertResponse(resp); + + final GetClientTokenParams tokenParams = new GetClientTokenParams(); + tokenParams.setOpHost(opHost); + tokenParams.setScope(Lists.newArrayList("openid")); + tokenParams.setClientId(resp.getClientId()); + tokenParams.setClientSecret(resp.getClientSecret()); + + GetClientTokenResponse tokenResponse = Tester.newClient(host).getClientToken(tokenParams); + + assertNotNull(tokenResponse); + notEmpty(tokenResponse.getAccessToken()); + + final Jwt parse = Jwt.parse(tokenResponse.getAccessToken()); + assertNotNull(parse); + System.out.println("access token as JWT: " + tokenResponse.getAccessToken() + ", claims: " + parse.getClaims()); + } +} diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index f7ea1fb72..44c1c367d 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -76,6 +76,11 @@ + + + + + From 1f6bdb6fc49989f029397d7ed044913443067738 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 8 Nov 2018 18:20:20 +0200 Subject: [PATCH 202/230] tweaked oxd job jenkins config --- oxd-server/src/test/resources/oxd-server-jenkins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/test/resources/oxd-server-jenkins.yml b/oxd-server/src/test/resources/oxd-server-jenkins.yml index 62f07c7ef..7ee47d933 100644 --- a/oxd-server/src/test/resources/oxd-server-jenkins.yml +++ b/oxd-server/src/test/resources/oxd-server-jenkins.yml @@ -11,7 +11,7 @@ support-google-logout: true state_expiration_in_minutes: 5 nonce_expiration_in_minutes: 5 public_op_key_cache_expiration_in_minutes: 60 -protect_commands_with_access_token: false +protect_commands_with_access_token: true uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client: true migration_source_folder_path: '' storage: h2 From 421f528d64227be227b91f725f1fdc1151f87477 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 8 Nov 2018 18:22:58 +0200 Subject: [PATCH 203/230] Revert "tweaked oxd job jenkins config" This reverts commit 1f6bdb6 --- oxd-server/src/test/resources/oxd-server-jenkins.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-server/src/test/resources/oxd-server-jenkins.yml b/oxd-server/src/test/resources/oxd-server-jenkins.yml index 7ee47d933..62f07c7ef 100644 --- a/oxd-server/src/test/resources/oxd-server-jenkins.yml +++ b/oxd-server/src/test/resources/oxd-server-jenkins.yml @@ -11,7 +11,7 @@ support-google-logout: true state_expiration_in_minutes: 5 nonce_expiration_in_minutes: 5 public_op_key_cache_expiration_in_minutes: 60 -protect_commands_with_access_token: true +protect_commands_with_access_token: false uma2_auto_register_claims_gathering_endpoint_as_redirect_uri_of_client: true migration_source_folder_path: '' storage: h2 From f1e736ffc211bb5e4b946dfcaf94b781584a0375 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 8 Nov 2018 18:25:08 +0200 Subject: [PATCH 204/230] added @ProtectionAccessTokenRequired to invalid token test --- .../java/io/swagger/client/api/IntrospectAccessTokenTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java index d59873382..243a1cb2c 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/IntrospectAccessTokenTest.java @@ -48,6 +48,7 @@ public void introspectAccessToken(String opHost, String redirectUrl) throws Exce */ @Parameters({"opHost", "redirectUrl"}) @Test + @ProtectionAccessTokenRequired public void testWithInvalidToken(String opHost, String redirectUrl) throws Exception { DevelopersApi client = Tester.api(); RegisterSiteResponse setupData = RegisterSiteTest.registerSite(client, opHost, redirectUrl); From 1255401e38800ee17aceeecfb4f8e2a2b5ac2e06 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 9 Nov 2018 12:01:58 +0530 Subject: [PATCH 205/230] #233: Swaggerized test class for Access Token as JWT --- .../client/api/AccessTokenAsJwtTest.java | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/AccessTokenAsJwtTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/AccessTokenAsJwtTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/AccessTokenAsJwtTest.java new file mode 100644 index 000000000..5ec523203 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/AccessTokenAsJwtTest.java @@ -0,0 +1,62 @@ +package io.swagger.client.api; + +import com.google.common.base.Strings; +import com.google.common.collect.Lists; +import io.swagger.client.model.GetClientTokenParams; +import io.swagger.client.model.GetClientTokenResponse; +import io.swagger.client.model.RegisterSiteParams; +import io.swagger.client.model.RegisterSiteResponse; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxauth.model.common.GrantType; +import org.xdi.oxauth.model.jwt.Jwt; + +import static io.swagger.client.api.Tester.api; +import static org.testng.Assert.*; + + +/** + * @author Yuriy Zabrovarnyy + * @author Shoeb + */ +public class AccessTokenAsJwtTest { + + + @Parameters({"opHost", "redirectUrl", "postLogoutRedirectUrl"}) + @Test + public void testWithAccessTokenAsJwt(String opHost, String redirectUrl, String postLogoutRedirectUrl) throws Exception { + + final DevelopersApi apiClient = api(); + + final RegisterSiteParams siteParams = new io.swagger.client.model.RegisterSiteParams(); + siteParams.setOpHost(opHost); + siteParams.setAuthorizationRedirectUri(redirectUrl); + siteParams.setPostLogoutRedirectUri(postLogoutRedirectUrl); + siteParams.setScope(Lists.newArrayList("openid", "uma_protection", "profile")); + siteParams.setAccessTokenAsJwt(true); + siteParams.setTrustedClient(true); + siteParams.setGrantTypes(Lists.newArrayList( + GrantType.AUTHORIZATION_CODE.getValue(), + GrantType.CLIENT_CREDENTIALS.getValue())); + + final RegisterSiteResponse resp = apiClient.registerSite(siteParams); + assertNotNull(resp); + + final GetClientTokenParams tokenParams = new GetClientTokenParams(); + tokenParams.setOpHost(opHost); + tokenParams.setScope(Lists.newArrayList("openid")); + tokenParams.setClientId(resp.getClientId()); + tokenParams.setClientSecret(resp.getClientSecret()); + + GetClientTokenResponse tokenResponse = apiClient.getClientToken(tokenParams); + + assertNotNull(tokenResponse); + assertTrue(!Strings.isNullOrEmpty(tokenResponse.getAccessToken())); + + final Jwt parse = Jwt.parse(tokenResponse.getAccessToken()); + assertNotNull(parse); + System.out.println("access token as JWT: " + tokenResponse.getAccessToken() + ", claims: " + parse.getClaims()); + } + + +} From 996349e65f3149943a29038bb1fb6c6ca845106b Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 9 Nov 2018 12:02:40 +0530 Subject: [PATCH 206/230] #233: Tests with additional conditions --- .../swagger/client/api/RegisterSiteTest.java | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java index 94d925f0e..bd20a7d19 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/RegisterSiteTest.java @@ -2,6 +2,7 @@ import com.google.common.base.Strings; import com.google.common.collect.Lists; +import io.swagger.client.ApiException; import io.swagger.client.model.RegisterSiteParams; import io.swagger.client.model.RegisterSiteResponse; import io.swagger.client.model.UpdateSiteParams; @@ -14,13 +15,13 @@ import java.util.Calendar; import static io.swagger.client.api.Tester.*; -import static junit.framework.Assert.assertNotNull; -import static junit.framework.Assert.assertTrue; +import static org.testng.Assert.*; + /** * @author Yuriy Zabrovarnyy * @author Shoeb Khan - * @version 07/26/2018 + * @version 11/07/2018 */ @Test @@ -28,13 +29,13 @@ public class RegisterSiteTest { private String oxdId = null; - @Parameters({"opHost", "redirectUrl", "logoutUrl", "postLogoutRedirectUrl"}) + @Parameters({"opHost", "redirectUrl", "logoutUrl", "postLogoutRedirectUrl", "clientJwksUri", "accessTokenSigningAlg"}) @Test - public void register(String opHost, String redirectUrl, String postLogoutRedirectUrl, String logoutUrl) throws Exception { + public void register(String opHost, String redirectUrl, String postLogoutRedirectUrl, String logoutUrl, String clientJwksUri, String accessTokenSigningAlg) throws Exception { DevelopersApi client = api(); - registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, logoutUrl); + registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, logoutUrl, clientJwksUri, accessTokenSigningAlg); // more specific site registration final RegisterSiteParams params = new RegisterSiteParams(); @@ -43,7 +44,7 @@ public void register(String opHost, String redirectUrl, String postLogoutRedirec params.setPostLogoutRedirectUri(postLogoutRedirectUrl); params.setClientFrontchannelLogoutUris(Lists.newArrayList(logoutUrl)); params.setRedirectUris(Lists.newArrayList(redirectUrl)); - params.setAcrValues(new ArrayList()); + params.setAcrValues(new ArrayList<>()); params.setScope(Lists.newArrayList("openid", "profile")); params.setGrantTypes(Lists.newArrayList("authorization_code")); params.setResponseTypes(Lists.newArrayList("code")); @@ -71,10 +72,10 @@ public void update() throws Exception { } public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String opHost, String redirectUrl) throws Exception { - return registerSite(apiClient, opHost, redirectUrl, redirectUrl, ""); + return registerSite(apiClient, opHost, redirectUrl, redirectUrl, "", "", ""); } - public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String opHost, String redirectUrl, String postLogoutRedirectUrl, String logoutUri) throws Exception { + public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String opHost, String redirectUrl, String postLogoutRedirectUrl, String logoutUri, String clientJwksUri, String accessTokenSigningAlg) throws Exception { final RegisterSiteParams params = new RegisterSiteParams(); params.setOpHost(opHost); @@ -87,10 +88,40 @@ public static RegisterSiteResponse registerSite(DevelopersApi apiClient, String GrantType.AUTHORIZATION_CODE.getValue(), GrantType.OXAUTH_UMA_TICKET.getValue(), GrantType.CLIENT_CREDENTIALS.getValue())); - + params.setClientJwksUri(clientJwksUri); + params.setAccessTokenSigningAlg(accessTokenSigningAlg); final RegisterSiteResponse resp = apiClient.registerSite(params); assertNotNull(resp); assertTrue(!Strings.isNullOrEmpty(resp.getOxdId())); return resp; } + + @Parameters({"opHost", "redirectUrl", "postLogoutRedirectUrl", "clientJwksUri"}) + @Test + public void registerWithInvalidAlgorithm(String opHost, String redirectUrl, String postLogoutRedirectUrl, String clientJwksUri) { + + final DevelopersApi client = api(); + + final RegisterSiteParams params = new RegisterSiteParams(); + params.setOpHost(opHost); + params.setAuthorizationRedirectUri(redirectUrl); + params.setPostLogoutRedirectUri(postLogoutRedirectUrl); + params.setClientFrontchannelLogoutUris(Lists.newArrayList("")); + params.setScope(Lists.newArrayList("openid", "uma_protection", "profile", "oxd")); + params.setTrustedClient(true); + params.setGrantTypes(Lists.newArrayList( + GrantType.AUTHORIZATION_CODE.getValue(), + GrantType.OXAUTH_UMA_TICKET.getValue(), + GrantType.CLIENT_CREDENTIALS.getValue())); + params.setClientJwksUri(clientJwksUri); + params.setAccessTokenSigningAlg("blahBlah"); + + try { + client.registerSite(params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); //BAD Request + } + + } + } From 42315482006d3b07375ac3658b905c36f86fb3a1 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 9 Nov 2018 12:03:18 +0530 Subject: [PATCH 207/230] #233: Regenerated classes as per updated swagger --- .../client/model/RegisterSiteParams.java | 62 ++++++++++++++++--- .../client/model/UpdateSiteParams.java | 58 +++++++++++++++-- 2 files changed, 106 insertions(+), 14 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java index ff7cdc10f..92e10853f 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/RegisterSiteParams.java @@ -2,7 +2,7 @@ * oxd-server * oxd-server * - * OpenAPI spec version: 4.0.0 + * OpenAPI spec version: 4.0.beta * Contact: yuriyz@gluu.org * * NOTE: This class is auto generated by the swagger code generator program. @@ -28,7 +28,7 @@ /** * RegisterSiteParams */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-04T10:13:38.535Z") public class RegisterSiteParams { @SerializedName("authorization_redirect_uri") private String authorizationRedirectUri = null; @@ -96,6 +96,12 @@ public class RegisterSiteParams { @SerializedName("trusted_client") private Boolean trustedClient = null; + @SerializedName("access_token_as_jwt") + private Boolean accessTokenAsJwt = null; + + @SerializedName("access_token_signing_alg") + private String accessTokenSigningAlg = null; + public RegisterSiteParams authorizationRedirectUri(String authorizationRedirectUri) { this.authorizationRedirectUri = authorizationRedirectUri; return this; @@ -568,10 +574,10 @@ public RegisterSiteParams trustedClient(Boolean trustedClient) { } /** - * specified whether client is trusted. Default value is false. + * specifies whether client is trusted. Default value is false. * @return trustedClient **/ - @ApiModelProperty(value = "specified whether client is trusted. Default value is false.") + @ApiModelProperty(value = "specifies whether client is trusted. Default value is false.") public Boolean isTrustedClient() { return trustedClient; } @@ -580,9 +586,45 @@ public void setTrustedClient(Boolean trustedClient) { this.trustedClient = trustedClient; } + public RegisterSiteParams accessTokenAsJwt(Boolean accessTokenAsJwt) { + this.accessTokenAsJwt = accessTokenAsJwt; + return this; + } + + /** + * specifies whether access_token should be return as JWT or not. Default value is false. + * @return accessTokenAsJwt + **/ + @ApiModelProperty(value = "specifies whether access_token should be return as JWT or not. Default value is false.") + public Boolean isAccessTokenAsJwt() { + return accessTokenAsJwt; + } + + public void setAccessTokenAsJwt(Boolean accessTokenAsJwt) { + this.accessTokenAsJwt = accessTokenAsJwt; + } + + public RegisterSiteParams accessTokenSigningAlg(String accessTokenSigningAlg) { + this.accessTokenSigningAlg = accessTokenSigningAlg; + return this; + } + + /** + * sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 + * @return accessTokenSigningAlg + **/ + @ApiModelProperty(value = "sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512") + public String getAccessTokenSigningAlg() { + return accessTokenSigningAlg; + } + + public void setAccessTokenSigningAlg(String accessTokenSigningAlg) { + this.accessTokenSigningAlg = accessTokenSigningAlg; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -611,12 +653,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.claimsRedirectUri, registerSiteParams.claimsRedirectUri) && Objects.equals(this.clientId, registerSiteParams.clientId) && Objects.equals(this.clientSecret, registerSiteParams.clientSecret) && - Objects.equals(this.trustedClient, registerSiteParams.trustedClient); + Objects.equals(this.trustedClient, registerSiteParams.trustedClient) && + Objects.equals(this.accessTokenAsJwt, registerSiteParams.accessTokenAsJwt) && + Objects.equals(this.accessTokenSigningAlg, registerSiteParams.accessTokenSigningAlg); } @Override public int hashCode() { - return Objects.hash(authorizationRedirectUri, opHost, postLogoutRedirectUri, applicationType, responseTypes, grantTypes, scope, acrValues, clientName, clientJwksUri, clientTokenEndpointAuthMethod, clientRequestUris, clientFrontchannelLogoutUris, clientSectorIdentifierUri, contacts, redirectUris, uiLocales, claimsLocales, claimsRedirectUri, clientId, clientSecret, trustedClient); + return Objects.hash(authorizationRedirectUri, opHost, postLogoutRedirectUri, applicationType, responseTypes, grantTypes, scope, acrValues, clientName, clientJwksUri, clientTokenEndpointAuthMethod, clientRequestUris, clientFrontchannelLogoutUris, clientSectorIdentifierUri, contacts, redirectUris, uiLocales, claimsLocales, claimsRedirectUri, clientId, clientSecret, trustedClient, accessTokenAsJwt, accessTokenSigningAlg); } @@ -647,6 +691,8 @@ public String toString() { sb.append(" clientId: ").append(toIndentedString(clientId)).append("\n"); sb.append(" clientSecret: ").append(toIndentedString(clientSecret)).append("\n"); sb.append(" trustedClient: ").append(toIndentedString(trustedClient)).append("\n"); + sb.append(" accessTokenAsJwt: ").append(toIndentedString(accessTokenAsJwt)).append("\n"); + sb.append(" accessTokenSigningAlg: ").append(toIndentedString(accessTokenSigningAlg)).append("\n"); sb.append("}"); return sb.toString(); } @@ -655,7 +701,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java index 1a23bd62e..d613f4b0f 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/UpdateSiteParams.java @@ -2,7 +2,7 @@ * oxd-server * oxd-server * - * OpenAPI spec version: 4.0.0 + * OpenAPI spec version: 4.0.beta * Contact: yuriyz@gluu.org * * NOTE: This class is auto generated by the swagger code generator program. @@ -28,7 +28,7 @@ /** * UpdateSiteParams */ -@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-10-10T07:48:52.952Z") +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-04T10:13:38.535Z") public class UpdateSiteParams { @SerializedName("oxd_id") private String oxdId = null; @@ -75,6 +75,12 @@ public class UpdateSiteParams { @SerializedName("claims_locales") private List claimsLocales = null; + @SerializedName("access_token_as_jwt") + private Boolean accessTokenAsJwt = null; + + @SerializedName("access_token_signing_alg") + private String accessTokenSigningAlg = null; + public UpdateSiteParams oxdId(String oxdId) { this.oxdId = oxdId; return this; @@ -409,9 +415,45 @@ public void setClaimsLocales(List claimsLocales) { this.claimsLocales = claimsLocales; } + public UpdateSiteParams accessTokenAsJwt(Boolean accessTokenAsJwt) { + this.accessTokenAsJwt = accessTokenAsJwt; + return this; + } + + /** + * specifies whether access_token should be return as JWT or not. Default value is false. + * @return accessTokenAsJwt + **/ + @ApiModelProperty(value = "specifies whether access_token should be return as JWT or not. Default value is false.") + public Boolean isAccessTokenAsJwt() { + return accessTokenAsJwt; + } + + public void setAccessTokenAsJwt(Boolean accessTokenAsJwt) { + this.accessTokenAsJwt = accessTokenAsJwt; + } + + public UpdateSiteParams accessTokenSigningAlg(String accessTokenSigningAlg) { + this.accessTokenSigningAlg = accessTokenSigningAlg; + return this; + } + + /** + * sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512 + * @return accessTokenSigningAlg + **/ + @ApiModelProperty(value = "sets signing algorithm used for JWT signing. Valid values are none, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512") + public String getAccessTokenSigningAlg() { + return accessTokenSigningAlg; + } + + public void setAccessTokenSigningAlg(String accessTokenSigningAlg) { + this.accessTokenSigningAlg = accessTokenSigningAlg; + } + @Override - public boolean equals(java.lang.Object o) { + public boolean equals(Object o) { if (this == o) { return true; } @@ -433,12 +475,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.clientSecretExpiresAt, updateSiteParams.clientSecretExpiresAt) && Objects.equals(this.contacts, updateSiteParams.contacts) && Objects.equals(this.uiLocales, updateSiteParams.uiLocales) && - Objects.equals(this.claimsLocales, updateSiteParams.claimsLocales); + Objects.equals(this.claimsLocales, updateSiteParams.claimsLocales) && + Objects.equals(this.accessTokenAsJwt, updateSiteParams.accessTokenAsJwt) && + Objects.equals(this.accessTokenSigningAlg, updateSiteParams.accessTokenSigningAlg); } @Override public int hashCode() { - return Objects.hash(oxdId, authorizationRedirectUri, postLogoutRedirectUri, responseTypes, grantTypes, scope, acrValues, clientJwksUri, clientTokenEndpointAuthMethod, clientRequestUris, clientSectorIdentifierUri, clientSecretExpiresAt, contacts, uiLocales, claimsLocales); + return Objects.hash(oxdId, authorizationRedirectUri, postLogoutRedirectUri, responseTypes, grantTypes, scope, acrValues, clientJwksUri, clientTokenEndpointAuthMethod, clientRequestUris, clientSectorIdentifierUri, clientSecretExpiresAt, contacts, uiLocales, claimsLocales, accessTokenAsJwt, accessTokenSigningAlg); } @@ -462,6 +506,8 @@ public String toString() { sb.append(" contacts: ").append(toIndentedString(contacts)).append("\n"); sb.append(" uiLocales: ").append(toIndentedString(uiLocales)).append("\n"); sb.append(" claimsLocales: ").append(toIndentedString(claimsLocales)).append("\n"); + sb.append(" accessTokenAsJwt: ").append(toIndentedString(accessTokenAsJwt)).append("\n"); + sb.append(" accessTokenSigningAlg: ").append(toIndentedString(accessTokenSigningAlg)).append("\n"); sb.append("}"); return sb.toString(); } @@ -470,7 +516,7 @@ public String toString() { * Convert the given object to string with each line indented by 4 spaces * (except the first line). */ - private String toIndentedString(java.lang.Object o) { + private String toIndentedString(Object o) { if (o == null) { return "null"; } From 6775e8bddfd326e68c62f0422af49ba40aa03806 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 9 Nov 2018 12:03:58 +0530 Subject: [PATCH 208/230] #233: Updated method call to reflect actual method's parameters --- .../src/test/java/io/swagger/client/api/GetLogoutUrlTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java index 169bbc4bd..7133952d9 100644 --- a/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetLogoutUrlTest.java @@ -29,7 +29,7 @@ public class GetLogoutUrlTest { public void test(String opHost, String redirectUrl, String postLogoutRedirectUrl) throws Exception { final DevelopersApi client = api(); - final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, "" ); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl, postLogoutRedirectUrl, "","","" ); final GetLogoutUriParams params = new GetLogoutUriParams(); params.setOxdId(site.getOxdId()); From ee68dcd8f68c4fe7bcabb0aebba4d7dce5d8fa9c Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Fri, 9 Nov 2018 12:06:05 +0530 Subject: [PATCH 209/230] #233: Added definitio for Access Token as JWT test --- oxd-server/src/test/resources/testng.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index e89f1dcb3..c66936a07 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -206,5 +206,12 @@ + + + + + + + From fa0cd7079f16bdd02c70250428d45a7c5b1236ce Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Fri, 9 Nov 2018 14:34:03 +0200 Subject: [PATCH 210/230] #253 : fixed lsox.sh CLI for oxd 4.0.beta after migration from sockets to HTTP https://github.com/GluuFederation/oxd/issues/253 --- .../org/xdi/oxd/client/ClientInterface.java | 2 +- .../java/org/xdi/oxd/client/OxdClient.java | 24 ++++++++++++++ .../src/main/java/org/xdi/oxd/server/Cli.java | 33 ++++++++++++++++--- 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index 4d3bf313b..2c5d1f3af 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -136,5 +136,5 @@ public interface ClientInterface { @Path("/get-rp") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) - GetRpResponse getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); + String getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); } diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/OxdClient.java b/oxd-client/src/main/java/org/xdi/oxd/client/OxdClient.java index 039c5420e..52dcaf81d 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/OxdClient.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/OxdClient.java @@ -2,8 +2,13 @@ import org.glassfish.jersey.client.proxy.WebResourceFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; +import java.security.SecureRandom; +import java.security.cert.X509Certificate; /** * @author yuriyz @@ -17,4 +22,23 @@ public static ClientInterface newClient(String target) { WebTarget webTarget = ClientBuilder.newClient().target(target); return WebResourceFactory.newResource(ClientInterface.class, webTarget); } + + public static ClientInterface newTrustAllClient(String target) throws Exception { + TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkClientTrusted(X509Certificate[] certs, String authType) { + } + + public void checkServerTrusted(X509Certificate[] certs, String authType) { + } + }}; + SSLContext sc = SSLContext.getInstance("TLS"); + sc.init(null, trustAllCerts, new SecureRandom()); + + WebTarget webTarget = ClientBuilder.newBuilder().sslContext(sc).build().target(target); + return WebResourceFactory.newResource(ClientInterface.class, webTarget); + } } diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java index 1ea1ab35d..f66e434f8 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/Cli.java @@ -17,8 +17,10 @@ import org.apache.log4j.Logger; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.node.ArrayNode; +import org.slf4j.LoggerFactory; import org.xdi.oxd.client.ClientInterface; import org.xdi.oxd.client.OxdClient; +import org.xdi.oxd.common.CoreUtils; import org.xdi.oxd.common.params.GetRpParams; import org.xdi.oxd.common.params.RemoveSiteParams; import org.xdi.oxd.common.response.GetRpResponse; @@ -44,7 +46,7 @@ public class Cli { public static void main(String[] args) { CommandLineParser parser = new DefaultParser(); CommandLine cmd = null; - String oxdId = null; + String oxdId; switchOffLogging(); try { cmd = parser.parse(options(), args); @@ -138,6 +140,9 @@ private static void switchOffLogging() { for (Logger logger : loggers) { logger.setLevel(Level.OFF); } + + ch.qos.logback.classic.Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME); + root.setLevel(ch.qos.logback.classic.Level.OFF); } private static Pair getPort(OxdServerConfiguration conf) { @@ -174,14 +179,27 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { } final String protocol = port.getSecond() ? "https" : "http"; - final ClientInterface client = OxdClient.newClient(protocol + "://localhost:" + port.getFirst()); - String authorization = ""; // todo get authorization here try { + final ClientInterface client = OxdClient.newTrustAllClient(protocol + "://localhost:" + port.getFirst()); + String authorization = ""; + + if (cmd.hasOption("a")) { + authorization = cmd.getOptionValue("a"); + } + + if (StringUtils.isBlank(authorization)) { + System.out.println("Failed to connect to running oxd. There are two ways to proceed: \n" + + " - 1) stop oxd and then run command again. Then script can connect to database directly. If oxd is running it has exclusive lock on database, so script is not able to connect to database directly\n" + + " - 2) provide authorization access_token (same that is provided in Authorization header in oxd API) via -a parameter (e.g. lsox.sh -a xxxx-xxxx-xxxx-xxxx -l), so script can connect to running oxd"); + return; + } + if (cmd.hasOption("l")) { GetRpParams params = new GetRpParams(); params.setList(true); - GetRpResponse resp = client.getRp(authorization, params); + String respString = client.getRp(authorization, params); + GetRpResponse resp = CoreUtils.createJsonMapper().readValue(respString, GetRpResponse.class); if (resp == null) { System.out.println("Failed to fetch entries from database. Please check oxd-server.log file for details."); return; @@ -210,7 +228,8 @@ private static void tryToConnectToRunningOxd(CommandLine cmd) { if (cmd.hasOption("oxd_id")) { final String oxdId = cmd.getOptionValue("oxd_id"); - GetRpResponse resp = client.getRp(authorization, new GetRpParams(oxdId)); + String respString = client.getRp(authorization, new GetRpParams(oxdId)); + GetRpResponse resp = CoreUtils.createJsonMapper().readValue(respString, GetRpResponse.class); if (resp != null) { print(oxdId, resp.getNode()); } else { @@ -268,6 +287,10 @@ private static Options options() { configOption.setRequired(true); options.addOption(configOption); + Option authorizationOption = new Option("a", "authorization", true, "authorization access_token used to connect to running oxd"); + authorizationOption.setRequired(false); + options.addOption(authorizationOption); + return options; } } From 58c83fb5f29f672e1a838f9e474bec7634a58124 Mon Sep 17 00:00:00 2001 From: Mustafa Baser Date: Fri, 9 Nov 2018 20:11:56 +0300 Subject: [PATCH 211/230] automate installing pip and pyyaml in oxd_updater.py --- upgrade/oxd_updater.py | 213 ++++++++++++++++++++++++++++++++++------- 1 file changed, 181 insertions(+), 32 deletions(-) diff --git a/upgrade/oxd_updater.py b/upgrade/oxd_updater.py index 37184aceb..31b8c8e94 100755 --- a/upgrade/oxd_updater.py +++ b/upgrade/oxd_updater.py @@ -7,8 +7,99 @@ import json import xml.etree.ElementTree as ET import string -import yaml import re +import platform +import time + +os_commands = { + + 'debian': { + + '9': [ + 'echo "deb https://repo.gluu.org/debian/ stretch-stable main" > /etc/apt/sources.list.d/gluu-repo.list', + ], + + '8': [ + 'echo "deb https://repo.gluu.org/debian/ stable main" > /etc/apt/sources.list.d/gluu-repo.list', + ], + + }, + + 'ubuntu': { + '16': [ + 'echo "deb https://repo.gluu.org/ubuntu/ xenial-devel main" > /etc/apt/sources.list.d/gluu-repo.list', + ], + '14': [ + 'echo "deb https://repo.gluu.org/ubuntu/ trusty main" > /etc/apt/sources.list.d/gluu-repo.list' + ], + }, + + 'centos': { + '6': [ + 'wget https://repo.gluu.org/centos/Gluu-centos6.repo -O /etc/yum.repos.d/Gluu.repo' + ], + + '7': [ + 'wget https://repo.gluu.org/centos/Gluu-centos7.repo -O /etc/yum.repos.d/Gluu.repo' + ], + }, + 'red': { + '6': [ + 'wget https://repo.gluu.org/rhel/Gluu-rhel6.repo -O /etc/yum.repos.d/Gluu.repo' + ], + '7': [ + 'wget https://repo.gluu.org/rhel/Gluu-rhel7.repo -O /etc/yum.repos.d/Gluu.repo' + ], + }, + + } + +def detect_os_type(): + try: + p = platform.linux_distribution() + os_type = p[0].split()[0].lower() + os_version = p[1].split('.')[0] + return os_type, os_version + except: + sys.exit('OS type could not be determined, exiting.') + +os_type = detect_os_type() + +try: + commands = os_commands[os_type[0]][os_type[1]] +except: + sys.exit('Unsupported Operating System, exiting.') + + +if os_type[0] in ('ubuntu','debian'): + commands += [ + 'curl https://repo.gluu.org/debian/gluu-apt.key | apt-key add -', + 'apt-get update', + 'apt-get install -y oxd-server-4.0.beta', + ] + +elif os_type[0] in ('centos','red'): + commands += [ + 'wget https://repo.gluu.org/rhel/RPM-GPG-KEY-GLUU -O /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU', + 'rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-GLUU', + 'yum clean all', + 'yum install -y oxd-server-4.0.beta' + ] + +try: + import pip +except: + add_commands = ['curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"', + 'python get-pip.py' + ] +try: + import yaml + add_commands = [] +except: + add_commands.append('pip install pyyaml') + +if add_commands: + commands += add_commands def get_by_attrib(elements, attrib, value=True): for element in elements: @@ -46,55 +137,115 @@ def _byteify(data, ignore_dicts = False): current_version = '4.0.beta' oxd_base_dir = '/opt/oxd-server' oxd_data_dir = os.path.join(oxd_base_dir, 'conf') -oxd_conf_dir = '/etc/oxd/oxd-server' if os.path.exists('etc/oxd/oxd-server') else '/opt/oxd-server/conf' +oxd_conf_dir = '/etc/oxd/oxd-server' if os.path.exists('/etc/oxd/oxd-server') else '/opt/oxd-server/conf' -oxd_data_backup_dir = os.path.join(oxd_base_dir, 'json_data_backup') +oxd_backup_dir = os.path.join('/var/oxd-backup') +oxd_data_backup_dir = os.path.join(oxd_backup_dir, 'json_data_backup') + +if not os.path.exists(oxd_backup_dir): + os.mkdir(oxd_backup_dir) + +if not os.path.exists(oxd_data_backup_dir): + os.mkdir(oxd_data_backup_dir) oxd_conf_json_fn = os.path.join(oxd_conf_dir, 'oxd-conf.json') oxd_default_site_config_json_fn = os.path.join(oxd_conf_dir, 'oxd-default-site-config.json') log4j_xml_fn = os.path.join(oxd_conf_dir, 'log4j.xml') -conf_yaml_template = '/opt/oxd-server/conf/oxd-server.yml.temp' +conf_yaml_template = 'oxd-server.yml.temp' oxd4_server_yaml_fn = os.path.join(oxd_conf_dir, 'oxd-server.yml') -shutil.copyfile(oxd4_server_yaml_fn, oxd4_server_yaml_fn + '._backup_'+time.ctime().replace(' ','_')) update_required = False if os.path.exists(oxd_conf_json_fn): - oxd_conf_json = json_load_byteified(oxd_conf_json_fn) update_required = True - + if os.path.exists(oxd_default_site_config_json_fn): - oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_fn) update_required = True -do_upgrade = False + if update_required: - - print "An old isntance of oxd-server detected." + + print "A previous version of oxd-server detected. If you cintinue," + print "previous version will be uninstalled, latest version will be installed," + print "and your config/data will be migrated to latest version" ask = "Do you want to migrate data to oxd-server-{0}? [y|N]: ".format(current_version) - + answer = raw_input(ask) - if answer and answer.lower()[0] == 'y': - do_upgrade = True - else: - print "You can do upgrade later by running: python /opt/oxd-server/bin/oxd_updater.py" - -if do_upgrade: - - log4j_xml_tree = tree = ET.parse(log4j_xml_fn) + if not answer or answer.lower()[0] != 'y': + sys.exit("Migrating cancelled, exiting.") + + if os_type[0] in ('ubuntu','debian'): + commands.insert(0,'apt-get purge -y oxd-server') + elif os_type[0] in ('centos','red'): + commands.insert(0,'yum remove -y oxd-server') + + + +if update_required: + + commands.append('wget https://raw.githubusercontent.com/GluuFederation/oxd/version_4.0.beta/upgrade/oxd-server.yml.temp -O oxd-server.yml.temp') + + for b_file in ( + oxd_conf_json_fn, + oxd_default_site_config_json_fn, + log4j_xml_fn, + oxd4_server_yaml_fn, + '/opt/oxd-server/data/oxd_db.mv.db', + ): + + if os.path.exists(b_file): + shutil.copy2(b_file, oxd_backup_dir) + + json_files = glob.glob(os.path.join(oxd_conf_dir,'*.json')) + + json_files.remove(os.path.join(oxd_conf_dir,'oxd-conf.json')) + json_files.remove(os.path.join(oxd_conf_dir,'oxd-default-site-config.json')) + + for json_file in json_files: + shutil.move(json_file, oxd_data_backup_dir) + + +print "About to execute following commands:" +print '\n'.join(commands) +print "You can interrupt by pressing Ctr+C in 10 seconds" +print +for i in range(10,-1,-1): + print "Execution will start in {0} seconds".format(i) + time.sleep(1) +print + +for cmd in commands: + print "Executing", cmd + os.system(cmd) + +import yaml + +if update_required: + + oxd_conf_json_back_fn = os.path.join(oxd_backup_dir, 'oxd-conf.json') + oxd_default_site_config_json_back_fn = os.path.join(oxd_backup_dir, 'oxd-default-site-config.json') + log4j_xml_back_fn = os.path.join(oxd_backup_dir, 'log4j.xml') + + + oxd_conf_json = json_load_byteified(oxd_conf_json_back_fn) + + oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_back_fn) + + log4j_xml_tree = tree = ET.parse(log4j_xml_back_fn) log4j_xml_root = log4j_xml_tree.getroot() + oxd4_server_yaml_fn = '/opt/oxd-server/conf/oxd-server.yml' + oxd4_server_yaml = yaml.safe_load(open(oxd4_server_yaml_fn).read()) for key in oxd_default_site_config_json: if key in oxd4_server_yaml['defaultSiteConfig']: oxd4_server_yaml['defaultSiteConfig'][key] = oxd_default_site_config_json[key] - for key in oxd_conf_json: if key in oxd4_server_yaml: oxd4_server_yaml[key] = oxd_conf_json[key] @@ -127,16 +278,6 @@ def _byteify(data, ignore_dicts = False): oxd4_server_yaml['logging']['level'] = priority - if not os.path.exists(oxd_data_backup_dir): - os.mkdir(oxd_data_backup_dir) - - json_files = glob.glob(os.path.join(oxd_data_dir,'*.json')) - - json_files.remove(os.path.join(oxd_data_dir,'oxd-conf.json')) - json_files.remove(os.path.join(oxd_data_dir,'oxd-default-site-config.json')) - - for json_file in json_files: - shutil.move(json_file, oxd_data_backup_dir) oxd4_server_yaml['migration_source_folder_path'] = oxd_data_backup_dir @@ -161,9 +302,17 @@ def _byteify(data, ignore_dicts = False): k = '{{'+sv+'}}' #print sv, m yaml_temp = yaml_temp.replace(k,str(m)) - + with open(oxd4_server_yaml_fn,'w') as W: W.write(yaml_temp) + + db_fn_backup = os.path.join(oxd_backup_dir,'oxd_db.mv.db') + + if os.path.exists(db_fn_backup): + shutil.copy2(db_fn_backup, '/opt/oxd-server/data/') + + os.system('chown jetty:jetty ' + oxd_backup_dir) + print "Migration is finished. Please restart oxd-server" From f9500789da4f823eea9f6b401d9d9a34b068c95d Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 10:10:12 +0530 Subject: [PATCH 212/230] #260: Added JWKS Operation detail --- .../src/main/java/org/xdi/oxd/server/op/OperationFactory.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java index 717ea364b..f68312084 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/OperationFactory.java @@ -68,6 +68,8 @@ public static IOperation create(Command command, final Inject return new RemoveSiteOperation(command, injector); case GET_RP: return new GetRpOperation(command, injector); + case GET_JWKS: + return new GetJwksOperation(command, injector); } LOG.error("Command is not supported. Command: {}", command); } else { From 4291596a2e10b1318088a224228b587d7013761d Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 10:11:35 +0530 Subject: [PATCH 213/230] #260: Added definition for JWKS command --- oxd-common/src/main/java/org/xdi/oxd/common/CommandType.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/CommandType.java b/oxd-common/src/main/java/org/xdi/oxd/common/CommandType.java index dce01ad91..a1a9e1078 100644 --- a/oxd-common/src/main/java/org/xdi/oxd/common/CommandType.java +++ b/oxd-common/src/main/java/org/xdi/oxd/common/CommandType.java @@ -42,7 +42,8 @@ public enum CommandType { AUTHORIZATION_CODE_FLOW("authorization_code_flow"), IMPLICIT_FLOW("implicit_flow"), GET_CLIENT_TOKEN("get_client_token"), - GET_RP("get_rp"); + GET_RP("get_rp"), + GET_JWKS("get_jwks"); private final String value; From fbfe7c356c97447ab62aff2c409751ed91894aa7 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 10:13:17 +0530 Subject: [PATCH 214/230] #260: Added get-jwks operation definition --- .../src/main/java/org/xdi/oxd/server/RestResource.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java index 5c13b3528..a86c5ed14 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/RestResource.java @@ -191,6 +191,15 @@ public String getRp(@HeaderParam("Authorization") String authorization, String p return process(CommandType.GET_RP, params, GetRpParams.class, authorization); } + @POST + @Path("/get-jwks") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + public String getJwks(@HeaderParam("Authorization") String authorization, String params) { + return process(CommandType.GET_JWKS, params, GetJwksParams.class, authorization); + } + + public static T read(String params, Class clazz) { try { return CoreUtils.createJsonMapper().readValue(params, clazz); From 4bfe5b3b6571bf306f98fd46d0cf389e042705a6 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 12:10:24 +0530 Subject: [PATCH 215/230] #260: Added get-jwks operation class --- .../xdi/oxd/server/op/GetJwksOperation.java | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java new file mode 100644 index 000000000..356bcf675 --- /dev/null +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java @@ -0,0 +1,57 @@ +/* + All rights reserved -- Copyright 2015 Gluu Inc. +*/ +package org.xdi.oxd.server.op; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.google.inject.Injector; +import org.xdi.oxauth.client.JwkClient; +import org.xdi.oxauth.client.JwkResponse; +import org.xdi.oxauth.model.uma.UmaMetadata; +import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.params.GetJwksParams; +import org.xdi.oxd.common.response.GetJwksResponse; +import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.server.service.DiscoveryService; + +/** + * Service class for fetching JSON Web Key set + * + * @author Shoeb + * @version 11/10/2018 + */ +public class GetJwksOperation extends BaseOperation { + + protected GetJwksOperation(Command command, Injector injector) { + super(command, injector, GetJwksParams.class); + } + + @Override + public IOpResponse execute(GetJwksParams params) { + try { + + final DiscoveryService discoveryService = getDiscoveryService(); + + final UmaMetadata umaMetadata = discoveryService.getUmaDiscovery(params.getOpHost(), params.getOpDiscoveryPath()); + + final String jwksUri = umaMetadata.getJwksUri(); + + final JwkClient jwkClient = new JwkClient(jwksUri); + jwkClient.setExecutor(getHttpService().getClientExecutor()); + + final JwkResponse serverResponse = jwkClient.exec(); + final String jwksJson = new ObjectMapper().writer(SerializationFeature.WRITE_ENUMS_USING_TO_STRING) + .writeValueAsString(serverResponse.getJwks()); + + final GetJwksResponse response = new GetJwksResponse(); + response.setJwks(jwksJson); + + return response; + + } catch (Exception ex) { + throw new RuntimeException(ex); + } + + } +} From bd49498d5e5e8c8634a0b614f773f93c5018230d Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 12:11:03 +0530 Subject: [PATCH 216/230] #260: Added get-jwks response class --- .../oxd/common/response/GetJwksResponse.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/response/GetJwksResponse.java diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/response/GetJwksResponse.java b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetJwksResponse.java new file mode 100644 index 000000000..f95fb1017 --- /dev/null +++ b/oxd-common/src/main/java/org/xdi/oxd/common/response/GetJwksResponse.java @@ -0,0 +1,30 @@ +/* + All rights reserved -- Copyright 2015 Gluu Inc. + */ +package org.xdi.oxd.common.response; + +import org.codehaus.jackson.annotate.JsonProperty; + +/** + * JSON Web Key Set response class + * + * @author Shoeb + * @version 11/10/2018 + */ +public class GetJwksResponse implements IOpResponse { + + @JsonProperty(value = "jwks") + @com.fasterxml.jackson.annotation.JsonProperty(value = "jwks") + private String jwks; + + public GetJwksResponse() { + } + + public String getJwks() { + return jwks; + } + + public void setJwks(String jwks) { + this.jwks = jwks; + } +} \ No newline at end of file From 943a6436573282cc67c69e5ad01664d99b4e56a7 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 21:00:20 +0530 Subject: [PATCH 217/230] #260: Added JWKS parameter class --- .../xdi/oxd/common/params/GetJwksParams.java | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 oxd-common/src/main/java/org/xdi/oxd/common/params/GetJwksParams.java diff --git a/oxd-common/src/main/java/org/xdi/oxd/common/params/GetJwksParams.java b/oxd-common/src/main/java/org/xdi/oxd/common/params/GetJwksParams.java new file mode 100644 index 000000000..88cc72537 --- /dev/null +++ b/oxd-common/src/main/java/org/xdi/oxd/common/params/GetJwksParams.java @@ -0,0 +1,41 @@ +/* + All rights reserved -- Copyright 2015 Gluu Inc. +*/ +package org.xdi.oxd.common.params; + +import com.fasterxml.jackson.annotation.JsonInclude; +import org.codehaus.jackson.annotate.JsonIgnoreProperties; +import org.codehaus.jackson.annotate.JsonProperty; + +/** + * Parameter class for JWKS request + * + * @author Shoeb + * @version 11/10/2018 + */ +@JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class GetJwksParams implements IParams { + + @JsonProperty(value = "op_host") + private String op_host; + + @JsonProperty(value = "op_discovery_path") + private String op_discovery_path; + + public String getOpHost() { + return op_host; + } + + public void setOpHost(String opHost) { + this.op_host = opHost; + } + + public String getOpDiscoveryPath() { + return op_discovery_path; + } + + public void setOpDiscoveryPath(String opDiscoveryPath) { + this.op_discovery_path = opDiscoveryPath; + } +} From 1068ec8dd235c02d192a57f5641333da18e7d291 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Sun, 11 Nov 2018 21:01:43 +0530 Subject: [PATCH 218/230] #260: Added class for jwks non-swagger test --- .../java/org/xdi/oxd/server/GetJwksTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 oxd-server/src/test/java/org/xdi/oxd/server/GetJwksTest.java diff --git a/oxd-server/src/test/java/org/xdi/oxd/server/GetJwksTest.java b/oxd-server/src/test/java/org/xdi/oxd/server/GetJwksTest.java new file mode 100644 index 000000000..a5cbcb4a4 --- /dev/null +++ b/oxd-server/src/test/java/org/xdi/oxd/server/GetJwksTest.java @@ -0,0 +1,38 @@ +/* + All rights reserved -- Copyright 2015 Gluu Inc. +*/ +package org.xdi.oxd.server; + +import org.testng.annotations.Optional; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxd.client.ClientInterface; +import org.xdi.oxd.common.params.GetJwksParams; +import org.xdi.oxd.common.response.GetJwksResponse; + +import static org.testng.Assert.assertNotNull; + +/** + * Test for checking JSON Web Key Set functionality + * + * @author Shoeb + * @version 11/11/2018 + */ +public class GetJwksTest { + + @Test + @Parameters({"host", "opHost", "opDiscoveryPath"}) + public void test(String host, String opHost, @Optional String opDiscoveryPath) { + + final ClientInterface client = Tester.newClient(host); + + final GetJwksParams params = new GetJwksParams(); + params.setOpHost(opHost); + params.setOpDiscoveryPath(opDiscoveryPath); + + final GetJwksResponse response = client.getJwks(Tester.getAuthorization(), params); + assertNotNull(response); + assertNotNull(response.getJwks()); + + } +} From 7ed08cbb8f802d518131599d14d970e562a2a0fa Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:07:35 +0530 Subject: [PATCH 219/230] #260: Added get-jwks operation endpoint details --- oxd-server/src/main/resources/swagger.yaml | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/oxd-server/src/main/resources/swagger.yaml b/oxd-server/src/main/resources/swagger.yaml index eaabf068f..95d42375b 100644 --- a/oxd-server/src/main/resources/swagger.yaml +++ b/oxd-server/src/main/resources/swagger.yaml @@ -1207,6 +1207,50 @@ paths: description: Forbidden. Invalid access token provided in Authorization header. 500: description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). + /get-jwks: + post: + tags: + - developers + summary: Get JSON Web Key Set + operationId: get-json-web-key-set + description: Get JSON Web Key Set + consumes: + - application/json + produces: + - application/json + parameters: + - in: header + name: Authorization + type: string + - in: body + name: GetJwksParams + schema: + type: object + required: + - op_host + properties: + op_host: + type: string + example: https:// + op_discovery_path: + type: string + responses: + 200: + description: OK + schema: + type: object + title: GetJwksResponse + required: + - jwks + properties: + jwks: + type: string + 400: + description: Invalid parameters are provided to endpoint. + 403: + description: Forbidden. Invalid access token provided in Authorization header. + 500: + description: Internal error occured. Please check oxd-server.log file for details (usually located in /var/log/oxd-server/oxd-server.log). definitions: # List of reusable properties From 94d88b32148e326ccaf920ef41bd5e80a888dff1 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:08:26 +0530 Subject: [PATCH 220/230] #260: Added validation --- .../main/java/org/xdi/oxd/server/op/GetJwksOperation.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java index 356bcf675..d92dc3813 100644 --- a/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java +++ b/oxd-server/src/main/java/org/xdi/oxd/server/op/GetJwksOperation.java @@ -6,13 +6,16 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.google.inject.Injector; +import org.apache.commons.lang.StringUtils; import org.xdi.oxauth.client.JwkClient; import org.xdi.oxauth.client.JwkResponse; import org.xdi.oxauth.model.uma.UmaMetadata; import org.xdi.oxd.common.Command; +import org.xdi.oxd.common.ErrorResponseCode; import org.xdi.oxd.common.params.GetJwksParams; import org.xdi.oxd.common.response.GetJwksResponse; import org.xdi.oxd.common.response.IOpResponse; +import org.xdi.oxd.server.HttpException; import org.xdi.oxd.server.service.DiscoveryService; /** @@ -29,6 +32,11 @@ protected GetJwksOperation(Command command, Injector injector) { @Override public IOpResponse execute(GetJwksParams params) { + + if (StringUtils.isEmpty(params.getOpHost())) { + throw new HttpException(ErrorResponseCode.INVALID_OP_HOST); + } + try { final DiscoveryService discoveryService = getDiscoveryService(); From fbe6fe6fd262057df903130462c13c6c4aa78c1d Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:09:21 +0530 Subject: [PATCH 221/230] #260: Added get-jwks swagger based test class --- .../io/swagger/client/api/GetJwksTest.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/GetJwksTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/GetJwksTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/GetJwksTest.java new file mode 100644 index 000000000..528bec314 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/GetJwksTest.java @@ -0,0 +1,58 @@ +/* + All rights reserved -- Copyright 2015 Gluu Inc. +*/ +package io.swagger.client.api; + +import io.swagger.client.ApiException; +import io.swagger.client.model.GetJwksParams; +import io.swagger.client.model.GetJwksResponse; +import org.testng.annotations.Optional; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +import static io.swagger.client.api.Tester.api; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertNotNull; + +/** + * Test for checking JSON Web Key Set functionality + * + * @author Shoeb + * @version 11/11/2018 + */ +public class GetJwksTest { + + @Test + @Parameters({"opHost", "opDiscoveryPath"}) + public void test(String opHost, @Optional String opDiscoveryPath) throws Exception { + + final DevelopersApi client = api(); + + final GetJwksParams params = new GetJwksParams(); + params.setOpHost(opHost); + params.setOpDiscoveryPath(opDiscoveryPath); + + final GetJwksResponse response = client.getJsonWebKeySet(Tester.getAuthorization(), params); + assertNotNull(response); + assertNotNull(response.getJwks()); + + } + + @Test + @Parameters({"opDiscoveryPath"}) + public void testWithNoOP(@Optional String opDiscoveryPath) throws Exception { + + final DevelopersApi client = api(); + + final GetJwksParams params = new GetJwksParams(); + params.setOpDiscoveryPath(opDiscoveryPath); + + try { + client.getJsonWebKeySetWithHttpInfo(Tester.getAuthorization(), params); + } catch (ApiException ex) { + assertEquals(ex.getCode(), 400); + } + + } + +} From a4979d8a4a26baf115447bbd25946ecdff35de6b Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:10:19 +0530 Subject: [PATCH 222/230] #260: Added generated classes against updated swagger file --- .../swagger/client/model/GetJwksParams.java | 116 ++++++++++++++++++ .../swagger/client/model/GetJwksResponse.java | 93 ++++++++++++++ 2 files changed, 209 insertions(+) create mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksParams.java create mode 100644 oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksResponse.java diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksParams.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksParams.java new file mode 100644 index 000000000..2bb5fc4e6 --- /dev/null +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksParams.java @@ -0,0 +1,116 @@ +/* + * oxd-server + * oxd-server + * + * OpenAPI spec version: 4.0.beta + * Contact: yuriyz@gluu.org + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package io.swagger.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * GetJwksParams + */ +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-12T15:24:51.683Z") +public class GetJwksParams { + @SerializedName("op_host") + private String opHost = null; + + @SerializedName("op_discovery_path") + private String opDiscoveryPath = null; + + public GetJwksParams opHost(String opHost) { + this.opHost = opHost; + return this; + } + + /** + * Get opHost + * @return opHost + **/ + @ApiModelProperty(example = "https://", required = true, value = "") + public String getOpHost() { + return opHost; + } + + public void setOpHost(String opHost) { + this.opHost = opHost; + } + + public GetJwksParams opDiscoveryPath(String opDiscoveryPath) { + this.opDiscoveryPath = opDiscoveryPath; + return this; + } + + /** + * Get opDiscoveryPath + * @return opDiscoveryPath + **/ + @ApiModelProperty(value = "") + public String getOpDiscoveryPath() { + return opDiscoveryPath; + } + + public void setOpDiscoveryPath(String opDiscoveryPath) { + this.opDiscoveryPath = opDiscoveryPath; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetJwksParams getJwksParams = (GetJwksParams) o; + return Objects.equals(this.opHost, getJwksParams.opHost) && + Objects.equals(this.opDiscoveryPath, getJwksParams.opDiscoveryPath); + } + + @Override + public int hashCode() { + return Objects.hash(opHost, opDiscoveryPath); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetJwksParams {\n"); + + sb.append(" opHost: ").append(toIndentedString(opHost)).append("\n"); + sb.append(" opDiscoveryPath: ").append(toIndentedString(opDiscoveryPath)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksResponse.java b/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksResponse.java new file mode 100644 index 000000000..8eeb640a8 --- /dev/null +++ b/oxd-gen-client/src/main/java/io/swagger/client/model/GetJwksResponse.java @@ -0,0 +1,93 @@ +/* + * oxd-server + * oxd-server + * + * OpenAPI spec version: 4.0.beta + * Contact: yuriyz@gluu.org + * + * NOTE: This class is auto generated by the swagger code generator program. + * https://github.com/swagger-api/swagger-codegen.git + * Do not edit the class manually. + */ + + +package io.swagger.client.model; + +import java.util.Objects; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * GetJwksResponse + */ +@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2018-11-11T15:47:43.225Z") +public class GetJwksResponse { + @SerializedName("jwks") + private String jwks = null; + + public GetJwksResponse jwks(String jwks) { + this.jwks = jwks; + return this; + } + + /** + * Get jwks + * @return jwks + **/ + @ApiModelProperty(required = true, value = "") + public String getJwks() { + return jwks; + } + + public void setJwks(String jwks) { + this.jwks = jwks; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GetJwksResponse getJwksResponse = (GetJwksResponse) o; + return Objects.equals(this.jwks, getJwksResponse.jwks); + } + + @Override + public int hashCode() { + return Objects.hash(jwks); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GetJwksResponse {\n"); + + sb.append(" jwks: ").append(toIndentedString(jwks)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + From ae4272b186f0f4f299b10e78cbada2ba4e4beafe Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:11:02 +0530 Subject: [PATCH 223/230] #260: Added regenerated class --- .../io/swagger/client/api/DevelopersApi.java | 208 ++++++++++++++++-- 1 file changed, 186 insertions(+), 22 deletions(-) diff --git a/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java b/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java index 58a74d50f..3a463c5d6 100644 --- a/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java +++ b/oxd-gen-client/src/main/java/io/swagger/client/api/DevelopersApi.java @@ -2,7 +2,7 @@ * oxd-server * oxd-server * - * OpenAPI spec version: 4.0.0 + * OpenAPI spec version: 4.0.beta * Contact: yuriyz@gluu.org * * NOTE: This class is auto generated by the swagger code generator program. @@ -13,11 +13,52 @@ package io.swagger.client.api; +import io.swagger.client.ApiCallback; +import io.swagger.client.ApiClient; +import io.swagger.client.ApiException; +import io.swagger.client.ApiResponse; +import io.swagger.client.Configuration; +import io.swagger.client.Pair; +import io.swagger.client.ProgressRequestBody; +import io.swagger.client.ProgressResponseBody; + import com.google.gson.reflect.TypeToken; -import io.swagger.client.*; -import io.swagger.client.model.*; import java.io.IOException; + + +import io.swagger.client.model.GetAccessTokenByRefreshTokenParams; +import io.swagger.client.model.GetAccessTokenByRefreshTokenResponse; +import io.swagger.client.model.GetAuthorizationUrlParams; +import io.swagger.client.model.GetAuthorizationUrlResponse; +import io.swagger.client.model.GetClientTokenParams; +import io.swagger.client.model.GetClientTokenResponse; +import io.swagger.client.model.GetJwksParams; +import io.swagger.client.model.GetJwksResponse; +import io.swagger.client.model.GetLogoutUriParams; +import io.swagger.client.model.GetLogoutUriResponse; +import io.swagger.client.model.GetTokensByCodeParams; +import io.swagger.client.model.GetTokensByCodeResponse; +import io.swagger.client.model.GetUserInfoParams; +import io.swagger.client.model.GetUserInfoResponse; +import io.swagger.client.model.IntrospectAccessTokenParams; +import io.swagger.client.model.IntrospectAccessTokenResponse; +import io.swagger.client.model.IntrospectRptParams; +import io.swagger.client.model.IntrospectRptResponse; +import io.swagger.client.model.RegisterSiteParams; +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.RemoveSiteParams; +import io.swagger.client.model.UmaRpGetClaimsGatheringUrlParams; +import io.swagger.client.model.UmaRpGetClaimsGatheringUrlResponse; +import io.swagger.client.model.UmaRpGetRptParams; +import io.swagger.client.model.UmaRpGetRptResponse; +import io.swagger.client.model.UmaRsCheckAccessParams; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import io.swagger.client.model.UmaRsProtectParams; +import io.swagger.client.model.UmaRsProtectResponse; +import io.swagger.client.model.UpdateSiteParams; +import io.swagger.client.model.UpdateSiteResponse; + import java.lang.reflect.Type; import java.util.ArrayList; import java.util.HashMap; @@ -82,7 +123,7 @@ public com.squareup.okhttp.Call getAccessTokenByRefreshTokenCall(String authoriz if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -205,7 +246,7 @@ public com.squareup.okhttp.Call getAuthorizationUrlCall(String authorization, Ge if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -325,7 +366,7 @@ public com.squareup.okhttp.Call getClientTokenCall(GetClientTokenParams getClien if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -406,6 +447,129 @@ public void onRequestProgress(long bytesWritten, long contentLength, boolean don apiClient.executeAsync(call, localVarReturnType, callback); return call; } + /** + * Build call for getJsonWebKeySet + * @param authorization (optional) + * @param getJwksParams (optional) + * @param progressListener Progress listener + * @param progressRequestListener Progress request listener + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + */ + public com.squareup.okhttp.Call getJsonWebKeySetCall(String authorization, GetJwksParams getJwksParams, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + Object localVarPostBody = getJwksParams; + + // create path and map variables + String localVarPath = "/get-jwks"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + + Map localVarHeaderParams = new HashMap(); + if (authorization != null) + localVarHeaderParams.put("Authorization", apiClient.parameterToString(authorization)); + + Map localVarFormParams = new HashMap(); + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) localVarHeaderParams.put("Accept", localVarAccept); + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + if(progressListener != null) { + apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { + @Override + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { + com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); + return originalResponse.newBuilder() + .body(new ProgressResponseBody(originalResponse.body(), progressListener)) + .build(); + } + }); + } + + String[] localVarAuthNames = new String[] { }; + return apiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener); + } + + @SuppressWarnings("rawtypes") + private com.squareup.okhttp.Call getJsonWebKeySetValidateBeforeCall(String authorization, GetJwksParams getJwksParams, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException { + + + com.squareup.okhttp.Call call = getJsonWebKeySetCall(authorization, getJwksParams, progressListener, progressRequestListener); + return call; + + } + + /** + * Get JSON Web Key Set + * Get JSON Web Key Set + * @param authorization (optional) + * @param getJwksParams (optional) + * @return GetJwksResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public GetJwksResponse getJsonWebKeySet(String authorization, GetJwksParams getJwksParams) throws ApiException { + ApiResponse resp = getJsonWebKeySetWithHttpInfo(authorization, getJwksParams); + return resp.getData(); + } + + /** + * Get JSON Web Key Set + * Get JSON Web Key Set + * @param authorization (optional) + * @param getJwksParams (optional) + * @return ApiResponse<GetJwksResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + */ + public ApiResponse getJsonWebKeySetWithHttpInfo(String authorization, GetJwksParams getJwksParams) throws ApiException { + com.squareup.okhttp.Call call = getJsonWebKeySetValidateBeforeCall(authorization, getJwksParams, null, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return apiClient.execute(call, localVarReturnType); + } + + /** + * Get JSON Web Key Set (asynchronously) + * Get JSON Web Key Set + * @param authorization (optional) + * @param getJwksParams (optional) + * @param callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + */ + public com.squareup.okhttp.Call getJsonWebKeySetAsync(String authorization, GetJwksParams getJwksParams, final ApiCallback callback) throws ApiException { + + ProgressResponseBody.ProgressListener progressListener = null; + ProgressRequestBody.ProgressRequestListener progressRequestListener = null; + + if (callback != null) { + progressListener = new ProgressResponseBody.ProgressListener() { + @Override + public void update(long bytesRead, long contentLength, boolean done) { + callback.onDownloadProgress(bytesRead, contentLength, done); + } + }; + + progressRequestListener = new ProgressRequestBody.ProgressRequestListener() { + @Override + public void onRequestProgress(long bytesWritten, long contentLength, boolean done) { + callback.onUploadProgress(bytesWritten, contentLength, done); + } + }; + } + + com.squareup.okhttp.Call call = getJsonWebKeySetValidateBeforeCall(authorization, getJwksParams, progressListener, progressRequestListener); + Type localVarReturnType = new TypeToken(){}.getType(); + apiClient.executeAsync(call, localVarReturnType, callback); + return call; + } /** * Build call for getLogoutUri * @param authorization (optional) @@ -445,7 +609,7 @@ public com.squareup.okhttp.Call getLogoutUriCall(String authorization, GetLogout if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -568,7 +732,7 @@ public com.squareup.okhttp.Call getTokensByCodeCall(String authorization, GetTok if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -691,7 +855,7 @@ public com.squareup.okhttp.Call getUserInfoCall(String authorization, GetUserInf if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -810,7 +974,7 @@ public com.squareup.okhttp.Call healthCheckCall(final ProgressResponseBody.Progr if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -923,7 +1087,7 @@ public com.squareup.okhttp.Call introspectAccessTokenCall(String authorization, if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1046,7 +1210,7 @@ public com.squareup.okhttp.Call introspectRptCall(String authorization, Introspe if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1166,7 +1330,7 @@ public com.squareup.okhttp.Call registerSiteCall(RegisterSiteParams registerSite if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1286,7 +1450,7 @@ public com.squareup.okhttp.Call removeSiteCall(String authorization, RemoveSiteP if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1409,7 +1573,7 @@ public com.squareup.okhttp.Call umaRpGetClaimsGatheringUrlCall(String authorizat if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1532,7 +1696,7 @@ public com.squareup.okhttp.Call umaRpGetRptCall(String authorization, UmaRpGetRp if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1655,7 +1819,7 @@ public com.squareup.okhttp.Call umaRsCheckAccessCall(String authorization, UmaRs if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1778,7 +1942,7 @@ public com.squareup.okhttp.Call umaRsProtectCall(String authorization, UmaRsProt if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1901,7 +2065,7 @@ public com.squareup.okhttp.Call updateSiteCall(String authorization, UpdateSiteP if(progressListener != null) { apiClient.getHttpClient().networkInterceptors().add(new com.squareup.okhttp.Interceptor() { @Override - public com.squareup.okhttp.Response intercept(com.squareup.okhttp.Interceptor.Chain chain) throws IOException { + public com.squareup.okhttp.Response intercept(Chain chain) throws IOException { com.squareup.okhttp.Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder() .body(new ProgressResponseBody(originalResponse.body(), progressListener)) @@ -1925,7 +2089,7 @@ private com.squareup.okhttp.Call updateSiteValidateBeforeCall(String authorizati /** * Update Site - * Updates site at oxd-server + * Updates site at oxd-server. If something changes in a pre-registered client, you can use this API to update your client in the OP. * @param authorization (optional) * @param updateSiteParams (optional) * @return UpdateSiteResponse @@ -1938,7 +2102,7 @@ public UpdateSiteResponse updateSite(String authorization, UpdateSiteParams upda /** * Update Site - * Updates site at oxd-server + * Updates site at oxd-server. If something changes in a pre-registered client, you can use this API to update your client in the OP. * @param authorization (optional) * @param updateSiteParams (optional) * @return ApiResponse<UpdateSiteResponse> @@ -1952,7 +2116,7 @@ public ApiResponse updateSiteWithHttpInfo(String authorizati /** * Update Site (asynchronously) - * Updates site at oxd-server + * Updates site at oxd-server. If something changes in a pre-registered client, you can use this API to update your client in the OP. * @param authorization (optional) * @param updateSiteParams (optional) * @param callback The callback to be executed when the API call finishes From 456d38427797a0012da93eadc4173ecd4adf06fc Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:12:45 +0530 Subject: [PATCH 224/230] #233: Added Uma Get Claims Gathering Uri Test class --- .../api/UmaGetClaimsGatheringUrlTest.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 oxd-gen-client/src/test/java/io/swagger/client/api/UmaGetClaimsGatheringUrlTest.java diff --git a/oxd-gen-client/src/test/java/io/swagger/client/api/UmaGetClaimsGatheringUrlTest.java b/oxd-gen-client/src/test/java/io/swagger/client/api/UmaGetClaimsGatheringUrlTest.java new file mode 100644 index 000000000..9b2a36987 --- /dev/null +++ b/oxd-gen-client/src/test/java/io/swagger/client/api/UmaGetClaimsGatheringUrlTest.java @@ -0,0 +1,51 @@ +package io.swagger.client.api; + +import io.swagger.client.model.RegisterSiteResponse; +import io.swagger.client.model.UmaRpGetClaimsGatheringUrlParams; +import io.swagger.client.model.UmaRpGetClaimsGatheringUrlResponse; +import io.swagger.client.model.UmaRsCheckAccessResponse; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; +import org.xdi.oxd.common.CoreUtils; + +import java.util.Map; + +import static org.apache.commons.lang.StringUtils.isNotBlank; +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; + +/** + * @author yuriyz + * @author Shoeb + * + * @version 11/12/2018 + */ +public class UmaGetClaimsGatheringUrlTest { + + @Parameters({"opHost", "redirectUrl", "rsProtect"}) + @Test + public void test(String opHost, String redirectUrl, String rsProtect) throws Exception { + + final DevelopersApi client = Tester.api(); + final RegisterSiteResponse site = RegisterSiteTest.registerSite(client, opHost, redirectUrl); + + RsProtectTest.protectResources(client, site, UmaFullTest.resourceList(rsProtect)); + + final UmaRsCheckAccessResponse checkAccess = RsCheckAccessTest.checkAccess(client, site); + + final UmaRpGetClaimsGatheringUrlParams params = new UmaRpGetClaimsGatheringUrlParams(); + params.setOxdId(site.getOxdId()); + params.setTicket(checkAccess.getTicket()); + params.setClaimsRedirectUri(redirectUrl); + + final UmaRpGetClaimsGatheringUrlResponse response = client.umaRpGetClaimsGatheringUrl(Tester.getAuthorization(), params); + + final Map parameters = CoreUtils.splitQuery(response.getUrl()); + + assertTrue(isNotBlank(parameters.get("client_id"))); + assertTrue(isNotBlank(parameters.get("ticket"))); + assertTrue(isNotBlank(parameters.get("state"))); + assertTrue(isNotBlank(response.getState())); + assertEquals(redirectUrl, parameters.get("claims_redirect_uri")); + } +} From 0e85a70fd3d1930b04532225457b5e9365bc8b42 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:14:30 +0530 Subject: [PATCH 225/230] #260: Added test definition for get-jwks endpoint --- oxd-server/src/test/resources/testng.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index c66936a07..961a9ab7a 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -131,6 +131,12 @@ + + + + + + @@ -212,6 +218,12 @@ + + + + + + From 6a2558dfd0082106488b568a193d23832b88ddbe Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:19:48 +0530 Subject: [PATCH 226/230] #222: Added test definition for claims gathering URI --- oxd-server/src/test/resources/testng.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/oxd-server/src/test/resources/testng.xml b/oxd-server/src/test/resources/testng.xml index 961a9ab7a..50a2286aa 100644 --- a/oxd-server/src/test/resources/testng.xml +++ b/oxd-server/src/test/resources/testng.xml @@ -224,6 +224,11 @@ + + + + + From 700ab64c62f1d3740fb4c49eacfb926379635429 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:22:12 +0530 Subject: [PATCH 227/230] #260: Added method definition for get-jwks endpoint --- .../src/main/java/org/xdi/oxd/client/ClientInterface.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index 4d3bf313b..b550a5985 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -137,4 +137,11 @@ public interface ClientInterface { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) GetRpResponse getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); + + @POST + @Path("/get-jwks") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + GetJwksResponse getJwks(@HeaderParam("Authorization") String authorization, GetJwksParams params); + } From 58443df53ed7287cc95f369e5d6ed687a0814f08 Mon Sep 17 00:00:00 2001 From: Shoeb Khan Date: Mon, 12 Nov 2018 21:55:46 +0530 Subject: [PATCH 228/230] Resolved conflicts --- .../src/main/java/org/xdi/oxd/client/ClientInterface.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java index 2c5d1f3af..0c974037d 100644 --- a/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java +++ b/oxd-client/src/main/java/org/xdi/oxd/client/ClientInterface.java @@ -137,4 +137,11 @@ public interface ClientInterface { @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) String getRp(@HeaderParam("Authorization") String authorization, GetRpParams params); + + @POST + @Path("/get-jwks") + @Produces(MediaType.APPLICATION_JSON) + @Consumes(MediaType.APPLICATION_JSON) + GetJwksResponse getJwks(@HeaderParam("Authorization") String authorization, GetJwksParams params); + } From ef7d37b97092b546a3bb20003fea773935fdedfc Mon Sep 17 00:00:00 2001 From: Mustafa Baser Date: Thu, 15 Nov 2018 15:44:56 +0300 Subject: [PATCH 229/230] oxd_upgrade.py: fix typo and make contacts list --- upgrade/oxd_updater.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/upgrade/oxd_updater.py b/upgrade/oxd_updater.py index 31b8c8e94..3e1e99f3d 100755 --- a/upgrade/oxd_updater.py +++ b/upgrade/oxd_updater.py @@ -169,9 +169,10 @@ def _byteify(data, ignore_dicts = False): if update_required: - print "A previous version of oxd-server detected. If you cintinue," - print "previous version will be uninstalled, latest version will be installed," - print "and your config/data will be migrated to latest version" + print """A previous version of oxd-server detected. If you continue, +the current version will be replaced by the latest version available, +and your config/data will be migrated to the new version. +""" ask = "Do you want to migrate data to oxd-server-{0}? [y|N]: ".format(current_version) answer = raw_input(ask) @@ -235,6 +236,13 @@ def _byteify(data, ignore_dicts = False): oxd_default_site_config_json = json_load_byteified(oxd_default_site_config_json_back_fn) + + if not oxd_default_site_config_json['contacts']: + oxd_default_site_config_json['contacts'] = [] + else: + if not type(oxd_default_site_config_json['contacts']) == type([]): + oxd_default_site_config_json['contacts'] = [oxd_default_site_config_json['contacts']] + log4j_xml_tree = tree = ET.parse(log4j_xml_back_fn) log4j_xml_root = log4j_xml_tree.getroot() @@ -297,7 +305,8 @@ def _byteify(data, ignore_dicts = False): if type(True) == type(m): m = str(m).lower() - if not m: + + if (type(m) != type([]) and not m): m="''" k = '{{'+sv+'}}' #print sv, m From 2cdf3cf1e799c18c8273a2b675653973b296ccf4 Mon Sep 17 00:00:00 2001 From: Yuriy Zabrovarnyy Date: Thu, 15 Nov 2018 17:19:01 +0200 Subject: [PATCH 230/230] upgrade httpclient 4.2.3 -> 4.5.3 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2a5a6e693..e85528897 100644 --- a/pom.xml +++ b/pom.xml @@ -310,7 +310,7 @@ org.apache.httpcomponents httpclient - 4.2.3 + 4.5.3 net.nicholaswilliams.java.licensing