Hi Jayanga and All, There can be multiple connectors available for the CAAS at the run time but > it should only wait for the connectors that are specified in the > store-config.yml. Currently there is no feature in the startup resolver to > specifically wait until the dynamically given component is up. This feature > will be added into the startup resolver in future. Until that, we will add > startup resolver to wait until all of the required components to be active > and it will give a proper warning if there are missing components.
+1, It would make it easier to figure out what went wrong. There are two ways to specify connectors related to the carbon security. One method is to specify all of the > connector details in the main store-config.yml [1] and the other way is to > specify them in a separate configuration > file for each connector. Reason for using a single configuration file for > each connector is that there can be multiple > connectors from the same type and there are future requirements where there > can be configurations that are specific > to each connector. this will make using a single file little bit messy. > Connectors are extensions for the CAAS and > having the configuration file with the extension will make it is to pack with. Thanks for the clarification. Would that mean foo-connector.yml will define the connector type configuration and store-config.yml will be referred foo-connector for different store-connector instances ? Or are we repeating same configuration on both files? What carbon-security-user-store-jdbc version are you using ? Please use the > configurations that are used in the latest version. I am using following versions carbon.security.caas.version: 1.0.0-m2 and c arbon.security.userstore.jdbc.version: 1.0.0-m2 . And jdbc-connector.yml contains this (just uncommented defaults) ; name: "jdbc-store-connector" dataSource: "jdbc/WSO2CARBON_DB" We are trying to implement basic authentication on UUF using CAAS. This is a major blocker for us since we are on a tight schedule. Thus, your assistance is greatly appreciated. Thanks, Rasika On Wed, Jul 27, 2016 at 6:11 PM, Jayanga Kaushalya <[email protected]> wrote: > [Adding Sameera, Darshana] > > On Wed, Jul 27, 2016 at 3:58 PM, Rasika Perera <[email protected]> wrote: > >> [Adding Niranjan, Sumedha, Manu] >> >> Hi Jayanga, >> >> When the user-store connector[1] feature is added carbon-security >> component is activated. It is true that Carbon-Security component will not >> up until it satisfy all connectors dependencies. But IMO we need to provide >> intuitive error message when at least one connector is not provided >> (definitely bundlecontext is null is not the correct error message). >> Implementation should demand it, rather than docs. And if you need all >> connectors to up before your Carbon-Security-Component; try >> Startup-Order-Resolver which is used in MSF4J (There's a blog[2] on this by >> Sameera). >> > > There can be multiple connectors available for the CAAS at the run time > but it should only wait for the connectors that are specified in the > store-config.yml. Currently there is no feature in the startup resolver to > specifically wait until the dynamically given component is up. This feature > will be added into the startup resolver in future. Until that, we will add > startup resolver to wait until all of the required components to be active > and it will give a proper warning if there are missing components. > >> >> When turning on default configuration on "jdbc-connector.yml". Now I am >> getting this error; >> >> [2016-07-27 15:47:01,178] ERROR >> {org.wso2.carbon.security.caas.internal.CarbonSecurityComponent} - Cannot >> create property=dataSource for >> JavaBean=org.wso2.carbon.security.caas.internal.config.StoreConnectorConfigEntry@12a09b44 >> in 'reader', line 16, column 1: >> name: "jdbc-store-connector" >> ^ >> Unable to find property 'dataSource' on class: >> org.wso2.carbon.security.caas.internal.config.StoreConnectorConfigEntry >> in 'reader', line 17, column 13: >> dataSource: "jdbc/WSO2CARBON_DB" >> ^ >> Cannot create property=dataSource for >> JavaBean=org.wso2.carbon.security.caas.internal.config.StoreConnectorConfigEntry@12a09b44 >> in 'reader', line 16, column 1: >> name: "jdbc-store-connector" >> ^ >> Unable to find property 'dataSource' on class: >> org.wso2.carbon.security.caas.internal.config.StoreConnectorConfigEntry >> in 'reader', line 17, column 13: >> dataSource: "jdbc/WSO2CARBON_DB" >> >> Seems like configuration elements are not matched with the mapped object. >> What should be the correct configuration and any docs?i >> > > What carbon-security-user-store-jdbc version are you using ? Please use > the configurations that are used in the latest version. > >> >> When debugging this issue I also came across that carbon-security is >> owning configuration files space of "*-connector.yml" in [3]. Why do we >> need to introduce a new config file for each connector? Can't we use >> "connectors.yml" which will contains all connector configurations? >> > > There are two ways to specify connectors related to the carbon security. > One method is to specify all of the connector details in the main > store-config.yml [1] and the other way is to specify them in a separate > configuration file for each connector. Reason for using a single > configuration file for each connector is that there can be multiple > connectors from the same type and there are future requirements where there > can be configurations that are specific to each connector. this will make > using a single file little bit messy. Connectors are extensions for the > CAAS and having the configuration file with the extension will make it is > to pack with. > >> >> Thanks, >> Rasika >> >> [1] https://github.com/wso2-extensions/carbon-security-user-store-jdbc >> [2] >> https://medium.com/@sameera.jayasoma/resolving-startup-order-of-carbon-components-in-wso2-carbon-5-0-0-497fe3287e67#.uvmrvsl28 >> [3] >> https://github.com/wso2/carbon-security/blob/master/components/org.wso2.carbon.security.caas/src/main/java/org/wso2/carbon/security/caas/internal/config/StoreConfigBuilder.java#L286 >> >> [1] > https://github.com/wso2/carbon-security/blob/v1.0.0-m2/feature/resources/conf/store-config.yml > > > Thanks! > >> >> On Wed, Jul 27, 2016 at 12:48 PM, Jayanga Kaushalya <[email protected]> >> wrote: >> >>> Hi Rasika, >>> >>> Is there any active connectors available for user stores? There should >>> be at least a single connector present for each store to activate the >>> carbon security successfully. >>> >>> Thanks! >>> >>> *Jayanga Kaushalya* >>> Software Engineer >>> Mobile: +94777860160 >>> WSO2 Inc. | http://wso2.com >>> lean.enterprise.middleware >>> >>> On Tue, Jul 26, 2016 at 11:04 PM, Rasika Perera <[email protected]> >>> wrote: >>> >>>> Hi Thanuja, >>>> >>>> This issue got resolved by updating version into 1.0.0-m2. Now I am >>>> getting BundleContext is null exception. >>>> >>>> java.lang.IllegalStateException: BundleContext is null. >>>>> at >>>>> org.wso2.carbon.security.caas.internal.CarbonSecurityDataHolder.getBundleContext(CarbonSecurityDataHolder.java:125) >>>>> at >>>>> org.wso2.carbon.security.caas.api.util.CarbonSecurityUtils.getCallbackHandlers(CarbonSecurityUtils.java:39) >>>>> at >>>>> org.wso2.carbon.security.caas.api.ProxyCallbackHandler.handle(ProxyCallbackHandler.java:65) >>>>> at >>>>> javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:939) >>>>> at >>>>> javax.security.auth.login.LoginContext$SecureCallbackHandler$1.run(LoginContext.java:936) >>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>> at >>>>> javax.security.auth.login.LoginContext$SecureCallbackHandler.handle(LoginContext.java:936) >>>>> at >>>>> org.wso2.carbon.security.caas.api.module.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:103) >>>>> 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 >>>>> javax.security.auth.login.LoginContext.invoke(LoginContext.java:755) >>>>> at >>>>> javax.security.auth.login.LoginContext.access$000(LoginContext.java:195) >>>>> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682) >>>>> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680) >>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>> at >>>>> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) >>>>> at javax.security.auth.login.LoginContext.login(LoginContext.java:587) >>>>> at >>>>> org.wso2.carbon.uuf.sample.simpleauth.bundle.SimpleAuthHandler.authenticateByCaas(SimpleAuthHandler.java:60) >>>> >>>> >>>> When debugging found that CarbonSecurityComponent's @Activate >>>> method[1] is not invoked by OSGi. Then checked bundles on osgi console, >>>> both fragment and bundle is Active. >>>> >>>> 79|Active | 4|org.wso2.carbon.security.caas (1.0.0.m2) >>>>> 80|Resolved | 1|org.wso2.carbon.security.caas.boot (1.0.0.m2) >>>> >>>> >>>> Any thoughts on resolving this issue? >>>> >>>> [1] >>>> https://github.com/wso2/carbon-security/blob/release-1.0.0-m2/components/org.wso2.carbon.security.caas/src/main/java/org/wso2/carbon/security/caas/internal/CarbonSecurityComponent.java#L80 >>>> >>>> On Tue, Jul 26, 2016 at 6:18 PM, Thanuja Jayasinghe <[email protected]> >>>> wrote: >>>> >>>>> Hi Rasika, >>>>> >>>>> This issue happens when 'carbon-security-caas' module does not >>>>> activate properly. Can you debug the code [1], and check whether activate >>>>> method is getting called. >>>>> >>>>> [1] - >>>>> https://github.com/wso2/carbon-security/blob/master/components/org.wso2.carbon.security.caas/src/main/java/org/wso2/carbon/security/caas/internal/CarbonSecurityComponent.java#L80 >>>>> >>>>> Thanks, >>>>> >>>>> On Mon, Jul 25, 2016 at 7:09 PM, Rasika Perera <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi All, >>>>>> >>>>>> I am trying to invoke basic authentication with CAAS. I have >>>>>> installed "org.wso2.carbon.security.caas.feature" and imported following >>>>>> packages; >>>>>> >>>>>> org.wso2.carbon.security.caas.api.*, >>>>>> org.wso2.carbon.kernel.context, >>>>>> org.wso2.carbon.messaging >>>>>> >>>>>> Further I have added config location into the startup script; >>>>>> >>>>>> -Djava.security.auth.login.config="$CARBON_HOME/conf/security/carbon-jaas.config"\ >>>>>> >>>>>> My code snippet is as below (based on JAAS sample[1]); >>>>>> >>>>>> PrivilegedCarbonContext.destroyCurrentContext(); >>>>>> CarbonMessage carbonMessage = new DefaultCarbonMessage(); >>>>>> carbonMessage.setHeader("Authorization", "Basic " + Base64.getEncoder() >>>>>> .encodeToString("admin:admin".getBytes()) >>>>>> ); >>>>>> >>>>>> ProxyCallbackHandler callbackHandler = new >>>>>> ProxyCallbackHandler(carbonMessage); >>>>>> LoginContext loginContext = new LoginContext("CarbonSecurityConfig", >>>>>> callbackHandler); >>>>>> loginContext.login(); >>>>>> >>>>>> I am getting following error at the line "loginContext.login()"; >>>>>> >>>>>> Caused by: javax.security.auth.login.LoginException: unable to find >>>>>> LoginModule class: >>>>>> org.wso2.carbon.security.caas.api.module.UsernamePasswordLoginModule >>>>>> at >>>>>> javax.security.auth.login.LoginContext.invoke(LoginContext.java:794) >>>>>> at >>>>>> javax.security.auth.login.LoginContext.access$000(LoginContext.java:195) >>>>>> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:682) >>>>>> at javax.security.auth.login.LoginContext$4.run(LoginContext.java:680) >>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>> at >>>>>> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) >>>>>> at javax.security.auth.login.LoginContext.login(LoginContext.java:587) >>>>>> at >>>>>> org.wso2.carbon.uuf.sample.simpleauth.bundle.SimpleAuthHandler.authenticate(SimpleAuthHandler.java:45) >>>>>> >>>>>> Further I have found this occurs when LoginContext is trying load the >>>>>> class "UsernamePasswordLoginModule" using Bootstrap class loader. >>>>>> >>>>>> Any thoughts on how to fix this issue? >>>>>> >>>>>> [1] >>>>>> https://github.com/wso2/carbon-security/blob/master/tests/osgi-tests/src/test/java/org/wso2/carbon/security/caas/test/osgi/JAASTests.java >>>>>> -- >>>>>> With Regards, >>>>>> >>>>>> *Rasika Perera* >>>>>> Software Engineer >>>>>> LinkedIn: http://lk.linkedin.com/in/rasika90 >>>>>> >>>>>> [image: wso2-signature-general.png] <https://wso2.com/signature> >>>>>> >>>>>> WSO2 Inc. www.wso2.com >>>>>> lean.enterprise.middleware >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Thanuja Lakmal* >>>>> Senior Software Engineer >>>>> WSO2 Inc. http://wso2.com/ >>>>> *lean.enterprise.middleware* >>>>> Mobile: +94715979891 +94758009992 >>>>> >>>> >>>> >>>> >>>> -- >>>> With Regards, >>>> >>>> *Rasika Perera* >>>> Software Engineer >>>> LinkedIn: http://lk.linkedin.com/in/rasika90 >>>> >>>> [image: wso2-signature-general.png] <https://wso2.com/signature> >>>> >>>> WSO2 Inc. www.wso2.com >>>> lean.enterprise.middleware >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >> >> >> -- >> With Regards, >> >> *Rasika Perera* >> Software Engineer >> LinkedIn: http://lk.linkedin.com/in/rasika90 >> >> [image: wso2-signature-general.png] <https://wso2.com/signature> >> >> WSO2 Inc. www.wso2.com >> lean.enterprise.middleware >> > > -- With Regards, *Rasika Perera* Software Engineer LinkedIn: http://lk.linkedin.com/in/rasika90 [image: wso2-signature-general.png] <https://wso2.com/signature> WSO2 Inc. www.wso2.com lean.enterprise.middleware
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
