migrating wso2 Identity Server to 5.11.0 from 5.7.0 - wso2

I have a few questions regarding the upgrade of wso2 IS-
can we directly upgrade wso2 IS 5.7.0 to 5.11.0?
I'm using Postgres for wso2 IS 5.7.0, can I get some reference to changes I need to do in the wso2 configuration while preparing for migration?
Do I need to create another database in Postgres for 5.11.0 and then configure it as a datasource in IS?
update:
Im getting following error while performing upgrade-
erver/
[2021-09-20 12:49:26,279] [] INFO {org.wso2.carbon.core.multitenancy.eager.TenantLoadingConfig} - Using tenant lazy loading policy...
[2021-09-20 12:49:26,315] [] ERROR {org.wso2.carbon.core.internal.permission.update.PermissionUpdater} - Error when updating the permission cache for tenant : -1234 java.lang.NullPointerException
at org.wso2.carbon.core.internal.permission.update.PermissionUpdater.update(PermissionUpdater.java:72)
at org.wso2.carbon.core.internal.permission.update.PermissionUpdateServiceComponent.activate(PermissionUpdateServiceComponent.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:113)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:985)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:866)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:804)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:228)
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:525)
at org.eclipse.osgi.internal.framework.BundleContextImpl.registerService(BundleContextImpl.java:544)
at org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:529)
at org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:305)
at org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:973)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345)
[2021-09-20 12:49:29,790] [] INFO {org.wso2.carbon.identity.core.internal.IdentityCoreServiceComponent} - Executing Migration client : org.wso2.carbon.is.migration.MigrationClientImpl
[2021-09-20 12:49:29,853] [] INFO {org.wso2.carbon.is.migration.config.Config} - WSO2 Product Migration Service Task : Loading Migration Configs, PATH:C:\Users\msingh11\DOWNLO~1\WSO2IS~1.0\bin..\migration-resources\migration-config.yaml
[2021-09-20 12:49:29,951] [] INFO {org.wso2.carbon.is.migration.config.Config} - WSO2 Product Migration Service Task : Successfully loaded the config file.
[2021-09-20 12:49:29,952] [] INFO {org.wso2.carbon.is.migration.Mi}
The deployemnt.toml file is-
[server]
hostname = "localhost"
node_ip = "127.0.0.1"
base_path = "https://$ref{server.hostname}:${carbon.management.port}"
[super_admin]
username = "wso2admin"
password = "admin"
create_admin_account = false
[user_store]
class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"
connection_url = "ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}"
connection_name = "uid=admin,ou=system"
connection_password = "admin"
user_search_base="ou=Users,dc=wso2,dc=org"
user_name_list_filter="(objectClass\u003dperson)"
user_name_search_filter="(\u0026amp;(objectClass\u003dperson)(uid\u003d?)"
user_name_attribute= "uid"
user_entry_object_class= "identityPerson"
group_entry_object_class= "groupOfNames"
group_name_attribute= "cn"
group_name_search_filter= "(\u0026amp;(objectClass\u003dgroupOfNames)(cn\u003d?))"
group_name_list_filter= "(objectClass\u003dgroupOfNames)"
group_search_base="ou=Groups,dc=wso2,dc=org"
membership_attribute= "member"
anonymous_bind= "false"
display_name_attribute= ""
back_links_enabled= "false"
is_bulk_import_supported= "false"
empty_roles_allowed= "true"
password_hash_method= "PLAIN_TEXT"
kdc_enabled= "false"
default_realm_name= "WSO2.ORG"
connection_pooling_enabled= "true"
lDAP_connection_timeout= "5000"
base_dn = "dc=wso2,dc=org" #refers the base dn on which the user and group search bases will be generated
[user_store.properties]
TenantManager="org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager"
[database.carbon_db]
type = "RDBMS"
url = "jdbc:postgresql://localhost:5432/wso2"
username = "wso2admin"
password = "admin"
driver="org.postgresql.Driver"
[database.identity_db]
type = "RDBMS"
url = "jdbc:postgresql://localhost:5432/wso2"
username = "wso2admin"
password = "admin"
driver="org.postgresql.Driver"
[database.shared_db]
type = "RDBMS"
url = "jdbc:postgresql://localhost:5432/wso2"
username = "wso2admin"
password = "admin"
driver="org.postgresql.Driver"
[keystore.primary]
file_name = "wso2carbon.jks"
password = "wso2carbon"
[truststore]
file_name="client-truststore.jks"
password="wso2carbon"
type="JKS"
[account_recovery.endpoint.auth]
hash= "66cd9688a2ae068244ea01e70f0e230f5623b7fa4cdecb65070a09ec06452262"
[identity.auth_framework.endpoint]
app_password= "dashboard"
[[datasource]]
id="source"
url="jdbc:postgresql://localhost:5432/wso2"
username="wso2admin"
password="admin"
driver="org.postgresql.Driver"
[datasource.pool_options]
maxActive="80"
maxWait="60000"
minIdle="5"
testOnBorrow="true"
validationQuery="SELECT 1"
validationInterval="30000"
defaultAutoCommit="false"
[[datasource]]
id="target"
url="jdbc:postgresql://localhost:5432/wso2_new"
username="wso2admin"
password="admin"
driver="org.postgresql.Driver"
[datasource.pool_options]
maxActive="80"
maxWait="60000"
minIdle="5"
testOnBorrow="true"
validationQuery="SELECT 1"
validationInterval="30000"
defaultAutoCommit="false"
# The KeyStore which is used for encrypting/decrypting internal data. By default the primary keystore is used as the internal keystore.
#[keystore.internal]
#file_name = "$ref{keystore.primary.file_name}"
#type = "$ref{keystore.primary.type}"
#password = "$ref{keystore.primary.password}"
#alias = "$ref{keystore.primary.alias}"
#key_password = "$ref{keystore.primary.key_password}"
# The KeyStore which is used for tls communication. By default the primary keystore is used as the tls keystore.
#[keystore.tls]
#file_name = "$ref{keystore.primary.file_name}"
#type = "$ref{keystore.primary.type}"
#password = "$ref{keystore.primary.password}"
#alias = "$ref{keystore.primary.alias}"
#key_password = "$ref{keystore.primary.key_password}"
#Google reCAPTCHA settings.
#[recaptcha]
#enabled = "true"
#api_url = "https://www.google.com/recaptcha/api.js"
#verify_url = "https://www.google.com/recaptcha/api/siteverify"
#site_key = ""
#secret_key = ""
# SMTP email sender settings.
#[output_adapter.email]
#from_address= "abcd#gmail.com"
#username= "abcd"
#password= "xxxx"
#hostname= "smtp.gmail.com"
#port= 587
what I'm missing in the config?

