[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
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev