我已经从debian软件包中安装了wso2is-5.7.0。我的数据源使用在tomcat / Catalina-server.xml中定义的jdbc / WSO2CarbonDB使用了WSO2_Carbon_DB。当我运行wso2server.sh启动时,它失败并显示以下日志行:
TID:[-1234] [] [2019-01-17 12:33:25,611]错误{org.wso2.carbon.user.core.inter nal.Activator}-无法启动User Manager Core捆绑包 java.lang.RuntimeException:查找数据源时出错:名称[WSO2CarbonDB]在此上下文中未绑定。找不到[WSO2CarbonDB]。
在配置中,我没有引用WSO2CarbonDB。以下是我的user-mgt.xml内容:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<UserManager>
<Realm>
<Configuration>
<AddAdmin>false</AddAdmin>
<AdminRole>wso2admin</AdminRole>
<AdminUser>
<UserName>admin</UserName>
<Password>admin</Password>
</AdminUser>
<EveryOneRoleName>everyone</EveryOneRoleName> <!-- By default users in this role sees the registry root -->
<Property name="isCascadeDeleteEnabled">false</Property>
<Property name="dataSource">jdbc/WSO2CarbonDB</Property>
</Configuration>
<AuthorizationManagerclass="org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager">
<Property name="AdminRoleManagementPermissions">/permission</Property>
<Property name="AuthorizationCacheEnabled">true</Property>
<Property name="GetAllRolesOfUserEnabled">false</Property>
</AuthorizationManager>
<UserStoreManager class="org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager">
<Property name="TenantManager">org.wso2.carbon.user.core.tenant.CommonHybridLDAPTenantManager</Property>
<Property name="ReadOnly">true</Property>
<Property name="Disabled">false</Property>
<Property name="MaxUserNameListLength">100</Property>
<Property name="ConnectionURL">ldap://ldap.xyz.com:389</Property>
<Property name="ConnectionName">uid=ldapadmin,ou=People,dc=xyz,dc=com</Property>
<Property name="ConnectionPassword">secret</Property>
<Property name="passwordHashMethod">PLAIN_TEXT</Property>
<Property name="UserSearchBase">ou=People,dc=xyz,dc=com</Property>
<Property name="UserNameListFilter">(objectClass=account)</Property>
<Property
name="UserNameSearchFilter">(&(objectClass=account)(|(uid=?)(mail=?)))</Property>
<Property name="UserNameAttribute">uid</Property>
<Property name="ReadGroups">true</Property>
<Property name="GroupSearchBase">ou=Group,dc=xyz,dc=com</Property>
<Property name="GroupNameListFilter">(objectClass=posixGroup)</Property>
<Property name="GroupNameSearchFilter">(&(objectClass=posixGroup)(cn=?))</Property>
<Property name="GroupNameAttribute">cn</Property>
<Property name="SharedGroupNameAttribute">cn</Property>
<Property name="SharedGroupSearchBase">ou=Groupshare,dc=xyz,dc=com</Property>
<Property name="SharedGroupNameListFilter">(objectClass=posixGroup)</Property>
<Property name="SharedTenantNameListFilter">(objectClass=organizationalUnit)</Property>
<Property name="SharedTenantNameAttribute">ou</Property>
<Property name="SharedTenantObjectClass">organizationalUnit</Property>
<Property name="MembershipAttribute">memberUid</Property>
<Property name="UserRolesCacheEnabled">true</Property>
<Property name="ReplaceEscapeCharactersAtUserLogin">true</Property>
<Property name="MaxRoleNameListLength">100</Property>
<Property name="MaxUserNameListLength">100</Property>
<Property name="SCIMEnabled">false</Property>
<Property name="MultiAttributeSeparator">,</Property>
<Property name="ReadTimeout"/>
<Property name="RetryAttempts"/>
</UserStoreManager>
</Realm>
</UserManager>
我如何摆脱或引用[WSO2CarbonDB]参考?我试过为其添加数据源,并为其添加一个jndi定义,但是没有运气。
答案 0 :(得分:0)
即使您使用的是LDAPUserStoreManager,仍需要在Realm配置(在user-mgt.xml中)下定义的JDBC数据源来存储权限信息。有关更多信息,请参考doc。
根据WSO2产品中的默认配置,用户, 角色和权限存储在同一存储库中(即 默认为嵌入式H2数据库)。但是,您可以更改此 以一种将用户和角色存储在一个方式中的方式进行配置 信息库(用户存储)和权限分别存储在单独的位置 存储库。
用户存储可以是典型的RDBMS,LDAP或外部Active 目录。
存储权限的存储库应该始终是RDBMS。的 user-mgt.xml文件(存储中)中的授权管理器配置 / repository / conf /目录中)连接系统 到这个RDBMS。
您在user-mgt.xml
中定义了以下条目,
<UserManager>
<Realm>
<Configuration>
<Property name="dataSource">jdbc/WSO2CarbonDB</Property>
您必须在master-datasource.xml
文件中定义相应的数据源信息(存储在/ repository / conf / datasources目录中)
例如:
<datasource>
<name>WSO2_CARBON_DB</name>
<description>carbon db</description>
<jndiConfig>
<name>jdbc/WSO2CarbonDB</name>
</jndiConfig>
<definition type="RDBMS">
<configuration>
<url>jdbc:mysql://localhost:3310/carbondb</url>
<username>dbuser</username>
<password>password</password>
<driverClassName>com.mysql.jdbc.Driver</driverClassName>
<maxActive>50</maxActive>
<maxWait>60000</maxWait>
<testOnBorrow>true</testOnBorrow>
<validationQuery>SELECT 1</validationQuery>
<validationInterval>30000</validationInterval>
<defaultAutoCommit>false</defaultAutoCommit>
</configuration>
</definition>
</datasource>
我如何摆脱或引用[WSO2CarbonDB]参考?我有 尝试为它添加一个数据源和一个jndi定义,没有 运气。
确保在master-datasources.xml
中定义的JNDI名称与在dataSource
中配置的user-mgt.xml
名称完全匹配。