WSO2 APIM 3.0 Configuration proxy problem - proxy

I need help for configuration WSO2APIM with proxy for backend.
My configuration In deployment.toml
[transport.passthru_https.sender.parameters]
http.proxyHost = "myadresseproxy"
http.proxyPort = "3128"
non-blocking = "true"
bind-address = ["localhost","myadresse"]
[transport.passthru_http.sender.parameters]
http.proxyHost = "myadresseproxy"
http.proxyPort = "3128"
non-blocking = "true"
bind-address = ["localhost","myadresse"]
This configuration doesn't work :
With API need proxy i have "Error connecting to the back end"
It's ok with API didn't need pass by proxy
with this configuration the file axis2.xml is correct
What can i do ? idea ?
Thank

There seems to be an issue with these configurations and it has fixed in https://github.com/wso2/product-apim/pull/7115/files. You can make these changes in wso2am-3.0.0/repository/resources/conf/default.json and get this done.

Related

Jython script to modify queue connection factories

I have queue manager already configured in Queue connection factories of websphere
currently settings are with out SSl enabled.
I want to enable this two things
Use SSL to secure communication with IBM MQ
specify the SSl to be used
Need your help to edit this things through jython
Use modifyWMQConnectionFactory command for this task.
See below example:
#Set QCF Name
qcfName='MYQCF'
#Set custom SSL config name
sslConfig='CUSTOMSSLSettings'
#Get the list of all QCF's in the environment
qcfList=AdminConfig.list('MQQueueConnectionFactory').splitlines()
#You can futher refine this command and restrict the query to a specific resource scope
#eg: qcfList=AdminConfig.list('MQQueueConnectionFactory', clusterId).splitlines()
#Iterate the list and update the config for MYQCF
for qcf in qcfList:
if qcfName == AdminConfig.showAttribute(qcf, 'name'):
print 'Enable SSL config for QCF: '+qcfName+' and use '+sslConfig+' SSL configuration'
AdminTask.modifyWMQConnectionFactory(qcf, '[-sslType SPECIFIC -sslConfiguration '+sslConfig+']')
else:
print 'Skip SSL config update for QCF: '+AdminConfig.showAttribute(qcf, 'name')
#save the changes
AdminConfig.save()

Fitnesse set proxy for Chrome browser

