Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce proxy support for backend oauth security #2228

Merged
merged 1 commit into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ public void send(MessageContext synCtx) {

} catch (AuthException e) {
handleError(synCtx,
"Could not generate access token for oauth configured http endpoint " + this.getName(), e);
"Could not generate access token for oauth configured http endpoint " + this.getName() + ".", e);
} catch (AxisFault axisFault) {
handleError(synCtx,
"Error cloning the message context for oauth configured http endpoint " + this.getName(),
"Error cloning the message context for oauth configured http endpoint " + this.getName() + ".",
axisFault);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
/*
* Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com/).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.synapse.endpoints;

/**
* This class represents a model for proxy configurations which is used for the OAuth authentication of endpoints
*/
public class ProxyConfigs {
private String proxyHost;
private String proxyPort;
private String proxyUsername;
private String proxyPassword;
private String proxyProtocol;
private boolean proxyEnabled;

public void setProxyEnabled(boolean proxyEnabled) {
this.proxyEnabled = proxyEnabled;
}

public void setProxyHost(String proxyHost) {
this.proxyHost = proxyHost;
}

public void setProxyPort(String proxyPort) {
this.proxyPort = proxyPort;
}

public void setProxyUsername(String proxyUsername) {
this.proxyUsername = proxyUsername;
}

public void setProxyPassword(String proxyPassword) {
this.proxyPassword = proxyPassword;
}

public void setProxyProtocol(String proxyProtocol) {
this.proxyProtocol = proxyProtocol;
}

public boolean isProxyEnabled() {
return proxyEnabled;
}

public String getProxyHost() {
return proxyHost;
}

public String getProxyPort() {
return proxyPort;
}

public String getProxyUsername() {
return proxyUsername;
}

public String getProxyPassword() {
return proxyPassword;
}

public String getProxyProtocol() {
return proxyProtocol;
}
}


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we remove this extra new line?

Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,12 @@ public class AuthConstants {
public static final String BASIC_AUTH_USERNAME = "username";
public static final String BASIC_AUTH_PASSWORD = "password";

public static final String PROXY_CONFIGS = "proxyConfigs";
public static final String PROXY_HOST = "proxyHost";
public static final String PROXY_PORT = "proxyPort";
public static final String PROXY_USERNAME = "proxyUsername";
public static final String PROXY_PASSWORD = "proxyPassword";
public static final String OAUTH_PROXY_PROTOCOL = "proxyProtocol";

public static final String HTTPS_PROTOCOL = "https";
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.endpoints.ProxyConfigs;
import org.apache.synapse.endpoints.auth.AuthConstants;
import org.apache.synapse.endpoints.auth.AuthException;

Expand All @@ -35,13 +36,12 @@ public class AuthorizationCodeHandler extends OAuthHandler {

private final String refreshToken;

public AuthorizationCodeHandler(String tokenApiUrl, String clientId, String clientSecret,
String refreshToken, String authMode, int connectionTimeout,
int connectionRequestTimeout, int socketTimeout,
TokenCacheProvider tokenCacheProvider) {
public AuthorizationCodeHandler(String tokenApiUrl, String clientId, String clientSecret, String refreshToken,
String authMode, int connectionTimeout, int connectionRequestTimeout, int socketTimeout,
TokenCacheProvider tokenCacheProvider, ProxyConfigs proxyConfigs) {

super(tokenApiUrl, clientId, clientSecret, authMode, connectionTimeout, connectionRequestTimeout,
socketTimeout, tokenCacheProvider);
super(tokenApiUrl, clientId, clientSecret, authMode, connectionTimeout, connectionRequestTimeout, socketTimeout,
tokenCacheProvider,proxyConfigs);
this.refreshToken = refreshToken;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.apache.commons.lang.StringUtils;
import org.apache.synapse.MessageContext;
import org.apache.synapse.SynapseConstants;
import org.apache.synapse.endpoints.ProxyConfigs;
import org.apache.synapse.endpoints.auth.AuthConstants;
import org.apache.synapse.endpoints.auth.AuthException;

Expand All @@ -34,11 +35,11 @@
public class ClientCredentialsHandler extends OAuthHandler {

public ClientCredentialsHandler(String tokenApiUrl, String clientId, String clientSecret, String authMode,
int connectionTimeout, int connectionRequestTimeout, int socketTimeout,
TokenCacheProvider tokenCacheProvider) {
int connectionTimeout, int connectionRequestTimeout, int socketTimeout,
TokenCacheProvider tokenCacheProvider, ProxyConfigs proxyConfigs) {

super(tokenApiUrl, clientId, clientSecret, authMode, connectionTimeout, connectionRequestTimeout, socketTimeout,
tokenCacheProvider);
tokenCacheProvider, proxyConfigs);
}

@Override
Expand Down
Loading
Loading