Can we directly upgrade wso2is-5.7.0 to wso2is-5.11.0?
Yes, but you need to do few steps to configure the migration from wso2is-5.7.0 to wso2is-5.11.0
Make sure that all the prerequisites are met, you can see the prerequisites from here
Next do the pre-steps for the migration by following the details in here
For the resources like the custom components, custom libraries, Keystore managers, tenants, etc. follow the link in here
I'm using Postgres for wso2is-5.7.0, can I get some reference >to changes I need to do in the wso2 configuration while preparing >for migration?
If you are using the Postgres, during the migration, uuid-ossp extension is created in the database. In order to create this extension, the database user should have the superuser permission. If the user is not already a superuser, assign the permission before starting the migration.
ALTER USER <user> WITH SUPERUSER;
Do I need to create another database in Postgres for wso2is-5.11.0 and then
configure it as a data source in IS?
No, you don't want to create another database in Postgres for 5.11.0 and configure it, but for the safety measures, you can have a snapshot of your 5.7.0 database and plug it in the 5.11.0

Related

How can I set [output_adapter.email] with Aruba address in wso2 Identity Server v. 5.11.0?

I'm trying to set an email sender (for example recovery password). I already set with a Gmail and Outlook address mail and it's work!
Now i nedd to configure an Aruba hostmail.
this is my deployment.toml configuration module
[output_adapter.email]
from_address= "****#aruba.it"
username= "*****#****.it"
password= "******"
hostname= "smtps.aruba.it"
port= 465
enable_start_tls= true
enable_authentication= true
signature = "****"
[output_adapter.email.custom_properties]
"mail.smtp.ssl.protocols"="TLSv1.2"
"mail.transport.protocol"="smtps"
Logs return
ERROR {org.wso2.carbon.event.output.adapter.email.EmailEventAdapter} - Event dropped at Output Adapter 'EmailPublisher' for tenant id '-1234', Error in message format, Could not connect to SMTP host: smtps.aruba.it, port: 465, response: -1 javax.mail.MessagingException: Could not connect to SMTP host: smtps.aruba.it, port: 465, response: -1
I tried with smpts and smpt (it should be the same port 465).
Can you tell me if it's not supported or something?
THanks, i really need help :(
I fixed it by adding these properties in deployment.toml file below this modules:
[output_adapter.email]
from_address= "***#aruba.it"
username= "****"
password= "****!"
hostname= "smtps.aruba.it"
port= 465
enable_start_tls= true
enable_authentication= true
signature = "WSO2"
[output_adapter.email.custom_properties]
"mail.smtp.ssl.protocols"="TLSv1.2"
"mail.smtp.debug"="true"
"mail.smtp.socketFactory.port"="465"
"mail.smtp.socketFactory.class"="javax.net.ssl.SSLSocketFactory"
"mail.smtp.socketFactory.fallback"="false"

WSO2 Streaming Integrator Tooling(connect to MQTT broker) - "no NetworkModule installed for scheme "tcp""

I am trying to run Siddhi application in Streaming Integrator Tooling.
Here's my app:
#App:name('1')
#App:description('Description of the plan')
#source(type = 'mqtt', url = "tcp://192.168.100.82:1883", client.id = "1", topic = "mqtt_topic_input",
#map(type = 'xml'))
define stream SweetProductionStream (name string, amount double);
#sink(type = 'log')
define stream LowProductionAlertStream (name string, amount double);
-- passthrough data in the SweetProductionStream into LowProducitonAlertStream
#info(name = 'query1')
from SweetProductionStream
select *
insert into LowProductionAlertStream;
I also put the following files in the < SI_TOOLING_HOME>/lib directory:
org.eclipse.paho.client.mqttv3-1.1.1.jar and siddhi-io-mqtt-3.0.2.jar
I also have a working mosquitto-broker at 192.168.100.82
When I try to execute the application, then in the console I get an error:
> 1.siddhi - Started Successfully!
[2022-11-09_23-21-40_302] ERROR {io.siddhi.core.stream.input.source.Source} - Error on '1'. no NetworkModule installed for scheme "tcp" of URI "tcp://192.168.100.82:1883" Error while connecting at Source 'mqtt' at 'SweetProductionStream'. (Encoded)
java.lang.IllegalArgumentException: no NetworkModule installed for scheme "tcp" of URI "tcp://192.168.100.82:1883"
at org.eclipse.paho.client.mqttv3.internal.NetworkModuleService.validateURI(NetworkModuleService.java:70)
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:454)
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:320)
at org.eclipse.paho.client.mqttv3.MqttAsyncClient.(MqttAsyncClient.java:315)
at org.eclipse.paho.client.mqttv3.MqttClient.(MqttClient.java:227)
at io.siddhi.extension.io.mqtt.source.MqttSource.connect(MqttSource.java:196)
at io.siddhi.core.stream.input.source.Source.connectWithRetry(Source.java:161)
at io.siddhi.core.SiddhiAppRuntimeImpl.startSources(SiddhiAppRuntimeImpl.java:535)
at io.siddhi.core.SiddhiAppRuntimeImpl.start(SiddhiAppRuntimeImpl.java:460)
at org.wso2.carbon.siddhi.editor.core.internal.DebugRuntime.start(DebugRuntime.java:93)
at org.wso2.carbon.siddhi.editor.core.internal.DebugProcessorService.start(DebugProcessorService.java:43)
at org.wso2.carbon.siddhi.editor.core.internal.EditorMicroservice.start(EditorMicroservice.java:795)
at org.wso2.carbon.siddhi.editor.core.internal.EditorMicroservice.startWithVariables(EditorMicroservice.java:815)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.wso2.msf4j.internal.router.HttpMethodInfo.invokeResource(HttpMethodInfo.java:187)
at org.wso2.msf4j.internal.router.HttpMethodInfo.invoke(HttpMethodInfo.java:143)
at org.wso2.msf4j.internal.MSF4JHttpConnectorListener.dispatchMethod(MSF4JHttpConnectorListener.java:218)
at org.wso2.msf4j.internal.MSF4JHttpConnectorListener.lambda$onMessage$58(MSF4JHttpConnectorListener.java:129)
at org.wso2.msf4j.internal.MSF4JHttpConnectorListener$$Lambda$312/404129248.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
What is the reason for the error?
I tried to change the versions of the org.eclipse.paho.client.mqttv3-1.1.1.jar and siddhi-io-mqtt-3.0.2.jar files.
This did not bring results.

