Hi prabath; I tried single jdbc userstore case..but same issue, jndi lookup fails. Attched the new usermgt.xml, i configured for single userstore. If my configuration is right, this is not related to multiple/single usertsore, rather initializing the realmConfiguration for tenants. Thanks
On 16 May 2013 13:13, Prabath Siriwardena <[email protected]> wrote: > How does this relate to multiple user stores? Did you tets this with a > single JDBC based user store? > > Thanks & regards, > -Prabath > > > On Thu, May 16, 2013 at 1:01 PM, Vijayaratha Vijayasingam <[email protected] > > wrote: > >> HI IS team; >> Can you fix these? It is a blocker for APIM team. >> Datasource is defined for Supertenant and UserStore concept is designed >> for per tenant case. Both are conflicting and datasource is not visible to >> tenant's scope.. >> >> Thanks >> -Ratha >> >> >> On 16 May 2013 12:54, Anjana Fernando <[email protected]> wrote: >> >>> Hi, >>> >>> Basically here, the data sources defined in *-datasources.xml file >>> belongs to the super-tenant. So because the JNDI lookup is tenant aware, >>> you will have to be in the super-tenant's tenant flow to lookup the data >>> source, this is the reason you will not find the requested JNDI resource if >>> you're in some other tenant flow. >>> >>> Cheers, >>> Anjana. >>> >>> >>> On Tue, May 14, 2013 at 3:43 PM, Vijayaratha Vijayasingam < >>> [email protected]> wrote: >>> >>>> Hi all; >>>> we are getting above issue in APIManager 1.4.0, with multiple userstore >>>> configuration. >>>> What we did is, after publishing/subscribing the API, we allowed the >>>> store app to session timeout then re login the system. We couldnt see the >>>> APIs at that time; >>>> The error we got is. >>>> >>>> ... 32 more >>>> [2013-05-14 15:35:29,756] ERROR - DefaultRealm Cannot create >>>> org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager >>>> java.lang.reflect.InvocationTargetException >>>> at >>>> sun.reflect.GeneratedConstructorAccessor126.newInstance(Unknown Source) >>>> at >>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>> at >>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:225) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:147) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:113) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealmService.getTenantUserRealm(DefaultRealmService.java:169) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.init(UserRegistry.java:267) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.<init>(UserRegistry.java:227) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.<init>(UserRegistry.java:206) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getUserRegistry(EmbeddedRegistryService.java:427) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getSystemRegistry(EmbeddedRegistryService.java:292) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getLocalRepository(EmbeddedRegistryService.java:481) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.repository.CarbonRepositoryUtils.getLocalRepository(CarbonRepositoryUtils.java:351) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.repository.CarbonRepositoryUtils.getDeploymentSyncConfigurationFromRegistry(CarbonReposito >>>> ryUtils.java:257) >>>> >>>> >>>> at java.lang.Thread.run(Thread.java:662) >>>> Caused by: java.lang.reflect.InvocationTargetException >>>> at >>>> sun.reflect.GeneratedConstructorAccessor126.newInstance(Unknown Source) >>>> at >>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>> at >>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:225) >>>> ... 25 more >>>> Caused by: java.lang.RuntimeException: Error in looking up data source: >>>> Name [jdbc/WSO2UM1] is not bound in this Context. Unable to find [jdbc]. >>>> at >>>> org.wso2.carbon.user.core.util.DatabaseUtil.lookupDataSource(DatabaseUtil.java:92) >>>> at >>>> org.wso2.carbon.user.core.util.DatabaseUtil.createUserStoreDataSource(DatabaseUtil.java:99) >>>> at >>>> org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.loadUserStoreSpacificDataSoruce(JDBCUserStoreManager.java:1885) >>>> at >>>> org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.<init>(JDBCUserStoreManager.java:165) >>>> ... 29 more >>>> Caused by: javax.naming.NameNotFoundException: Name [jdbc/WSO2UM1] is >>>> not bound in this Context. Unable to find [jdbc]. >>>> at >>>> org.apache.naming.NamingContext.lookup(NamingContext.java:820) >>>> at >>>> org.apache.naming.NamingContext.lookup(NamingContext.java:168) >>>> at >>>> org.wso2.carbon.context.internal.CarbonContextDataHolder$CarbonInitialJNDIContext.lookup(CarbonContextDataHolder.java:1030) >>>> at javax.naming.InitialContext.lookup(InitialContext.java:392) >>>> at javax.naming.InitialContext.doLookup(InitialContext.java:265) >>>> at >>>> org.wso2.carbon.user.core.util.DatabaseUtil.lookupDataSource(DatabaseUtil.java:90) >>>> ... 32 more >>>> [2013-05-14 15:36:15,181] ERROR - DefaultRealmService Cannot initialize >>>> the realm. >>>> org.wso2.carbon.user.core.UserStoreException: Cannot initialize the >>>> realm. >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:227) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealmService.getTenantUserRealm(DefaultRealmService.java:169) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.init(UserRegistry.java:267) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.<init>(UserRegistry.java:227) >>>> at >>>> org.wso2.carbon.registry.core.session.UserRegistry.<init>(UserRegistry.java:206) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getUserRegistry(EmbeddedRegistryService.java:427) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getSystemRegistry(EmbeddedRegistryService.java:292) >>>> at >>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistryService.getLocalRepository(EmbeddedRegistryService.java:481) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.repository.CarbonRepositoryUtils.getLocalRepository(CarbonRepositoryUtils.java:351) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.repository.CarbonRepositoryUtils.getDeploymentSyncConfigurationFromRegistry(CarbonReposito >>>> ryUtils.java:257) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.repository.CarbonRepositoryUtils.getActiveSynchronizerConfiguration(CarbonRepositoryUtils. >>>> java:108) >>>> at >>>> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizerServiceImpl.commit(DeploymentSynchronizerServiceImpl.java:96) >>>> at >>>> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.deploymentSyncCommit(CarbonDeploymentSchedulerTask.java:175) >>>> at >>>> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:116) >>>> at >>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) >>>> at >>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) >>>> at >>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) >>>> at >>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) >>>> at >>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) >>>> at >>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) >>>> at >>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) >>>> at java.lang.Thread.run(Thread.java:662) >>>> Caused by: org.wso2.carbon.user.core.UserStoreException: nullType class >>>> java.lang.reflect.InvocationTargetException >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.createObjectWithOptions(DefaultRealm.java:266) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.initializeObjects(DefaultRealm.java:147) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealm.init(DefaultRealm.java:113) >>>> at >>>> org.wso2.carbon.user.core.common.DefaultRealmService.initializeRealm(DefaultRealmService.java:223) >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> *Anjana Fernando* >>> Associate Technical Lead >>> WSO2 Inc. | http://wso2.com >>> lean . enterprise . middleware >>> >> >> >> >> -- >> mobile: (+94)755906608 >> > > > > -- > Thanks & Regards, > Prabath > > Mobile : +94 71 809 6732 > > http://blog.facilelogin.com > http://RampartFAQ.com > -- mobile: (+94)755906608
<!-- ~ Copyright WSO2, Inc. (http://wso2.com) ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <UserManager> <Realm> <Configuration> <AdminRole>admin</AdminRole> <AdminUser> <UserName>admin</UserName> <Password>admin</Password> </AdminUser> <EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root --> <Property name="dataSource">jdbc/WSO2CarbonDB</Property> <Property name="MultiTenantRealmConfigBuilder">org.wso2.carbon.user.core.config.multitenancy.SimpleRealmConfigBuilder</Property> </Configuration> <!-- Following is the default user store manager. This user store manager is based on embedded-apacheds LDAP. It reads/writes users and roles into the default apacheds LDAP user store. Descriptions about each of the following properties can be found in user management documentation of the respective product. In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property> Note: Do not comment within UserStoreManager tags. Cause, specific tag names are used as tokens when building configurations for products. --> <!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"> <Property name="ConnectionURL">ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}</Property> <Property name="ConnectionName">uid=admin,ou=system</Property> <Property name="ConnectionPassword">admin</Property> <Property name="passwordHashMethod">SHA</Property> <Property name="UserNameListFilter">(objectClass=person)</Property> <Property name="UserEntryObjectClass">wso2Person</Property> <Property name="UserSearchBase">ou=Users,dc=wso2,dc=org</Property> <Property name="UserNameSearchFilter">(&(objectClass=person)(uid=?))</Property> <Property name="UserNameAttribute">uid</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="ReadLDAPGroups">true</Property> <Property name="WriteLDAPGroups">true</Property> <Property name="EmptyRolesAllowed">true</Property> <Property name="GroupSearchBase">ou=Groups,dc=wso2,dc=org</Property> <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> <Property name="GroupEntryObjectClass">groupOfNames</Property> <Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property> <Property name="GroupNameAttribute">cn</Property> <Property name="MembershipAttribute">member</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="UserDNPattern">uid={0},ou=Users,dc=wso2,dc=org</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager--> <!-- Following is the configuration for internal JDBC user store. This user store manager is based on JDBC. In case if application needs to manage passwords externally set property <Property name="PasswordsExternallyManaged">true</Property>. In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property>. Furthermore properties, IsEmailUserName and DomainCalculation are readonly properties. Note: Do not comment within UserStoreManager tags. Cause, specific tag names are used as tokens when building configurations for products. --> <UserStoreManager class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager"> <Property name="dataSource">jdbc/WSO2UM1</Property> <!--<Property name="DomainName">foo.com</Property>--> <Property name="ReadOnly">false</Property> <Property name="MaxUserNameListLength">100</Property> <Property name="IsEmailUserName">false</Property> <Property name="DomainCalculation">default</Property> <Property name="PasswordDigest">SHA-256</Property> <Property name="StoreSaltedPassword">true</Property> <Property name="UserNameUniqueAcrossTenants">false</Property> <Property name="PasswordJavaRegEx">^[\S]{5,30}$</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="UsernameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\<>,\'\"]{3,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\<>,\'\"]{3,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager> <!--<UserStoreManager class="org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager"> <Property name="dataSource">jdbc/WSO2UM2</Property> <Property name="DomainName">bar.com</Property> <Property name="ReadOnly">false</Property> <Property name="MaxUserNameListLength">100</Property> <Property name="IsEmailUserName">false</Property> <Property name="DomainCalculation">default</Property> <Property name="PasswordDigest">SHA-256</Property> <Property name="StoreSaltedPassword">true</Property> <Property name="UserNameUniqueAcrossTenants">false</Property> <Property name="PasswordJavaRegEx">^[\S]{5,30}$</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="UsernameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\<>,\'\"]{3,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">^[^~!#$;%^*+={}\\|\\\\<>,\'\"]{3,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager>--> <!-- If product is using an external LDAP as the user store in READ ONLY mode, use following user manager. In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property> --> <!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager"> <Property name="ReadOnly">true</Property> <Property name="MaxUserNameListLength">100</Property> <Property name="ConnectionURL">ldap://localhost:10389</Property> <Property name="ConnectionName">uid=admin,ou=system</Property> <Property name="ConnectionPassword">admin</Property> <Property name="passwordHashMethod">PLAIN_TEXT</Property> <Property name="UserSearchBase">ou=system</Property> <Property name="UserNameListFilter">(objectClass=person)</Property> <Property name="UserNameAttribute">uid</Property> <Property name="ReadLDAPGroups">false</Property> <Property name="GroupSearchBase">ou=system</Property> <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> <Property name="GroupNameAttribute">cn</Property> <Property name="MembershipAttribute">member</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager--> <!-- Active directory configuration is as follows. In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property> There are few special properties for "Active Directory". They are : 1.Referral - (comment out this property if this feature is not reuired) This enables LDAP referral support. 2.BackLinksEnabled - (Do not comment, set to true or false) In some cases LDAP works with BackLinksEnabled. In which role is stored at user level. Depending on this value we need to change the Search Base within code. 3.isADLDSRole - (Do not comment) Set to true if connecting to an AD LDS instance else set to false. --> <!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ActiveDirectoryUserStoreManager"> <Property name="defaultRealmName">WSO2.ORG</Property> <Property name="kdcEnabled">false</Property> <Property name="ConnectionURL">ldaps://10.100.1.100:636</Property> <Property name="ConnectionName">CN=admin,CN=Users,DC=WSO2,DC=Com</Property> <Property name="ConnectionPassword">A1b2c3d4</Property> <Property name="passwordHashMethod">PLAIN_TEXT</Property> <Property name="UserSearchBase">CN=Users,DC=WSO2,DC=Com</Property> <Property name="UserEntryObjectClass">user</Property> <Property name="UserNameAttribute">cn</Property> <Property name="isADLDSRole">false</Property> <Property name="userAccountControl">512</Property> <Property name="UserNameListFilter">(objectClass=user)</Property> <Property name="UserNameSearchFilter">(&(objectClass=user)(cn=?))</Property> <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="ReadLDAPGroups">true</Property> <Property name="WriteLDAPGroups">true</Property> <Property name="EmptyRolesAllowed">true</Property> <Property name="GroupSearchBase">CN=Users,DC=WSO2,DC=Com</Property> <Property name="GroupEntryObjectClass">group</Property> <Property name="GroupNameAttribute">cn</Property> <Property name="MembershipAttribute">member</Property> <Property name="GroupNameListFilter">(objectcategory=group)</Property> <Property name="GroupNameSearchFilter">(&(objectClass=group)(cn=?))</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="Referral">follow</Property> <Property name="BackLinksEnabled">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager--> <!-- If product is using an external LDAP as the user store in read/write mode, use following user manager In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property> --> <!--UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"> <Property name="ConnectionURL">ldap://localhost:10389</Property> <Property name="ConnectionName">uid=admin,ou=system</Property> <Property name="ConnectionPassword">secret</Property> <Property name="passwordHashMethod">PLAIN_TEXT</Property> <Property name="UserNameListFilter">(objectClass=person)</Property> <Property name="UserEntryObjectClass">inetOrgPerson</Property> <Property name="UserSearchBase">ou=system</Property> <Property name="UserNameSearchFilter">(&(objectClass=person)(uid=?))</Property> <Property name="UserNameAttribute">uid</Property> <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="ReadLDAPGroups">true</Property> <Property name="WriteLDAPGroups">true</Property> <Property name="EmptyRolesAllowed">false</Property> <Property name="GroupSearchBase">ou=system</Property> <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> <Property name="GroupEntryObjectClass">groupOfNames</Property> <Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property> <Property name="GroupNameAttribute">cn</Property> <Property name="MembershipAttribute">member</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="ReplaceEscapeCharactersAtUserLogin">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </UserStoreManager--> <!-- Following user manager is used by Identity Server (IS) as its default user manager. IS will do token replacement when building the product. Therefore do not change the syntax. If "kdcEnabled" parameter is true, IS will allow service principle management. Thus "ServicePasswordJavaRegEx", "ServiceNameJavaRegEx" properties control the service name format and service password formats. In case if user core cache domain is needed to identify uniquely set property <Property name="UserCoreCacheIdentifier">domain</Property> --> <!--ISUserStoreManager class="org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager"> <Property name="defaultRealmName">WSO2.ORG</Property> <Property name="kdcEnabled">false</Property> <Property name="ConnectionURL">ldap://localhost:${Ports.EmbeddedLDAP.LDAPServerPort}</Property> <Property name="ConnectionName">uid=admin,ou=system</Property> <Property name="ConnectionPassword">admin</Property> <Property name="passwordHashMethod">SHA</Property> <Property name="UserNameListFilter">(objectClass=person)</Property> <Property name="UserEntryObjectClass">scimPerson</Property> <Property name="UserSearchBase">ou=Users,dc=wso2,dc=org</Property> <Property name="UserNameSearchFilter">(&(objectClass=person)(uid=?))</Property> <Property name="UserNameAttribute">uid</Property> <Property name="PasswordJavaScriptRegEx">^[\\S]{5,30}$</Property> <Property name="ServicePasswordJavaRegEx">^[\\S]{5,30}$</Property> <Property name="ServiceNameJavaRegEx">^[\\S]{2,30}/[\\S]{2,30}$</Property> <Property name="UsernameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="UsernameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="RolenameJavaScriptRegEx">^[\\S]{3,30}$</Property> <Property name="RolenameJavaRegEx">[a-zA-Z0-9._-|//]{3,30}$</Property> <Property name="ReadLDAPGroups">true</Property> <Property name="WriteLDAPGroups">true</Property> <Property name="EmptyRolesAllowed">true</Property> <Property name="GroupSearchBase">ou=Groups,dc=wso2,dc=org</Property> <Property name="GroupNameListFilter">(objectClass=groupOfNames)</Property> <Property name="GroupEntryObjectClass">groupOfNames</Property> <Property name="GroupNameSearchFilter">(&(objectClass=groupOfNames)(cn=?))</Property> <Property name="GroupNameAttribute">cn</Property> <Property name="MembershipAttribute">member</Property> <Property name="UserRolesCacheEnabled">true</Property> <Property name="UserDNPattern">uid={0},ou=Users,dc=wso2,dc=org</Property> <Property name="SCIMEnabled">true</Property> <Property name="maxFailedLoginAttempt">0</Property> </ISUserStoreManager--> <AuthorizationManager class="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager"> <Property name="AdminRoleManagementPermissions">/permission</Property> <Property name="AuthorizationCacheEnabled">true</Property> </AuthorizationManager> </Realm> </UserManager> <!--*******Description of some of the configuration properties used in user-mgt.xml********************************* UserRolesCacheEnabled - This is to indicate whether to cache role list of a user. By default it is set to true. You may need to disable it if user-roles are changed by external means and need to reflect those changes in the carbon product immediately. ReplaceEscapeCharactersAtUserLogin - This is to configure whether escape characters in user name needs to be replaced at user login. Currently the identified escape characters that needs to be replaced are '\' & '\\' UserDNPattern - This property will be used when authenticating users. During authentication we do a bind. But if the user is login with email address or some other property we need to first lookup LDAP and retreive DN for the user. This involves an additional step. If UserDNPattern is specified the DN will be contructed using the pattern specified in this property. Performance of this is much better than looking up DN and binding user. passwordHashMethod - This says how the password should be stored. Allowed values are as follows, SHA - Uses SHA digest method MD5 - Uses MD 5 digest method PLAIN_TEXT - Plain text passwords In addition to above this supports all digest methods supported by http://docs.oracle.com/javase/6/docs/api/java/security/MessageDigest.html. DomainName - This is used with Multiple User Store feature - when you want to connect to more than one user store at a time. In that case, we identify the secondary user stores by the DomainName property. We do not define this property for the primary user store. Example format of this property element would be: <Property name="DomainName">domain.com</Property> -->
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
