Author: thomas.heute(a)jboss.com
Date: 2009-07-22 05:37:08 -0400 (Wed, 22 Jul 2009)
New Revision: 13581
Modified:
branches/Enterprise_Portal_Platform_4_3/core-cms/src/resources/portal-cms-sar/META-INF/jboss-service.xml
modules/cms/trunk/cms-jackrabbit/src/main/java/org/jboss/portal/cms/security/AuthorizationProviderImpl.java
Log:
JBEPP-98: SQLException on user login if hibernate schema name is specified
Modified:
branches/Enterprise_Portal_Platform_4_3/core-cms/src/resources/portal-cms-sar/META-INF/jboss-service.xml
===================================================================
---
branches/Enterprise_Portal_Platform_4_3/core-cms/src/resources/portal-cms-sar/META-INF/jboss-service.xml 2009-07-22
07:25:40 UTC (rev 13580)
+++
branches/Enterprise_Portal_Platform_4_3/core-cms/src/resources/portal-cms-sar/META-INF/jboss-service.xml 2009-07-22
09:37:08 UTC (rev 13581)
@@ -473,7 +473,8 @@
-->
<attribute name="CmsRootUserName">admin</attribute>
<attribute
name="CmsSessionFactory">java:/portal/cms/CMSSessionFactory</attribute>
- <depends optional-attribute-name="IdentityServiceController"
proxy-type="attribute">portal:service=Module,type=IdentityServiceController</depends>
+ <depends optional-attribute-name="IdentityServiceController"
proxy-type="attribute">portal:service=Module,type=IdentityServiceController</depends>
+ <depends optional-attribute-name="SessionFactoryBinder"
proxy-type="attribute">portal:service=Hibernate,type=CMS</depends>
</mbean>
<!-- ACL Security Interceptor -->
Modified:
modules/cms/trunk/cms-jackrabbit/src/main/java/org/jboss/portal/cms/security/AuthorizationProviderImpl.java
===================================================================
---
modules/cms/trunk/cms-jackrabbit/src/main/java/org/jboss/portal/cms/security/AuthorizationProviderImpl.java 2009-07-22
07:25:40 UTC (rev 13580)
+++
modules/cms/trunk/cms-jackrabbit/src/main/java/org/jboss/portal/cms/security/AuthorizationProviderImpl.java 2009-07-22
09:37:08 UTC (rev 13581)
@@ -38,6 +38,7 @@
import org.jboss.portal.identity.UserModule;
import org.jboss.portal.identity.db.HibernateUserModuleImpl;
import org.jboss.portal.jems.as.system.AbstractJBossService;
+import org.jboss.portal.jems.hibernate.SessionFactoryBinder;
import org.jboss.portal.security.spi.provider.DomainConfigurator;
import org.jboss.portal.security.spi.provider.PermissionFactory;
import org.jboss.portal.security.spi.provider.PermissionRepository;
@@ -63,6 +64,8 @@
{
private IdentityServiceController identityServiceController = null;
+ private SessionFactoryBinder sessionFactoryBinder = null;
+
private MembershipModule membershipModule = null;
private UserModule userModule = null;
@@ -327,6 +330,16 @@
this.identityServiceController = identityServiceController;
}
+ public SessionFactoryBinder getSessionFactoryBinder()
+ {
+ return sessionFactoryBinder;
+ }
+
+ public void setSessionFactoryBinder(SessionFactoryBinder sessionFactoryBinder)
+ {
+ this.sessionFactoryBinder = sessionFactoryBinder;
+ }
+
//
--------------------------------------------------------------------------------------------------------------
/**
* Stores a permission and its associations into peristent storage
@@ -435,12 +448,16 @@
userQuery.setString(0, userId);
userQuery.setCacheable(true);
permissions.addAll(userQuery.list());
-
+
if (this.userModule instanceof HibernateUserModuleImpl)
{
- // in case of a database version, use the cache optmized way to
+
+ String schemaName =
sessionFactoryBinder.getConfig().getProperty("hibernate.default_schema");
+ String schemaPrefix = (schemaName!=null ? schemaName+"." :
"");
+
+ // in case of a database version, use the cache optimized way to
// lookup the permissions
- String lookupByRole = "SELECT p.* from jbp_cms_perm p,jbp_cms_perm_role
r,jbp_role_membership m,jbp_roles roles,jbp_users users WHERE "
+ String lookupByRole = "SELECT p.* from " + schemaPrefix +
"jbp_cms_perm p," + schemaPrefix + "jbp_cms_perm_role r," +
schemaPrefix + "jbp_role_membership m," + schemaPrefix + "jbp_roles
roles," + schemaPrefix + "jbp_users users WHERE "
+ "p.id=r.cms_perm_id AND "
+ "r.role_id=roles.jbp_name AND "
+ "m.jbp_rid=roles.jbp_rid AND "
Show replies by date