JNDI configuration for Wso2 EI 7.1.0

I need a sample configuration to keep JNDI in Wso2 EI and those name can be reuse in DB report mediator.
Thanks,
Ajay Babu Maguluri.
Find the deployment.toml file, it is a data source from which other config file are templated.
An example configuration creating a jdbc datasource inside the deployment.toml with name jndi/MY_DATA is like:
[[datasource]]
id = "MY_DATA" # "WSO2_COORDINATION_DB"
url = "jdbc:mysql://localhost:3306/mydata"
username = "root"
password = "root"
driver = "com.mysql.jdbc.Driver"
optionally you can specify other jdbc properties just after the [[datasource]] section
[datasource.pool_options]
maxActive = 10
maxWait = 60000
minIdle = 0
testOnBorrow = true
defaultAutoCommit = true
validationInterval = 30000
testWhileIdle = true
timeBetweenEvictionRunsMillis = 5000
minEvictableIdleTimeMillis = 60000
removeAbandoned = true
logAbandoned = true
removeAbandonedTimeout = 180
validationQuery = "SELECT 1"

WSO2 APIM GW issue of traffic manager with JMS listner

In my setup WSO2, the Traffic manager is running into AWS infra and WSO2 GW is running on Azure.
but I am getting below error when trying to start my GW.
2020-10-09 06:42:11,354] ERROR - JMSListener Unable to continue server startup as it seems the JMS Provider is not yet started. Please start the JMS provider now.
[2020-10-09 06:42:11,355] ERROR - JMSListener Connection attempt : 1 for JMS Provider failed. Next retry in 20 seconds
[2020-10-09 06:42:11,358] ERROR - JMSListener Unable to continue server startup as it seems the JMS Provider is not yet started. Please start the JMS provider now.
[2020-10-09 06:42:11,359] ERROR - JMSListener Connection attempt : 1 for JMS Provider failed. Next retry in 20 seconds
I am using the following code into gw .toml and the traffic manager is running with an offset value as 3
[apim.throttling]
service_url = "https://tm.wso2.dev:9446/services/"
username= "admin_tm"
password= "admin_tm"
enable_data_publishing = true
enable_policy_deploy = false
enable_blacklist_condition = true
enable_decision_connection = true
enable_advanced_throttling = true
enable_unlimited_tier = true
enable_header_based_throttling = false
enable_jwt_claim_based_throttling = false
enable_query_param_based_throttling = false
throttle_decision_endpoints = ["tcp://tm.wso2.dev:5675"]
[[apim.throttling.url_group]]
traffic_manager_urls=["tcp://tm.wso2.dev:9614"]
traffic_manager_auth_urls=["ssl://tm.wso2.dev:9714"]
Can you try with removing service url and see? Sample config here below,
[apim.throttling]
username= "admin_tm"
password= "admin_tm"
enable_unlimited_tier = true
enable_header_based_throttling = false
enable_jwt_claim_based_throttling = false
enable_query_param_based_throttling = false
throttle_decision_endpoints = ["tcp://tm.wso2.dev:5675"]
[[apim.throttling.url_group]]
username= "admin_tm"
password= "admin_tm"
traffic_manager_urls = ["tcp://tm.wso2.dev:9614"]
traffic_manager_auth_urls = ["ssl://tm.wso2.dev:9714"]