I need to set proxy for Chrome browser in Fitnesse , so that the browser can open certain websites.
Is it possible to add it while initialising the selenium grid in Fitnesse ?
And also is it possible to add username and password to it ?
Adding Fitnesse code below : I am using a selenium hub
|Import |
|nl.hsac.fitnesse.fixture.slim.web|
!define GRID_HUB {http://remote-selenium.local:4444/wd/hub}
|script |selenium driver setup |
|connect to driver at |${GRID_HUB} |with capabilities|!{browserName:chrome} |
I need to pass the proxy object to this. How can I do that ?
A similar code in Java would be :
String nodeUrl = "http://remote-selenium.local:4444/wd/hub";
Proxy proxy = new Proxy();
proxy.setHttpProxy("proxy:8080");
proxy.setSslProxy("proxy:8080");
ChromeOptions options = new ChromeOptions();
options.setCapability("proxy",proxy);
RemoteWebDriver driver = new RemoteWebDriver(new URL(nodeUrl),options);
How can I achieve this in Fitnesse ?
I have to admit I never had to work with proxies, but some googling suggests that you should also be able to configure the proxy using the generic chrome.switches capability which passes them as command line options. Those options are described at: https://www.chromium.org/developers/design-documents/network-settings
So that would give you something like:
|script |map fixture |
|set value |chrome |for|browserName |
|set value |--proxy-server="http=http://proxy:8080/;https=http://proxy:8080/"|for|chrome.switches[0]|
|$chromeCapabilities=|copy map |
!define GRID_HUB {http://remote-selenium.local:4444/wd/hub}
|script |selenium driver setup |
|connect to driver at|${GRID_HUB}|with capabilities|$chromeCapabilities|
You could add more elements by adding lines setting values for chrome.switches[1], chrome.switches[2], etc.
So for instance:
|set value |--proxy-bypass-list="*.google.com;127.0.0.1:8080"|for|chrome.switches[1]|
To not proxy requests to any google.com subdomain or requests to 127.0.0.1 port 8080.
When not using a remote chrome (e.g. starting chrome using |start driver for|chrome|) you can pass command line arguments as profile. This should also allow for proxy settings. See for instance hsac-fitnesse-fixture's BrowserTest.SuiteSetUp that passes command line options to make Chrome run in headless mode.

Dovecot pigeonhole sieve proxy with ldap

for an upcoming IMAP migration, I need to proxy my users.
I plan to use Nginx for proxying IMAP and POPS traffic and directing them according to a LDAP attribute (mailHost)
But Nginx can't proxy SIEVE.
Dovecot PigeonHole seems to be able to proxy SIEVE protocol.
I try to configure it to avoid LDAP authentication because there's already an authentication on IMAP stores.
That doesn't work for now.
Here's my conf following this doc:
Pasword DB extra fields
Dovecot proxies
/etc/dovecot/dovecot.conf:
protocols sieve
!include conf.d/*.conf
/etc/dovecot/conf.d/90-sieve.conf
plugin {
sieve = file:~/sieve;active=~/.dovecot.sieve
/etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
!include auth-ldap.conf.ext
/etc/dovecot/conf.d/auth-ldap.conf
passdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
/etc/dovecot/dovecot-ldap.conf.ext
hosts = xxx.xxx.xxx.xxx
ldap_version = 3
base = ou=myOU, dc=domain, dc=example
pass_attrs = \
=user=%{ldap:user}, \
=password=, \
=proxy=y, \
=host=%{ldap:mailHost}
And here's the error in the log when I try to modify a sieve script using Horde Webmail:
dovecot: managesieve-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=xxx.xxx.xxx.xxx, lip=xxx.xxx.xxx.xxx, session=
I surely missed a setting somewhere.
For now, I haven't found yet.
Any help will be greatly appreciated
Thanks
OK, I've found the problem
To proxy password to IMAP backends:
/etc/dovecot/dovecot-ldap.conf.ext:
hosts = xxx.xxx.xxx.xxx
ldap_version = 3
base = ou=myOU, dc=domain, dc=example
pass_attrs = \
=user=%{ldap:user}, \
=password=, \
=proxy=y, \
=nopassword=y, \
=host=%{ldap:mailHost}
=port=2000
The doc says:
If you don’t want proxy itself to do authentication, you can configure it to succeed with any given password. You can do this by returning an empty password and nopassword field.
And port 2000 is needed because the IMAP backend still in production is running an old version of timsieved (cyrus sieve implementation)
Then, the backends are waiting for PLAIN authentication.
That's disabled by default in Dovecot, so activate it with:
/etc/dovecot/conf.d/10-auth.conf:
disable_plaintext_auth = no
auth_mechanisms = plain login
!include auth-ldap.conf.ext
This degrades the security, so I will limit access to port 2000 to the dovecot pigeon-hole proxy.

Unable to determine SOCKS version from socks

Using proxy connection (HTTP Proxy : 10.3.100.207, Port 8080).
Using python's request module's get function, getting following error:
"Unable to determine SOCKS version from socks://10.3.100.207:8080/"
Try export all_proxy="socks5://10.3.100.207:8080" if you want to use socks proxy.
Else export all_proxy="" for no proxy.
Hope This works. :D
I resolved this problem by removing "socks:" in_all_proxy.
Try this:
unset all_proxy && unset ALL_PROXY

Jmeter- backend listner influxdb

I am running using jmeter 2.13
created test plan with thread group and backend listner.backend listner jmeter
up docker image for influxdb ( tutum/influxdb). I am able to access influxdb dashboard.
I made changes in /config/config.toml.
added following in config.toml
[[graphite]]
enabled = true
bind-address = ":8086"
protocol = "tcp"
consistency-level = "one"
separator = "."
database = "jmeter"
I am not able to get data within jmeter database in influxdb after I run jmeter test cases.
Jmeter generates report with 200 code.
Please help to resolve this issue.
I used windows solution but I think it Should be similar.
Install InfluxDB with a new conf file. I did a copy of the default and overwrite the below properties algon with [data] path.In my case was as below
[data]
enabled = true
dir = "C:\\software\\influxdb-1.0.2-1\\data"
wal-dir = "C:\\software\\influxdb-1.0.2-1\\data\\wa
And run inflix with this configuration.
$influxd -config <path to file.conf>.
This file has the graphite listener opened and linkened to DB
[[graphite]]
enabled = true
database = "jmeter"
bind-address = ":2003"
#protocol = "tcp"
# consistency-level = "one"
Later activate the security because Grafana needs it. I suposse you want to see graphs.
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true
Run Influx and using the browser add databases jmeter,grafana. Do not forget to add one administrative user. You can use QueryTemplate for these tasks. So 3 steps
create two databases and at least one user with password.
Ensure Jmeter have Assertions to distinguish retult of the test and backednListender
You are able to access the InfluxDB - admin interface. But do you get the list of tables/measurements when you Show Measurements for your DB?
If it shows the measurement, only the data is not shown, there is a chance that Jmeter's machine time is ahead of InfluxDB time.
If it does not show the measurements, How do you run the docker image? Do you expose all the ports?
My config file is as shown below. Update the config and restart InfluxDB and try again.
[[graphite]]
enabled = true
bind-address = ":2003"
database = "jmeter"
#protocol = "tcp"
#consistency-level = "one"
#separator = "."

Resources