forked from loafle/openapi-generator-original
Merge pull request #826 from xhh/java-auth
[Java] Add authentication support (API key, HTTP basic)
This commit is contained in:
commit
b4f153c202
@ -106,15 +106,18 @@ public class JavaClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
this.setSourceFolder((String)additionalProperties.get("sourceFolder"));
|
this.setSourceFolder((String)additionalProperties.get("sourceFolder"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final String invokerFolder = (sourceFolder + File.separator + invokerPackage).replace(".", File.separator);
|
||||||
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
|
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
|
||||||
supportingFiles.add(new SupportingFile("ApiClient.mustache",
|
supportingFiles.add(new SupportingFile("ApiClient.mustache", invokerFolder, "ApiClient.java"));
|
||||||
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiClient.java"));
|
supportingFiles.add(new SupportingFile("JsonUtil.mustache", invokerFolder, "JsonUtil.java"));
|
||||||
supportingFiles.add(new SupportingFile("Configuration.mustache",
|
supportingFiles.add(new SupportingFile("apiException.mustache", invokerFolder, "ApiException.java"));
|
||||||
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "Configuration.java"));
|
supportingFiles.add(new SupportingFile("Configuration.mustache", invokerFolder, "Configuration.java"));
|
||||||
supportingFiles.add(new SupportingFile("JsonUtil.mustache",
|
|
||||||
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "JsonUtil.java"));
|
final String authFolder = (sourceFolder + File.separator + invokerPackage + ".auth").replace(".", File.separator);
|
||||||
supportingFiles.add(new SupportingFile("apiException.mustache",
|
supportingFiles.add(new SupportingFile("auth/Authentication.mustache", authFolder, "Authentication.java"));
|
||||||
(sourceFolder + File.separator + invokerPackage).replace(".", java.io.File.separator), "ApiException.java"));
|
supportingFiles.add(new SupportingFile("auth/HttpBasicAuth.mustache", authFolder, "HttpBasicAuth.java"));
|
||||||
|
supportingFiles.add(new SupportingFile("auth/ApiKeyAuth.mustache", authFolder, "ApiKeyAuth.java"));
|
||||||
|
supportingFiles.add(new SupportingFile("auth/OAuth.mustache", authFolder, "OAuth.java"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import javax.ws.rs.core.Response.Status.Family;
|
|||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -33,12 +34,19 @@ import java.text.DateFormat;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
import {{invokerPackage}}.auth.Authentication;
|
||||||
|
import {{invokerPackage}}.auth.HttpBasicAuth;
|
||||||
|
import {{invokerPackage}}.auth.ApiKeyAuth;
|
||||||
|
import {{invokerPackage}}.auth.OAuth;
|
||||||
|
|
||||||
public class ApiClient {
|
public class ApiClient {
|
||||||
private Map<String, Client> hostMap = new HashMap<String, Client>();
|
private Map<String, Client> hostMap = new HashMap<String, Client>();
|
||||||
private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
|
private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
|
||||||
private boolean debugging = false;
|
private boolean debugging = false;
|
||||||
private String basePath = "{{basePath}}";
|
private String basePath = "{{basePath}}";
|
||||||
|
|
||||||
|
private Map<String, Authentication> authentications;
|
||||||
|
|
||||||
private DateFormat dateFormat;
|
private DateFormat dateFormat;
|
||||||
|
|
||||||
public ApiClient() {
|
public ApiClient() {
|
||||||
@ -51,6 +59,14 @@ public class ApiClient {
|
|||||||
|
|
||||||
// Set default User-Agent.
|
// Set default User-Agent.
|
||||||
setUserAgent("Java-Swagger");
|
setUserAgent("Java-Swagger");
|
||||||
|
|
||||||
|
// Setup authentications (key: authentication name, value: authentication).
|
||||||
|
authentications = new HashMap<String, Authentication>();{{#authMethods}}{{#isBasic}}
|
||||||
|
authentications.put("{{name}}", new HttpBasicAuth());{{/isBasic}}{{#isApiKey}}
|
||||||
|
authentications.put("{{name}}", new ApiKeyAuth({{#isKeyInHeader}}"header"{{/isKeyInHeader}}{{^isKeyInHeader}}"query"{{/isKeyInHeader}}, "{{keyParamName}}"));{{/isApiKey}}{{#isOAuth}}
|
||||||
|
authentications.put("{{name}}", new OAuth());{{/isOAuth}}{{/authMethods}}
|
||||||
|
// Prevent the authentications from being modified.
|
||||||
|
authentications = Collections.unmodifiableMap(authentications);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBasePath() {
|
public String getBasePath() {
|
||||||
@ -62,6 +78,75 @@ public class ApiClient {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
|
*/
|
||||||
|
public Map<String, Authentication> getAuthentications() {
|
||||||
|
return authentications;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication for the given name.
|
||||||
|
*
|
||||||
|
* @param authName The authentication name
|
||||||
|
* @return The authentication, null if not found
|
||||||
|
*/
|
||||||
|
public Authentication getAuthentication(String authName) {
|
||||||
|
return authentications.get(authName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set username for the first HTTP basic authentication.
|
||||||
|
*/
|
||||||
|
public void setUsername(String username) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof HttpBasicAuth) {
|
||||||
|
((HttpBasicAuth) auth).setUsername(username);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No HTTP basic authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set password for the first HTTP basic authentication.
|
||||||
|
*/
|
||||||
|
public void setPassword(String password) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof HttpBasicAuth) {
|
||||||
|
((HttpBasicAuth) auth).setPassword(password);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No HTTP basic authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set API key value for the first API key authentication.
|
||||||
|
*/
|
||||||
|
public void setApiKey(String apiKey) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof ApiKeyAuth) {
|
||||||
|
((ApiKeyAuth) auth).setApiKey(apiKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No API key authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set API key prefix for the first API key authentication.
|
||||||
|
*/
|
||||||
|
public void setApiKeyPrefix(String apiKeyPrefix) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof ApiKeyAuth) {
|
||||||
|
((ApiKeyAuth) auth).setApiKeyPrefix(apiKeyPrefix);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No API key authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the User-Agent header's value (by adding to the default header map).
|
* Set the User-Agent header's value (by adding to the default header map).
|
||||||
*/
|
*/
|
||||||
@ -222,13 +307,15 @@ public class ApiClient {
|
|||||||
* @param headerParams The header parameters
|
* @param headerParams The header parameters
|
||||||
* @param formParams The form parameters
|
* @param formParams The form parameters
|
||||||
* @param contentType The request Content-Type
|
* @param contentType The request Content-Type
|
||||||
|
* @param authNames The authentications to apply
|
||||||
* @return The response body in type of string
|
* @return The response body in type of string
|
||||||
*/
|
*/
|
||||||
public String invokeAPI(String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType) throws ApiException {
|
public String invokeAPI(String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType, String[] authNames) throws ApiException {
|
||||||
|
updateParamsForAuth(authNames, queryParams, headerParams);
|
||||||
|
|
||||||
Client client = getClient();
|
Client client = getClient();
|
||||||
|
|
||||||
StringBuilder b = new StringBuilder();
|
StringBuilder b = new StringBuilder();
|
||||||
|
|
||||||
for(String key : queryParams.keySet()) {
|
for(String key : queryParams.keySet()) {
|
||||||
String value = queryParams.get(key);
|
String value = queryParams.get(key);
|
||||||
if (value != null){
|
if (value != null){
|
||||||
@ -329,6 +416,19 @@ public class ApiClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update query and header parameters based on authentication settings.
|
||||||
|
*
|
||||||
|
* @param authNames The authentications to apply
|
||||||
|
*/
|
||||||
|
private void updateParamsForAuth(String[] authNames, Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
for (String authName : authNames) {
|
||||||
|
Authentication auth = authentications.get(authName);
|
||||||
|
if (auth == null) throw new RuntimeException("Authentication undefined: " + authName);
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encode the given form parameters as request body.
|
* Encode the given form parameters as request body.
|
||||||
*/
|
*/
|
||||||
|
@ -9,7 +9,7 @@ public class Configuration {
|
|||||||
*/
|
*/
|
||||||
public static ApiClient getDefaultApiClient() {
|
public static ApiClient getDefaultApiClient() {
|
||||||
return defaultApiClient;
|
return defaultApiClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the default API client, which would be used when creating API
|
* Set the default API client, which would be used when creating API
|
||||||
|
@ -102,7 +102,8 @@ public class {{classname}} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "{{httpMethod}}", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { {{#authMethods}}"{{name}}"{{#hasMore}}, {{/hasMore}}{{/authMethods}} };
|
||||||
|
String response = apiClient.invokeAPI(path, "{{httpMethod}}", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return {{#returnType}}({{{returnType}}}) apiClient.deserialize(response, "{{returnContainer}}", {{returnBaseType}}.class){{/returnType}};
|
return {{#returnType}}({{{returnType}}}) apiClient.deserialize(response, "{{returnContainer}}", {{returnBaseType}}.class){{/returnType}};
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package {{invokerPackage}}.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ApiKeyAuth implements Authentication {
|
||||||
|
private final String location;
|
||||||
|
private final String paramName;
|
||||||
|
|
||||||
|
private String apiKey;
|
||||||
|
private String apiKeyPrefix;
|
||||||
|
|
||||||
|
public ApiKeyAuth(String location, String paramName) {
|
||||||
|
this.location = location;
|
||||||
|
this.paramName = paramName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocation() {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getParamName() {
|
||||||
|
return paramName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiKey() {
|
||||||
|
return apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiKey(String apiKey) {
|
||||||
|
this.apiKey = apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiKeyPrefix() {
|
||||||
|
return apiKeyPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiKeyPrefix(String apiKeyPrefix) {
|
||||||
|
this.apiKeyPrefix = apiKeyPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
String value;
|
||||||
|
if (apiKeyPrefix != null) {
|
||||||
|
value = apiKeyPrefix + " " + apiKey;
|
||||||
|
} else {
|
||||||
|
value = apiKey;
|
||||||
|
}
|
||||||
|
if (location == "query") {
|
||||||
|
queryParams.put(paramName, value);
|
||||||
|
} else if (location == "header") {
|
||||||
|
headerParams.put(paramName, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package {{invokerPackage}}.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface Authentication {
|
||||||
|
/** Apply authentication settings to header and query params. */
|
||||||
|
void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams);
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package {{invokerPackage}}.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import javax.xml.bind.DatatypeConverter;
|
||||||
|
|
||||||
|
public class HttpBasicAuth implements Authentication {
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
String str = (username == null ? "" : username) + ":" + (password == null ? "" : password);
|
||||||
|
try {
|
||||||
|
headerParams.put("Authorization", "Basic " + DatatypeConverter.printBase64Binary(str.getBytes("UTF-8")));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package {{invokerPackage}}.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OAuth implements Authentication {
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
// TODO: support oauth
|
||||||
|
}
|
||||||
|
}
|
@ -17,6 +17,7 @@ import javax.ws.rs.core.Response.Status.Family;
|
|||||||
import javax.ws.rs.core.MediaType;
|
import javax.ws.rs.core.MediaType;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -33,12 +34,19 @@ import java.text.DateFormat;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
|
|
||||||
|
import io.swagger.client.auth.Authentication;
|
||||||
|
import io.swagger.client.auth.HttpBasicAuth;
|
||||||
|
import io.swagger.client.auth.ApiKeyAuth;
|
||||||
|
import io.swagger.client.auth.OAuth;
|
||||||
|
|
||||||
public class ApiClient {
|
public class ApiClient {
|
||||||
private Map<String, Client> hostMap = new HashMap<String, Client>();
|
private Map<String, Client> hostMap = new HashMap<String, Client>();
|
||||||
private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
|
private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
|
||||||
private boolean debugging = false;
|
private boolean debugging = false;
|
||||||
private String basePath = "http://petstore.swagger.io/v2";
|
private String basePath = "http://petstore.swagger.io/v2";
|
||||||
|
|
||||||
|
private Map<String, Authentication> authentications;
|
||||||
|
|
||||||
private DateFormat dateFormat;
|
private DateFormat dateFormat;
|
||||||
|
|
||||||
public ApiClient() {
|
public ApiClient() {
|
||||||
@ -51,6 +59,13 @@ public class ApiClient {
|
|||||||
|
|
||||||
// Set default User-Agent.
|
// Set default User-Agent.
|
||||||
setUserAgent("Java-Swagger");
|
setUserAgent("Java-Swagger");
|
||||||
|
|
||||||
|
// Setup authentications (key: authentication name, value: authentication).
|
||||||
|
authentications = new HashMap<String, Authentication>();
|
||||||
|
authentications.put("api_key", new ApiKeyAuth("header", "api_key"));
|
||||||
|
authentications.put("petstore_auth", new OAuth());
|
||||||
|
// Prevent the authentications from being modified.
|
||||||
|
authentications = Collections.unmodifiableMap(authentications);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBasePath() {
|
public String getBasePath() {
|
||||||
@ -62,6 +77,75 @@ public class ApiClient {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentications (key: authentication name, value: authentication).
|
||||||
|
*/
|
||||||
|
public Map<String, Authentication> getAuthentications() {
|
||||||
|
return authentications;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get authentication for the given name.
|
||||||
|
*
|
||||||
|
* @param authName The authentication name
|
||||||
|
* @return The authentication, null if not found
|
||||||
|
*/
|
||||||
|
public Authentication getAuthentication(String authName) {
|
||||||
|
return authentications.get(authName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set username for the first HTTP basic authentication.
|
||||||
|
*/
|
||||||
|
public void setUsername(String username) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof HttpBasicAuth) {
|
||||||
|
((HttpBasicAuth) auth).setUsername(username);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No HTTP basic authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set password for the first HTTP basic authentication.
|
||||||
|
*/
|
||||||
|
public void setPassword(String password) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof HttpBasicAuth) {
|
||||||
|
((HttpBasicAuth) auth).setPassword(password);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No HTTP basic authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set API key value for the first API key authentication.
|
||||||
|
*/
|
||||||
|
public void setApiKey(String apiKey) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof ApiKeyAuth) {
|
||||||
|
((ApiKeyAuth) auth).setApiKey(apiKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No API key authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper method to set API key prefix for the first API key authentication.
|
||||||
|
*/
|
||||||
|
public void setApiKeyPrefix(String apiKeyPrefix) {
|
||||||
|
for (Authentication auth : authentications.values()) {
|
||||||
|
if (auth instanceof ApiKeyAuth) {
|
||||||
|
((ApiKeyAuth) auth).setApiKeyPrefix(apiKeyPrefix);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("No API key authentication configured!");
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the User-Agent header's value (by adding to the default header map).
|
* Set the User-Agent header's value (by adding to the default header map).
|
||||||
*/
|
*/
|
||||||
@ -222,13 +306,15 @@ public class ApiClient {
|
|||||||
* @param headerParams The header parameters
|
* @param headerParams The header parameters
|
||||||
* @param formParams The form parameters
|
* @param formParams The form parameters
|
||||||
* @param contentType The request Content-Type
|
* @param contentType The request Content-Type
|
||||||
|
* @param authNames The authentications to apply
|
||||||
* @return The response body in type of string
|
* @return The response body in type of string
|
||||||
*/
|
*/
|
||||||
public String invokeAPI(String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType) throws ApiException {
|
public String invokeAPI(String path, String method, Map<String, String> queryParams, Object body, Map<String, String> headerParams, Map<String, String> formParams, String contentType, String[] authNames) throws ApiException {
|
||||||
|
updateParamsForAuth(authNames, queryParams, headerParams);
|
||||||
|
|
||||||
Client client = getClient();
|
Client client = getClient();
|
||||||
|
|
||||||
StringBuilder b = new StringBuilder();
|
StringBuilder b = new StringBuilder();
|
||||||
|
|
||||||
for(String key : queryParams.keySet()) {
|
for(String key : queryParams.keySet()) {
|
||||||
String value = queryParams.get(key);
|
String value = queryParams.get(key);
|
||||||
if (value != null){
|
if (value != null){
|
||||||
@ -329,6 +415,19 @@ public class ApiClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update query and header parameters based on authentication settings.
|
||||||
|
*
|
||||||
|
* @param authNames The authentications to apply
|
||||||
|
*/
|
||||||
|
private void updateParamsForAuth(String[] authNames, Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
for (String authName : authNames) {
|
||||||
|
Authentication auth = authentications.get(authName);
|
||||||
|
if (auth == null) throw new RuntimeException("Authentication undefined: " + authName);
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Encode the given form parameters as request body.
|
* Encode the given form parameters as request body.
|
||||||
*/
|
*/
|
||||||
|
@ -9,7 +9,7 @@ public class Configuration {
|
|||||||
*/
|
*/
|
||||||
public static ApiClient getDefaultApiClient() {
|
public static ApiClient getDefaultApiClient() {
|
||||||
return defaultApiClient;
|
return defaultApiClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the default API client, which would be used when creating API
|
* Set the default API client, which would be used when creating API
|
||||||
|
@ -78,7 +78,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "PUT", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "PUT", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -128,7 +129,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -180,7 +182,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (List<Pet>) apiClient.deserialize(response, "array", Pet.class);
|
return (List<Pet>) apiClient.deserialize(response, "array", Pet.class);
|
||||||
}
|
}
|
||||||
@ -232,7 +235,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (List<Pet>) apiClient.deserialize(response, "array", Pet.class);
|
return (List<Pet>) apiClient.deserialize(response, "array", Pet.class);
|
||||||
}
|
}
|
||||||
@ -288,7 +292,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "api_key", "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (Pet) apiClient.deserialize(response, "", Pet.class);
|
return (Pet) apiClient.deserialize(response, "", Pet.class);
|
||||||
}
|
}
|
||||||
@ -360,7 +365,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -419,7 +425,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -491,7 +498,8 @@ public class PetApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "petstore_auth" };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,8 @@ public class StoreApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { "api_key" };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (Map<String, Integer>) apiClient.deserialize(response, "map", Map.class);
|
return (Map<String, Integer>) apiClient.deserialize(response, "map", Map.class);
|
||||||
}
|
}
|
||||||
@ -127,7 +128,8 @@ public class StoreApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (Order) apiClient.deserialize(response, "", Order.class);
|
return (Order) apiClient.deserialize(response, "", Order.class);
|
||||||
}
|
}
|
||||||
@ -183,7 +185,8 @@ public class StoreApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (Order) apiClient.deserialize(response, "", Order.class);
|
return (Order) apiClient.deserialize(response, "", Order.class);
|
||||||
}
|
}
|
||||||
@ -239,7 +242,8 @@ public class StoreApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -128,7 +129,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -178,7 +180,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "POST", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -233,7 +236,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (String) apiClient.deserialize(response, "", String.class);
|
return (String) apiClient.deserialize(response, "", String.class);
|
||||||
}
|
}
|
||||||
@ -282,7 +286,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -338,7 +343,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "GET", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return (User) apiClient.deserialize(response, "", User.class);
|
return (User) apiClient.deserialize(response, "", User.class);
|
||||||
}
|
}
|
||||||
@ -395,7 +401,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "PUT", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "PUT", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
@ -451,7 +458,8 @@ public class UserApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType);
|
String[] authNames = new String[] { };
|
||||||
|
String response = apiClient.invokeAPI(path, "DELETE", queryParams, postBody, headerParams, formParams, contentType, authNames);
|
||||||
if(response != null){
|
if(response != null){
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ApiKeyAuth implements Authentication {
|
||||||
|
private final String location;
|
||||||
|
private final String paramName;
|
||||||
|
|
||||||
|
private String apiKey;
|
||||||
|
private String apiKeyPrefix;
|
||||||
|
|
||||||
|
public ApiKeyAuth(String location, String paramName) {
|
||||||
|
this.location = location;
|
||||||
|
this.paramName = paramName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocation() {
|
||||||
|
return location;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getParamName() {
|
||||||
|
return paramName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiKey() {
|
||||||
|
return apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiKey(String apiKey) {
|
||||||
|
this.apiKey = apiKey;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiKeyPrefix() {
|
||||||
|
return apiKeyPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiKeyPrefix(String apiKeyPrefix) {
|
||||||
|
this.apiKeyPrefix = apiKeyPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
String value;
|
||||||
|
if (apiKeyPrefix != null) {
|
||||||
|
value = apiKeyPrefix + " " + apiKey;
|
||||||
|
} else {
|
||||||
|
value = apiKey;
|
||||||
|
}
|
||||||
|
if (location == "query") {
|
||||||
|
queryParams.put(paramName, value);
|
||||||
|
} else if (location == "header") {
|
||||||
|
headerParams.put(paramName, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public interface Authentication {
|
||||||
|
/** Apply authentication settings to header and query params. */
|
||||||
|
void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams);
|
||||||
|
}
|
@ -0,0 +1,37 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import javax.xml.bind.DatatypeConverter;
|
||||||
|
|
||||||
|
public class HttpBasicAuth implements Authentication {
|
||||||
|
private String username;
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
String str = (username == null ? "" : username) + ":" + (password == null ? "" : password);
|
||||||
|
try {
|
||||||
|
headerParams.put("Authorization", "Basic " + DatatypeConverter.printBase64Binary(str.getBytes("UTF-8")));
|
||||||
|
} catch (UnsupportedEncodingException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class OAuth implements Authentication {
|
||||||
|
@Override
|
||||||
|
public void applyToParams(Map<String, String> queryParams, Map<String, String> headerParams) {
|
||||||
|
// TODO: support oauth
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,75 @@
|
|||||||
|
package io.swagger.client;
|
||||||
|
|
||||||
|
import io.swagger.client.auth.*;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
import org.junit.*;
|
||||||
|
|
||||||
|
public class ApiClientTest {
|
||||||
|
ApiClient apiClient = null;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
apiClient = new ApiClient();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetAuthentications() {
|
||||||
|
Map<String, Authentication> auths = apiClient.getAuthentications();
|
||||||
|
|
||||||
|
Authentication auth = auths.get("api_key");
|
||||||
|
assertNotNull(auth);
|
||||||
|
assertTrue(auth instanceof ApiKeyAuth);
|
||||||
|
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) auth;
|
||||||
|
assertEquals("header", apiKeyAuth.getLocation());
|
||||||
|
assertEquals("api_key", apiKeyAuth.getParamName());
|
||||||
|
|
||||||
|
auth = auths.get("petstore_auth");
|
||||||
|
assertTrue(auth instanceof OAuth);
|
||||||
|
assertSame(auth, apiClient.getAuthentication("petstore_auth"));
|
||||||
|
|
||||||
|
assertNull(auths.get("unknown"));
|
||||||
|
|
||||||
|
try {
|
||||||
|
auths.put("my_auth", new HttpBasicAuth());
|
||||||
|
fail("the authentications returned should not be modifiable");
|
||||||
|
} catch (UnsupportedOperationException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetUsername() {
|
||||||
|
try {
|
||||||
|
apiClient.setUsername("my-username");
|
||||||
|
fail("there should be no HTTP basic authentications");
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetPassword() {
|
||||||
|
try {
|
||||||
|
apiClient.setPassword("my-password");
|
||||||
|
fail("there should be no HTTP basic authentications");
|
||||||
|
} catch (RuntimeException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSetApiKeyAndPrefix() {
|
||||||
|
ApiKeyAuth auth = (ApiKeyAuth) apiClient.getAuthentications().get("api_key");
|
||||||
|
auth.setApiKey(null);
|
||||||
|
auth.setApiKeyPrefix(null);
|
||||||
|
|
||||||
|
apiClient.setApiKey("my-api-key");
|
||||||
|
apiClient.setApiKeyPrefix("Token");
|
||||||
|
assertEquals("my-api-key", auth.getApiKey());
|
||||||
|
assertEquals("Token", auth.getApiKeyPrefix());
|
||||||
|
|
||||||
|
// reset values
|
||||||
|
auth.setApiKey(null);
|
||||||
|
auth.setApiKeyPrefix(null);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
import org.junit.*;
|
||||||
|
|
||||||
|
public class ApiKeyAuthTest {
|
||||||
|
@Test
|
||||||
|
public void testApplyToParamsInQuery() {
|
||||||
|
Map<String, String> queryParams = new HashMap<String, String>();
|
||||||
|
Map<String, String> headerParams = new HashMap<String, String>();
|
||||||
|
|
||||||
|
ApiKeyAuth auth = new ApiKeyAuth("query", "api_key");
|
||||||
|
auth.setApiKey("my-api-key");
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
|
||||||
|
assertEquals(1, queryParams.size());
|
||||||
|
assertEquals("my-api-key", queryParams.get("api_key"));
|
||||||
|
// no changes to header parameters
|
||||||
|
assertEquals(0, headerParams.size());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testApplyToParamsInHeaderWithPrefix() {
|
||||||
|
Map<String, String> queryParams = new HashMap<String, String>();
|
||||||
|
Map<String, String> headerParams = new HashMap<String, String>();
|
||||||
|
|
||||||
|
ApiKeyAuth auth = new ApiKeyAuth("header", "X-API-TOKEN");
|
||||||
|
auth.setApiKey("my-api-token");
|
||||||
|
auth.setApiKeyPrefix("Token");
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
|
||||||
|
// no changes to query parameters
|
||||||
|
assertEquals(0, queryParams.size());
|
||||||
|
assertEquals(1, headerParams.size());
|
||||||
|
assertEquals("Token my-api-token", headerParams.get("X-API-TOKEN"));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package io.swagger.client.auth;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
import org.junit.*;
|
||||||
|
|
||||||
|
public class HttpBasicAuthTest {
|
||||||
|
HttpBasicAuth auth = null;
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
auth = new HttpBasicAuth();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testApplyToParams() {
|
||||||
|
Map<String, String> queryParams = new HashMap<String, String>();
|
||||||
|
Map<String, String> headerParams = new HashMap<String, String>();
|
||||||
|
|
||||||
|
auth.setUsername("my-username");
|
||||||
|
auth.setPassword("my-password");
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
|
||||||
|
// no changes to query parameters
|
||||||
|
assertEquals(0, queryParams.size());
|
||||||
|
assertEquals(1, headerParams.size());
|
||||||
|
// the string below is base64-encoded result of "my-username:my-password" with the "Basic " prefix
|
||||||
|
String expected = "Basic bXktdXNlcm5hbWU6bXktcGFzc3dvcmQ=";
|
||||||
|
assertEquals(expected, headerParams.get("Authorization"));
|
||||||
|
|
||||||
|
// null username should be treated as empty string
|
||||||
|
auth.setUsername(null);
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
// the string below is base64-encoded result of ":my-password" with the "Basic " prefix
|
||||||
|
expected = "Basic Om15LXBhc3N3b3Jk";
|
||||||
|
assertEquals(expected, headerParams.get("Authorization"));
|
||||||
|
|
||||||
|
// null password should be treated as empty string
|
||||||
|
auth.setUsername("my-username");
|
||||||
|
auth.setPassword(null);
|
||||||
|
auth.applyToParams(queryParams, headerParams);
|
||||||
|
// the string below is base64-encoded result of "my-username:" with the "Basic " prefix
|
||||||
|
expected = "Basic bXktdXNlcm5hbWU6";
|
||||||
|
assertEquals(expected, headerParams.get("Authorization"));
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@ import io.swagger.client.ApiClient;
|
|||||||
import io.swagger.client.Configuration;
|
import io.swagger.client.Configuration;
|
||||||
import io.swagger.client.api.*;
|
import io.swagger.client.api.*;
|
||||||
import io.swagger.client.model.*;
|
import io.swagger.client.model.*;
|
||||||
|
import io.swagger.client.auth.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -18,6 +19,9 @@ public class PetApiTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
api = new PetApi();
|
api = new PetApi();
|
||||||
|
// setup authentication
|
||||||
|
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) api.getApiClient().getAuthentication("api_key");
|
||||||
|
apiKeyAuth.setApiKey("special-key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package io.swagger.petstore.test;
|
package io.swagger.petstore.test;
|
||||||
|
|
||||||
import io.swagger.client.ApiException;
|
import io.swagger.client.ApiException;
|
||||||
|
import io.swagger.client.Configuration;
|
||||||
import io.swagger.client.api.*;
|
import io.swagger.client.api.*;
|
||||||
import io.swagger.client.model.*;
|
import io.swagger.client.model.*;
|
||||||
|
import io.swagger.client.auth.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -16,6 +18,9 @@ public class StoreApiTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
api = new StoreApi();
|
api = new StoreApi();
|
||||||
|
// setup authentication
|
||||||
|
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) api.getApiClient().getAuthentication("api_key");
|
||||||
|
apiKeyAuth.setApiKey("special-key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -65,4 +70,4 @@ public class StoreApiTest {
|
|||||||
|
|
||||||
return order;
|
return order;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package io.swagger.petstore.test;
|
package io.swagger.petstore.test;
|
||||||
|
|
||||||
import io.swagger.client.ApiException;
|
import io.swagger.client.ApiException;
|
||||||
|
import io.swagger.client.Configuration;
|
||||||
import io.swagger.client.api.*;
|
import io.swagger.client.api.*;
|
||||||
import io.swagger.client.model.*;
|
import io.swagger.client.model.*;
|
||||||
|
import io.swagger.client.auth.*;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
@ -16,6 +18,9 @@ public class UserApiTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setup() {
|
public void setup() {
|
||||||
api = new UserApi();
|
api = new UserApi();
|
||||||
|
// setup authentication
|
||||||
|
ApiKeyAuth apiKeyAuth = (ApiKeyAuth) api.getApiClient().getAuthentication("api_key");
|
||||||
|
apiKeyAuth.setApiKey("special-key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -81,4 +86,4 @@ public class UserApiTest {
|
|||||||
|
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user