WSO2 IS - Analytics : `Error while SSL handshake` error

I'm trying to link WSO2 IS and Analytics.
Basically I'm following tutorial from WSO2 page(https://is.docs.wso2.com/en/5.11.0/learn/prerequisites-to-publish-statistics/). And also checked some tutorials in blog(e.g., https://medium.com/#niluka/wso2-identity-analytics-17f62176130e)
Both IS server and WSO2 IS Analytics runs well until I try to use portal. Here is my problem.
I can login at user-portal and other pages, but the log doesn't shows at portal.
When I login at portal, this error occurs from dashboard.bat.
[2020-09-05 17:52:53,381] ERROR {org.wso2.transport.http.netty.contractimpl.listener.SslHandshakeCompletionHandlerForServer} - Error while SSL handshake: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[2020-09-05 17:52:53,381] ERROR {org.wso2.transport.http.netty.contractimpl.listener.SslHandshakeCompletionHandlerForServer} - Error while SSL handshake: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[2020-09-05 17:52:54,514] ERROR {org.wso2.transport.http.netty.contractimpl.listener.SslHandshakeCompletionHandlerForServer} - Error while SSL handshake: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
[2020-09-05 17:52:54,690] ERROR {org.wso2.transport.http.netty.contractimpl.listener.SslHandshakeCompletionHandlerForServer} - Error while SSL handshake: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown
I tried some solutions.
import the public certificate of WSO2 IS Analytics server to the client-truststore.jks of WSO2 Identity Server, and vice versa. (from this blog: https://medium.com/#niluka/wso2-identity-analytics-17f62176130e)
and solution from this link: https://github.com/wso2/docs-is/issues/1207
I tried this command keytool -import -alias <alias> -file <file_name> -keystore client-truststore.jks -storepass wso2carbon
but the response was :
C:\Program Files\WSO2\Identity Server\5.10.0\repository\resources\security>keytool -import -alias <alias> -file <file_name> -keystore client-truststore.jks -storepass wso2carbon.cer
지정된 파일을 찾을 수 없습니다.
(지정된 파일을 찾을 수 없습니다. is 'The specified file could not be found`)
But the problem remain's same. Dose anyone have other solution or tips for this error? Thanks.
This is my deployment.toml file.
[server]
hostname = "localhost"
node_ip = "127.0.0.1"
base_path = "https://$ref{server.hostname}:${carbon.management.port}"
[super_admin]
username = "admin"
password = "admin"
create_admin_account = true
[user_store]
type = "read_write_ldap_unique_id"
connection_url = "ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}"
connection_name = "uid=admin,ou=system"
connection_password = "admin"
base_dn = "dc=wso2,dc=org" #refers the base dn on which the user and group search bases will be generated
[database.identity_db]
type = "h2"
url = "jdbc:h2:./repository/database/WSO2IDENTITY_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000"
username = "wso2carbon"
password = "wso2carbon"
[database.shared_db]
type = "h2"
url = "jdbc:h2:./repository/database/WSO2SHARED_DB;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=60000"
username = "wso2carbon"
password = "wso2carbon"
[keystore.primary]
file_name = "wso2carbon.jks"
password = "wso2carbon"
[resource.access_control]
context = "(.*)/sample-auth/(.*)"
secure = false
http_method = "all"
[[event_listener]]
id = "authn_data_publisher_proxy"
type = "org.wso2.carbon.identity.core.handler.AbstractIdentityMessageHandler"
name = "org.wso2.carbon.identity.data.publisher.application.authentication.AuthnDataPublisherProxy"
order = 11
[identity_mgt.analytics_login_data_publisher]
enable=true
[identity_mgt.analytics_session_data_publisher]
enable=true
[event.default_listener.application_authentication]
enable = true