[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).

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?

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?

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


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

Reply via email to