You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by rw...@apache.org on 2009/02/09 19:37:07 UTC
svn commit: r742669 [2/2] - in
/portals/jetspeed-2/portal/branches/JPA_BRANCH:
components/jetspeed-capability/src/test/resources/
components/jetspeed-page-manager/src/test/java/org/apache/jetspeed/page/
components/jetspeed-page-manager/src/test/resourc...
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/JetspeedPersistentSSOSiteManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/JetspeedPersistentSSOSiteManager.java?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/JetspeedPersistentSSOSiteManager.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/JetspeedPersistentSSOSiteManager.java Mon Feb 9 18:37:05 2009
@@ -0,0 +1,290 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.jetspeed.sso.spi.jpa;
+
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Comparator;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.Query;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.security.spi.jpa.SecurityManager;
+import org.apache.jetspeed.sso.SSOException;
+import org.apache.jetspeed.sso.SSOSite;
+import org.apache.jetspeed.sso.SSOUser;
+import org.apache.jetspeed.sso.jpa.SSOSiteImpl;
+import org.apache.jetspeed.sso.spi.SSOSiteManagerSPI;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author <a href="mailto:ddam@apache.org">Dennis Dam</a>
+ * @version $Id: JetspeedPersistentSSOSiteManager.java 736069 2009-01-20 19:10:43Z rwatler $
+ */
+@Repository
+public class JetspeedPersistentSSOSiteManager implements SSOSiteManagerSPI
+{
+ /* Logging */
+ private static final Log log = LogFactory.getLog(JetspeedPersistentSSOSiteManager.class);
+
+ /* Security manager component used to manage shared security context */
+ private final SecurityManager securityManager;
+
+ /**
+ * Create SSO site manager component that shares the security context
+ * and JPA persistence unit with the security component.
+ *
+ * @param securityManager shared security context
+ */
+ public JetspeedPersistentSSOSiteManager(SecurityManager securityManager)
+ {
+ this.securityManager = securityManager;
+ }
+
+ /**
+ * Get shared security context entity manager.
+ *
+ * @return entity manager.
+ */
+ public EntityManager getEntityManager()
+ {
+ return securityManager.getEntityManager();
+ }
+
+ @Transactional (readOnly=true)
+ public boolean exists(String siteUrl)
+ {
+ return getByUrl(siteUrl) != null;
+ }
+
+ @Transactional (readOnly=true)
+ public SSOSite getById(int id)
+ {
+ // query for sso site with id
+ EntityManager entityManager = getEntityManager();
+ Query siteQuery = entityManager.createNamedQuery("SSO_SITE");
+ siteQuery.setParameter("id", id);
+ try
+ {
+ return (SSOSite)siteQuery.getSingleResult();
+ }
+ catch (NoResultException nre)
+ {
+ }
+ return null;
+ }
+
+ @Transactional (readOnly=true)
+ public SSOSite getByName(String siteName)
+ {
+ // query for sso site with name
+ EntityManager entityManager = getEntityManager();
+ Query siteQuery = entityManager.createNamedQuery("SSO_SITE_NAME");
+ siteQuery.setParameter("name", siteName);
+ try
+ {
+ return (SSOSite)siteQuery.getSingleResult();
+ }
+ catch (NoResultException nre)
+ {
+ }
+ return null;
+ }
+
+ @Transactional (readOnly=true)
+ public SSOSite getByUrl(String siteUrl)
+ {
+ // query for sso site with url
+ EntityManager entityManager = getEntityManager();
+ Query siteQuery = entityManager.createNamedQuery("SSO_SITE_URL");
+ siteQuery.setParameter("url", siteUrl);
+ try
+ {
+ return (SSOSite)siteQuery.getSingleResult();
+ }
+ catch (NoResultException nre)
+ {
+ }
+ return null;
+ }
+
+ @Transactional (readOnly=true)
+ public SSOSite getSite(SSOUser ssoUser)
+ {
+ Collection<SSOSite> sitesForUser = getSites(Arrays.asList(new SSOUser[]{ssoUser}));
+ return ((sitesForUser.size() == 1) ? sitesForUser.iterator().next() : null);
+ }
+
+ @Transactional (readOnly=true)
+ @SuppressWarnings("unchecked")
+ public Collection<SSOSite> getSites(String filter)
+ {
+ // query for sso sites like name or url
+ EntityManager entityManager = getEntityManager();
+ Query sitesQuery = entityManager.createNamedQuery("SSO_SITE_LIKE_URL_NAME");
+ filter = filter.replaceAll("%", "\\%");
+ filter = "%"+filter+"%";
+ sitesQuery.setParameter("url", filter);
+ sitesQuery.setParameter("name", filter);
+ return sitesQuery.getResultList();
+ }
+
+ @Transactional (readOnly=true)
+ @SuppressWarnings("unchecked")
+ public Collection<SSOSite> getSites(Collection<SSOUser> users)
+ {
+ // get security domains from users
+ if (users.isEmpty())
+ {
+ return Collections.EMPTY_LIST;
+ }
+ List<Long> securityDomainIds = new ArrayList<Long>();
+ for (SSOUser user : users)
+ {
+ Long securityDomainId = user.getDomainId();
+ if ((securityDomainId != null) && !securityDomainIds.contains(securityDomainId))
+ {
+ securityDomainIds.add(securityDomainId);
+ }
+ }
+ if (securityDomainIds.isEmpty())
+ {
+ return Collections.EMPTY_LIST;
+ }
+ // query for sso sites by user security domains
+ List<SSOSite> sites = new ArrayList<SSOSite>();
+ for (Long securityDomainId : securityDomainIds)
+ {
+ EntityManager entityManager = getEntityManager();
+ Query sitesQuery = entityManager.createNamedQuery("SSO_SITE_DOMAIN");
+ sitesQuery.setParameter("domainId", securityDomainId);
+ for (SSOSite site : (List<SSOSite>)sitesQuery.getResultList())
+ {
+ if (!sites.contains(site))
+ {
+ sites.add(site);
+ }
+ }
+ }
+ // sort sso sites by name
+ Collections.sort(sites, new Comparator<SSOSite>()
+ {
+ public int compare(SSOSite site0, SSOSite site1)
+ {
+ if (site0.getName() == null)
+ {
+ if (site1.getName() == null)
+ {
+ return 0;
+ }
+ else
+ {
+ return Integer.MIN_VALUE;
+ }
+ }
+ else if (site1.getName() == null)
+ {
+ return Integer.MAX_VALUE;
+ }
+ return site0.getName().compareTo(site1.getName());
+ }
+ });
+ return sites;
+ }
+
+ public SSOSite newSite()
+ {
+ return new SSOSiteImpl();
+ }
+
+ @Transactional (readOnly=false, rollbackFor=SSOException.class)
+ public SSOSite add(SSOSite ssoSite) throws SSOException
+ {
+ try
+ {
+ // persist, (potentially detached), site
+ EntityManager entityManager = getEntityManager();
+ if (!((SSOSiteImpl)ssoSite).isNew())
+ {
+ ssoSite = entityManager.merge(ssoSite);
+ }
+ entityManager.persist(ssoSite);
+ // explicitly flush entity manager after update
+ entityManager.flush();
+ return ssoSite;
+ }
+ catch (Exception e)
+ {
+ String msg = "Unable to add SSO Site: " + ssoSite.getName();
+ log.error(msg, e);
+ throw new SSOException(msg, e);
+ }
+ }
+
+ @Transactional (readOnly=false, rollbackFor=SSOException.class)
+ public void remove(SSOSite site) throws SSOException
+ {
+ try
+ {
+ // remove, (potentially detached), site
+ EntityManager entityManager = getEntityManager();
+ if (!((SSOSiteImpl)site).isNew())
+ {
+ site = entityManager.merge(site);
+ }
+ entityManager.persist(site);
+ // explicitly flush entity manager after remove
+ entityManager.flush();
+ }
+ catch (Exception e)
+ {
+ String msg = "Unable to remove SSO Site: " + site.getName();
+ log.error(msg, e);
+ throw new SSOException(msg, e);
+ }
+ }
+
+ @Transactional (readOnly=false, rollbackFor=SSOException.class)
+ public void update(SSOSite site) throws SSOException
+ {
+ try
+ {
+ // persist, (potentially detached), site
+ EntityManager entityManager = getEntityManager();
+ if (!((SSOSiteImpl)site).isNew())
+ {
+ site = entityManager.merge(site);
+ }
+ entityManager.persist(site);
+ // explicitly flush entity manager after update
+ entityManager.flush();
+ }
+ catch (Exception e)
+ {
+ String msg = "Unable to remove SSO Site: " + site.getName();
+ log.error(msg, e);
+ throw new SSOException(msg, e);
+ }
+ }
+}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/SSOUserManagerSPIImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/SSOUserManagerSPIImpl.java?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/SSOUserManagerSPIImpl.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/java/org/apache/jetspeed/sso/spi/jpa/SSOUserManagerSPIImpl.java Mon Feb 9 18:37:05 2009
@@ -0,0 +1,180 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.jetspeed.sso.spi.jpa;
+
+import java.util.Collection;
+
+import org.apache.jetspeed.security.JetspeedPrincipal;
+import org.apache.jetspeed.security.JetspeedPrincipalType;
+import org.apache.jetspeed.security.PasswordCredential;
+import org.apache.jetspeed.security.SecurityException;
+import org.apache.jetspeed.security.spi.JetspeedDomainPrincipalAccessManager;
+import org.apache.jetspeed.security.spi.JetspeedPrincipalAccessManager;
+import org.apache.jetspeed.security.spi.JetspeedPrincipalStorageManager;
+import org.apache.jetspeed.security.spi.SecurityDomainAccessManager;
+import org.apache.jetspeed.security.spi.UserPasswordCredentialAccessManager;
+import org.apache.jetspeed.security.spi.UserPasswordCredentialStorageManager;
+import org.apache.jetspeed.sso.SSOUser;
+import org.apache.jetspeed.sso.jpa.SSOUserImpl;
+import org.apache.jetspeed.sso.spi.SSOUserManagerSPI;
+import org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author <a href="mailto:ddam@apache.org">Dennis Dam</a>
+ * @version $Id: SSOUserManagerSPIImpl.java 736069 2009-01-20 19:10:43Z rwatler $
+ */
+@Repository
+public class SSOUserManagerSPIImpl extends AbstractSSOUserManagerSPIImpl implements SSOUserManagerSPI
+{
+ private static final long serialVersionUID = 8515336406606927772L;
+
+ public SSOUserManagerSPIImpl(JetspeedPrincipalType principalType, JetspeedPrincipalAccessManager jpam, JetspeedPrincipalStorageManager jpsm, UserPasswordCredentialStorageManager credentialStorageManager,
+ UserPasswordCredentialAccessManager credentialAccessManager, JetspeedDomainPrincipalAccessManager domainPrincipalAccess, SecurityDomainAccessManager domainAccess)
+ {
+ super(principalType, jpam, jpsm, credentialStorageManager, credentialAccessManager, domainPrincipalAccess, domainAccess);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.SSOUserManagerSPI#newUser(java.lang.String, java.lang.Long)
+ */
+ public SSOUser newUser(String name, Long domainId)
+ {
+ SSOUserImpl user = new SSOUserImpl();
+ user.setDomainId(domainId);
+ user.setName(name);
+ return user;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#addUser(java.lang.String, java.lang.Long, org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public SSOUser addUser(String userName, Long domainId, JetspeedPrincipal ownerPrincipal) throws SecurityException
+ {
+ return super.addUser(userName, domainId, ownerPrincipal);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#removeUser(java.lang.String, java.lang.Long)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void removeUser(String userName, Long domainId) throws SecurityException
+ {
+ super.removeUser(userName, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#userExists(java.lang.String, java.lang.Long)
+ */
+ @Transactional (readOnly=true)
+ public boolean userExists(String userName, Long domainId)
+ {
+ return super.userExists(userName, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getUser(java.lang.String, java.lang.Long)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public SSOUser getUser(String userName, Long domainId) throws SecurityException
+ {
+ return super.getUser(userName, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getUsers(java.lang.String, java.lang.Long)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public Collection<SSOUser> getUsers(String nameFilter, Long domainId) throws SecurityException
+ {
+ return super.getUsers(nameFilter, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getUsers(org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public Collection<SSOUser> getUsers(JetspeedPrincipal principal) throws SecurityException
+ {
+ return super.getUsers(principal);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getUsers(org.apache.jetspeed.security.JetspeedPrincipal, java.lang.Long)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public Collection<SSOUser> getUsers(JetspeedPrincipal principal, Long domainId) throws SecurityException
+ {
+ return super.getUsers(principal, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getUserNames(java.lang.String, java.lang.Long)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public Collection<String> getUserNames(String nameFilter, Long domainId) throws SecurityException
+ {
+ return super.getUserNames(nameFilter, domainId);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#updateUser(org.apache.jetspeed.sso.SSOUser)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void updateUser(SSOUser user) throws SecurityException
+ {
+ super.updateUser(user);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getPasswordCredential(org.apache.jetspeed.sso.SSOUser)
+ */
+ @Transactional (readOnly=true, rollbackFor=SecurityException.class)
+ public PasswordCredential getPasswordCredential(SSOUser user) throws SecurityException
+ {
+ return super.getPasswordCredential(user);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#storePasswordCredential(org.apache.jetspeed.security.PasswordCredential)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void storePasswordCredential(PasswordCredential credential) throws SecurityException
+ {
+ super.storePasswordCredential(credential);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#addSSOUserToPrincipal(org.apache.jetspeed.sso.SSOUser, org.apache.jetspeed.security.JetspeedPrincipal)
+ */
+ @Transactional (readOnly=false, rollbackFor=SecurityException.class)
+ public void addSSOUserToPrincipal(SSOUser user, JetspeedPrincipal principal) throws SecurityException
+ {
+ super.addSSOUserToPrincipal(user, principal);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.sso.spi.impl.AbstractSSOUserManagerSPIImpl#getPortalPrincipals(org.apache.jetspeed.sso.SSOUser, java.lang.Long)
+ */
+ @Transactional (readOnly=true)
+ public Collection<JetspeedPrincipal> getPortalPrincipals(SSOUser remoteUser, Long portalPrincipalDomain)
+ {
+ return super.getPortalPrincipals(remoteUser, portalPrincipalDomain);
+ }
+}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/resources/META-INF/persistence.xml?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/resources/META-INF/persistence.xml (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/main/resources/META-INF/persistence.xml Mon Feb 9 18:37:05 2009
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
+
+ <persistence-unit name="jetspeed-security" transaction-type="JTA">
+
+ <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+
+ <jta-data-source>jetspeed-xa</jta-data-source>
+ <non-jta-data-source>jetspeed</non-jta-data-source>
+
+ <class>org.apache.jetspeed.sso.jpa.SSOSiteImpl</class>
+ <class>org.apache.jetspeed.sso.jpa.SSOUserImpl</class>
+
+ <exclude-unlisted-classes>true</exclude-unlisted-classes>
+
+ </persistence-unit>
+
+</persistence>
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/AbstractSecurityTestCase.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/AbstractSecurityTestCase.java?rev=742669&r1=742668&r2=742669&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/AbstractSecurityTestCase.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/AbstractSecurityTestCase.java Mon Feb 9 18:37:05 2009
@@ -25,17 +25,14 @@
import javax.security.auth.Subject;
import org.apache.jetspeed.JetspeedActions;
-import org.apache.jetspeed.components.util.DatasourceEnabledSpringTestCase;
+import org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase;
import org.apache.jetspeed.security.GroupManager;
-import org.apache.jetspeed.security.JetspeedPermission;
import org.apache.jetspeed.security.PasswordCredential;
-import org.apache.jetspeed.security.PermissionManager;
import org.apache.jetspeed.security.RoleManager;
import org.apache.jetspeed.security.SecurityDomain;
import org.apache.jetspeed.security.User;
import org.apache.jetspeed.security.UserManager;
import org.apache.jetspeed.security.SecurityException;
-import org.apache.jetspeed.security.impl.SecurityDomainImpl;
import org.apache.jetspeed.security.spi.SecurityDomainAccessManager;
import org.apache.jetspeed.security.spi.SecurityDomainStorageManager;
@@ -46,7 +43,7 @@
* @version $Id$
*
*/
-public abstract class AbstractSecurityTestCase extends DatasourceEnabledSpringTestCase
+public abstract class AbstractSecurityTestCase extends JPADatasourceEnabledSpringTestCase
{
/** The user manager. */
protected UserManager ums;
@@ -57,9 +54,6 @@
/** The role manager. */
protected RoleManager rms;
- /** The permission manager. */
- protected PermissionManager pms;
-
/** needed to seed default domain
* TODO: can be removed once the default seed has been adjusted to include the default and system domain
*
@@ -80,22 +74,21 @@
rms = (RoleManager) scm.getComponent("org.apache.jetspeed.security.RoleManager");
// Authorization.
- pms = (PermissionManager) scm.getComponent("org.apache.jetspeed.security.PermissionManager");
domainStorageManager = (SecurityDomainStorageManager) scm.getComponent(SecurityDomainStorageManager.class.getName());
domainAccessManager = (SecurityDomainAccessManager) scm.getComponent("org.apache.jetspeed.security.spi.SecurityDomainAccessManager");
// TODO: remove when default seed contains the default domain
SecurityDomain domain = domainAccessManager.getDomainByName(SecurityDomain.SYSTEM_NAME);
- if (domain == null){
-
- SecurityDomainImpl newDomain = new SecurityDomainImpl();
+ if (domain == null)
+ {
+ SecurityDomain newDomain = domainStorageManager.newDomain();
newDomain.setName(SecurityDomain.SYSTEM_NAME);
domainStorageManager.addDomain(newDomain);
}
domain = domainAccessManager.getDomainByName(SecurityDomain.DEFAULT_NAME);
- if (domain == null){
-
- SecurityDomainImpl newDomain = new SecurityDomainImpl();
+ if (domain == null)
+ {
+ SecurityDomain newDomain = domainStorageManager.newDomain();
newDomain.setName(SecurityDomain.DEFAULT_NAME);
domainStorageManager.addDomain(newDomain);
}
@@ -104,15 +97,11 @@
new JetspeedActions(new String[] {"secure"}, new String[] {});
destroyPrincipals();
- destroyPermissions();
-
-
}
protected void tearDown() throws Exception
{
destroyPrincipals();
- destroyPermissions();
super.tearDown();
}
@@ -196,12 +185,4 @@
}
}
}
-
- protected void destroyPermissions() throws Exception
- {
- for (JetspeedPermission p : pms.getPermissions())
- {
- pms.removePermission(p);
- }
- }
}
\ No newline at end of file
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOComponent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOComponent.java?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOComponent.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOComponent.java Mon Feb 9 18:37:05 2009
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.jetspeed.sso;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.jetspeed.security.spi.jpa.SecurityManagerContext;
+
+/**
+ * TestOpenJPASSOComponent
+ *
+ * @author <a href="rwatler@apache.org">Randy Watler</a>
+ * @version $Id: $
+ */
+public class TestOpenJPASSOComponent extends TestSSOComponent
+{
+ private SecurityManagerContext context;
+
+ /**
+ * Create test suite.
+ *
+ * @return test suite to execute.
+ */
+ public static Test suite()
+ {
+ // All methods starting with "test" will be executed in the test suite.
+ return new TestSuite(TestOpenJPASSOComponent.class);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.AbstractSecurityTestcase#getBeanDefinitionFilterCategories()
+ */
+ protected String getBeanDefinitionFilterCategories()
+ {
+ return "default,jdbcDS";
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.AbstractSecurityTestcase#getConfigurations()
+ */
+ protected String[] getConfigurations()
+ {
+ return new String[]{"openjpa-sso.xml"};
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
+ */
+ protected void startConversationalTxn()
+ {
+ // create scoped context bean for thread transaction
+ context = (SecurityManagerContext)scm.createPrototypeComponent("securityManagerContext");
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
+ */
+ protected void endConversationalTxn()
+ {
+ // destroy scoped context bean for thread transaction
+ scm.destroyPrototypeComponent("securityManagerContext", context);
+ }
+}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOManager.java?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOManager.java (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestOpenJPASSOManager.java Mon Feb 9 18:37:05 2009
@@ -0,0 +1,78 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.jetspeed.sso;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.jetspeed.security.spi.jpa.SecurityManagerContext;
+
+/**
+ * TestOpenJPASSOManager
+ *
+ * @author <a href="rwatler@apache.org">Randy Watler</a>
+ * @version $Id: $
+ */
+public class TestOpenJPASSOManager extends TestSSOManager
+{
+ private SecurityManagerContext context;
+
+ /**
+ * Create test suite.
+ *
+ * @return test suite to execute.
+ */
+ public static Test suite()
+ {
+ // All methods starting with "test" will be executed in the test suite.
+ return new TestSuite(TestOpenJPASSOManager.class);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.AbstractSecurityTestcase#getBeanDefinitionFilterCategories()
+ */
+ protected String getBeanDefinitionFilterCategories()
+ {
+ return "default,jdbcDS";
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.security.AbstractSecurityTestcase#getConfigurations()
+ */
+ protected String[] getConfigurations()
+ {
+ return new String[]{"openjpa-sso.xml"};
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#startConversationalTxn()
+ */
+ protected void startConversationalTxn()
+ {
+ // create scoped context bean for thread transaction
+ context = (SecurityManagerContext)scm.createPrototypeComponent("securityManagerContext");
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.jetspeed.components.util.jpa.JPADatasourceEnabledSpringTestCase#endConversationalTxn()
+ */
+ protected void endConversationalTxn()
+ {
+ // destroy scoped context bean for thread transaction
+ scm.destroyPrototypeComponent("securityManagerContext", context);
+ }
+}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOComponent.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOComponent.java?rev=742669&r1=742668&r2=742669&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOComponent.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOComponent.java Mon Feb 9 18:37:05 2009
@@ -94,13 +94,13 @@
return new TestSuite(TestSSOComponent.class);
}
-// /**
-// * <p>
-// * Test user root.
-// * </p>
-// */
-// public void testSSOGroup() throws Exception
-// {
+ /**
+ * <p>
+ * Test user root.
+ * </p>
+ */
+ public void testSSOGroup() throws Exception
+ {
// System.out.println("*************************************\n" + "Start Unit Test for SSO Group Support"
// + "\n*************************************");
//
@@ -226,10 +226,10 @@
// assertTrue("could not remove user and group. exception caught: " + sex, false);
// }
//
-// }
-//
-// public void testSSO() throws Exception
-// {
+ }
+
+ public void testSSO() throws Exception
+ {
// System.out.println("***************************\nStart Unit Test for SSO API\n***************************");
//
// // Create a user
@@ -366,7 +366,7 @@
// throw new Exception(ssoex.getMessage());
// }
//
-// }
+ }
/**
* <p>
@@ -384,8 +384,8 @@
protected String[] getConfigurations()
{
String[] confs = super.getConfigurations();
- List confList = new ArrayList(Arrays.asList(confs));
+ List<String> confList = new ArrayList<String>(Arrays.asList(confs));
confList.add("sso.xml");
- return (String[]) confList.toArray(new String[1]);
+ return confList.toArray(new String[confList.size()]);
}
}
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOManager.java?rev=742669&r1=742668&r2=742669&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOManager.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/java/org/apache/jetspeed/sso/TestSSOManager.java Mon Feb 9 18:37:05 2009
@@ -33,8 +33,7 @@
import org.apache.jetspeed.security.PrincipalTypeManager;
import org.apache.jetspeed.security.Role;
import org.apache.jetspeed.security.User;
-import org.apache.jetspeed.security.impl.RoleImpl;
-import org.apache.jetspeed.sso.impl.SSOUserImpl;
+import org.apache.jetspeed.sso.spi.SSOUserManagerSPI;
/**
* @author <a href="mailto:ddam@apache.org">Dennis Dam</a>
@@ -53,7 +52,8 @@
public static final String ANOTHER_TESTGROUP = "anotherTestGroup";
/** The property manager. */
- private static SSOManager ssoManager = null;
+ private SSOManager ssoManager = null;
+ private SSOUserManagerSPI ssoUserManager = null;
private User testuser;
private User anotherTestuser;
@@ -294,7 +294,8 @@
});
// add a Jetspeed role principal ==> should be ignored as well
- s.getPrincipals().add(new RoleImpl("someRole"));
+ Role someRole = rms.newRole("someRole", false);
+ s.getPrincipals().add(someRole);
users = ssoManager.getRemoteUsers(testSite,s);
assertEquals(2,users.size());
@@ -398,18 +399,38 @@
}
- public void testCredentials() throws Exception {
+ public void testCredentials() throws Exception
+ {
addTestUser();
addTestSite();
-
+
+ // add new user
SSOUser someRemoteUser = ssoManager.addUser(testSite, testuser, "someRemoteUser", "someRemotePwd");
PasswordCredential pwd = ssoManager.getCredentials(someRemoteUser);
- assertEquals("someRemotePwd",pwd.getPassword());
-
- ssoManager.setPassword(someRemoteUser,"anotherPassword");
+ assertEquals("someRemotePwd", pwd.getPassword());
+
+ // force restart transaction to simulate next request;
+ // transient password change tracking should not let
+ // password change take effect in transaction
+ endConversationalTxn();
+ startConversationalTxn();
+
+ // test and set password
+ someRemoteUser = ssoManager.getRemoteUser(testSite, "someRemoteUser");
pwd = ssoManager.getCredentials(someRemoteUser);
- assertEquals("anotherPassword",pwd.getPassword());
+ assertEquals("someRemotePwd", pwd.getPassword());
+ ssoManager.setPassword(someRemoteUser, "anotherPassword");
+
+ // force restart transaction to simulate next request;
+ // transient password change tracking should not let
+ // password change take effect in transaction
+ endConversationalTxn();
+ startConversationalTxn();
+ // verify committed set password
+ someRemoteUser = ssoManager.getRemoteUser(testSite, "someRemoteUser");
+ pwd = ssoManager.getCredentials(someRemoteUser);
+ assertEquals("anotherPassword", pwd.getPassword());
}
public void testFetchPortalPrincipals() throws Exception {
@@ -428,13 +449,9 @@
Collection<JetspeedPrincipal> fetchedPrincipals = ssoManager.getPortalPrincipals(addedUser);
assertEquals(4,fetchedPrincipals.size());
- SSOUserImpl nonExistingUser = new SSOUserImpl();
- nonExistingUser.setName("fake");
- nonExistingUser.setDomainId(addedUser.getDomainId());
+ SSOUser nonExistingUser = ssoUserManager.newUser("fake", addedUser.getDomainId());
fetchedPrincipals = ssoManager.getPortalPrincipals(nonExistingUser);
assertEquals(0,fetchedPrincipals.size());
-
-
}
public void addTestSite() throws Exception {
@@ -471,6 +488,7 @@
try
{
ssoManager = (SSOManager) scm.getComponent("org.apache.jetspeed.sso.SSOManager");
+ ssoUserManager = (SSOUserManagerSPI) scm.getComponent("org.apache.jetspeed.sso.spi.impl.SSOUserManagerSPIImpl");
}
catch (Exception ex)
{
@@ -478,9 +496,7 @@
throw new Exception("Exception while setup SSO TEST");
}
-
clean();
-
}
@@ -547,8 +563,8 @@
protected String[] getConfigurations()
{
String[] confs = super.getConfigurations();
- List confList = new ArrayList(Arrays.asList(confs));
+ List<String> confList = new ArrayList<String>(Arrays.asList(confs));
confList.add("sso.xml");
- return (String[]) confList.toArray(new String[1]);
+ return confList.toArray(new String[confList.size()]);
}
}
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jndi.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jndi.properties?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jndi.properties (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jndi.properties Mon Feb 9 18:37:05 2009
@@ -0,0 +1,25 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+# ------------------------------------------------------------------------
+#
+# JNDI Naming Configuration
+#
+# $Id: $
+#
+# ------------------------------------------------------------------------
+
+java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory
+java.naming.factory.url.pkgs=org.apache.naming
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jpa-sso.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jpa-sso.xml?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jpa-sso.xml (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/jpa-sso.xml Mon Feb 9 18:37:05 2009
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd">
+
+ <!-- Jetspeed XA DataSource -->
+ <bean id="JetspeedXADS" class="org.springframework.jndi.JndiObjectFactoryBean">
+ <property name="resourceRef" value="false"/>
+ <property name="jndiName" value="java:comp/env/jdbc/jetspeed-xa"/>
+ </bean>
+
+ <!-- JPA Configuration -->
+ <bean id="persistenceUnitManager" class="org.apache.jetspeed.components.rdbms.jpa.MergingPersistenceUnitManager">
+ <property name="dataSources">
+ <map>
+ <entry key="jetspeed-xa" value-ref="JetspeedXADS"/>
+ <entry key="jetspeed" value-ref="JetspeedDS"/>
+ </map>
+ </property>
+ <property name="defaultDataSource" ref="JetspeedDS"/>
+ <property name="persistenceXmlLocations">
+ <list>
+ <value>classpath*:META-INF/persistence.xml</value>
+ </list>
+ </property>
+ </bean>
+ <bean id="abstractEntityManagerFactory" abstract="true" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
+ <property name="persistenceUnitManager" ref="persistenceUnitManager"/>
+ </bean>
+
+ <!-- Spring/Atomikos/JTA Transaction Manager -->
+ <bean id="atomikosUserTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" init-method="init" destroy-method="shutdownForce">
+ <constructor-arg>
+ <props>
+ <!-- standard atomikos standalone configuration -->
+ <prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory</prop>
+ <!-- server/process name overrides for log file names -->
+ <prop key="com.atomikos.icatch.tm_unique_name">${com.atomikos.icatch.tm_unique_name}</prop>
+ <prop key="com.atomikos.icatch.log_base_dir">${com.atomikos.icatch.log_base_dir}</prop>
+ <prop key="com.atomikos.icatch.log_base_name">${com.atomikos.icatch.log_base_name}</prop>
+ <prop key="com.atomikos.icatch.output_dir">${com.atomikos.icatch.output_dir}</prop>
+ <prop key="com.atomikos.icatch.console_file_name">${com.atomikos.icatch.console_file_name}</prop>
+ </props>
+ </constructor-arg>
+ </bean>
+ <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" depends-on="atomikosUserTransactionService">
+ <property name="forceShutdown" value="true"/>
+ </bean>
+ <bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
+ <property name="transactionManager" ref="atomikosTransactionManager"/>
+ <property name="userTransactionName" value="java:comp/UserTransaction"/>
+ </bean>
+ <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
+
+ <!-- Spring Transaction Annotations -->
+ <tx:annotation-driven transaction-manager="jtaTransactionManager"/>
+
+ <!-- JPA/OpenJPA Security/SSO Components -->
+ <bean id="org.apache.jetspeed.sso.spi.SSOSiteManager" class="org.apache.jetspeed.sso.spi.jpa.JetspeedPersistentSSOSiteManager">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.CredentialPasswordEncoder" class="org.apache.jetspeed.security.spi.impl.MessageDigestCredentialPasswordEncoder">
+ <constructor-arg index="0"><value>SHA-1</value></constructor-arg>
+ </bean>
+ <bean id="org.apache.jetspeed.security.CredentialPasswordValidator" class="org.apache.jetspeed.security.spi.impl.DefaultCredentialPasswordValidator">
+ </bean>
+ <bean id="org.apache.jetspeed.security.spi.UserPasswordCredentialPolicyManager" class="org.apache.jetspeed.security.spi.jpa.UserPasswordCredentialPolicyManagerImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.CredentialPasswordEncoder"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.CredentialPasswordValidator"/>
+ <constructor-arg index="2">
+ <list>
+ <bean class="org.apache.jetspeed.security.spi.impl.ValidatePasswordOnLoadInterceptor"/>
+ <bean class="org.apache.jetspeed.security.spi.impl.EncodePasswordOnFirstLoadInterceptor"/>
+ </list>
+ </constructor-arg>
+ </bean>
+ <bean id="org.apache.jetspeed.security.spi.UserPasswordCredentialManager" class="org.apache.jetspeed.security.spi.jpa.UserPasswordCredentialManagerImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.UserPasswordCredentialPolicyManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.JetspeedPrincipalType.user" class="org.apache.jetspeed.security.impl.JetspeedPrincipalTypeImpl">
+ <constructor-arg index="0" value="user"/>
+ <constructor-arg index="1" value="org.apache.jetspeed.security.jpa.UserImpl"/>
+ <constructor-arg index="2">
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypesImpl">
+ <constructor-arg index="0"><value>true</value></constructor-arg>
+ <constructor-arg index="1"><value>false</value></constructor-arg>
+ <constructor-arg index="2">
+ <list>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="org.apache.jetspeed.user.subsite"/>
+ <constructor-arg index="1" value="jetspeed"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="org.apache.jetspeed.prefered.locale"/>
+ <constructor-arg index="1" value="jetspeed"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="user.name.given"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="user.name.family"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ </list>
+ </constructor-arg>
+ </bean>
+ </constructor-arg>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.JetspeedPrincipalType.role" class="org.apache.jetspeed.security.impl.JetspeedPrincipalTypeImpl">
+ <constructor-arg index="0" value="role"/>
+ <constructor-arg index="1" value="org.apache.jetspeed.security.jpa.RoleImpl"/>
+ <constructor-arg index="2">
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypesImpl">
+ <constructor-arg index="0"><value>true</value></constructor-arg>
+ <constructor-arg index="1"><value>false</value></constructor-arg>
+ <constructor-arg index="2">
+ <list>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="role.display.name"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ </list>
+ </constructor-arg>
+ </bean>
+ </constructor-arg>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.JetspeedPrincipalType.group" class="org.apache.jetspeed.security.impl.JetspeedPrincipalTypeImpl">
+ <constructor-arg index="0" value="group"/>
+ <constructor-arg index="1" value="org.apache.jetspeed.security.jpa.GroupImpl"/>
+ <constructor-arg index="2">
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypesImpl">
+ <constructor-arg index="0"><value>true</value></constructor-arg>
+ <constructor-arg index="1"><value>false</value></constructor-arg>
+ <constructor-arg index="2">
+ <list>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="group.display.name"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ </list>
+ </constructor-arg>
+ </bean>
+ </constructor-arg>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.JetspeedPrincipalType.sso_user" class="org.apache.jetspeed.security.impl.JetspeedPrincipalTypeImpl">
+ <constructor-arg index="0" value="sso_user"/>
+ <constructor-arg index="1" value="org.apache.jetspeed.sso.jpa.SSOUserImpl"/>
+ <constructor-arg index="2">
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypesImpl">
+ <constructor-arg index="0"><value>true</value></constructor-arg>
+ <constructor-arg index="1"><value>false</value></constructor-arg>
+ <constructor-arg index="2">
+ <list>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="org.apache.jetspeed.user.subsite"/>
+ <constructor-arg index="1" value="jetspeed"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="org.apache.jetspeed.prefered.locale"/>
+ <constructor-arg index="1" value="jetspeed"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="org.apache.jetspeed.sso.user.shared"/>
+ <constructor-arg index="1" value="jetspeed"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="user.name.given"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ <bean class="org.apache.jetspeed.security.impl.SecurityAttributeTypeImpl">
+ <constructor-arg index="0" value="user.name.family"/>
+ <constructor-arg index="1" value="info"/>
+ </bean>
+ </list>
+ </constructor-arg>
+ </bean>
+ </constructor-arg>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.UserManager" class="org.apache.jetspeed.security.jpa.UserManagerImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.JetspeedPrincipalType.user"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.JetspeedPrincipalType.role"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.JetspeedPrincipalType.group"/>
+ <constructor-arg index="3" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="4" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="5" ref="org.apache.jetspeed.security.spi.UserPasswordCredentialManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.GroupManager" class="org.apache.jetspeed.security.jpa.GroupManagerImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.JetspeedPrincipalType.group"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.JetspeedPrincipalType.user"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.JetspeedPrincipalType.role"/>
+ <constructor-arg index="3" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="4" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.RoleManager" class="org.apache.jetspeed.security.jpa.RoleManagerImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.JetspeedPrincipalType.role"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.JetspeedPrincipalType.user"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.JetspeedPrincipalType.group"/>
+ <constructor-arg index="3" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="4" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.sso.SSOUserManager" name="org.apache.jetspeed.sso.spi.impl.SSOUserManagerSPIImpl" class="org.apache.jetspeed.sso.spi.jpa.SSOUserManagerSPIImpl">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.JetspeedPrincipalType.sso_user"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="3" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="4" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="5" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <constructor-arg index="6" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="userIsMemberOfRoleAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.UserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.RoleManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="userIsMemberOfGroupAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.UserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="groupIsMemberOfRoleAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsMemberOfPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.RoleManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="roleIsARoleAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsAPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.RoleManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="roleIsPartOfRoleAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsPartOfPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.RoleManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="groupIsAGroupAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsAPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="groupIsPartOfGroupAssociationHandler" class="org.apache.jetspeed.security.spi.impl.IsPartOfPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="ssoUserIsOwnedByUserAssociationHandler" class="org.apache.jetspeed.sso.impl.IsOwnedByPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.sso.SSOUserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.UserManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="ssoUserIsOwnedByGroupAssociationHandler" class="org.apache.jetspeed.sso.impl.IsOwnedByPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.sso.SSOUserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="ssoUserIsRelatedToUserAssociationHandler" class="org.apache.jetspeed.sso.impl.IsRemoteIdentityForPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.sso.SSOUserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.UserManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+ <bean id="ssoUserIsRelatedGroupAssociationHandler" class="org.apache.jetspeed.sso.impl.IsRemoteIdentityForPrincipalAssociationHandler">
+ <constructor-arg index="0" ref="org.apache.jetspeed.sso.SSOUserManager"/>
+ <constructor-arg index="1" ref="org.apache.jetspeed.security.GroupManager"/>
+ <constructor-arg index="2" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+ <bean id="org.apache.jetspeed.security.spi.JetspeedPrincipalManagerProvider" class="org.apache.jetspeed.security.impl.JetspeedPrincipalManagerProviderImpl">
+ <constructor-arg index="0">
+ <set>
+ <ref bean="org.apache.jetspeed.security.UserManager"/>
+ <ref bean="org.apache.jetspeed.security.GroupManager"/>
+ <ref bean="org.apache.jetspeed.security.RoleManager"/>
+ <ref bean="org.apache.jetspeed.sso.SSOUserManager"/>
+ </set>
+ </constructor-arg>
+ </bean>
+ <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+ <property name="targetClass" value="org.apache.jetspeed.security.impl.TransientJetspeedPrincipal"/>
+ <property name="targetMethod" value="setJetspeedPrincipalManagerProvider"/>
+ <property name="arguments">
+ <list>
+ <ref bean="org.apache.jetspeed.security.spi.JetspeedPrincipalManagerProvider"/>
+ </list>
+ </property>
+ </bean>
+ <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
+ <property name="targetClass" value="org.apache.jetspeed.security.impl.BaseJetspeedPrincipalManager"/>
+ <property name="targetMethod" value="setJetspeedPrincipalManagerProvider"/>
+ <property name="arguments">
+ <list>
+ <ref bean="org.apache.jetspeed.security.spi.JetspeedPrincipalManagerProvider"/>
+ </list>
+ </property>
+ </bean>
+
+ <bean id="org.apache.jetspeed.sso.SSOManager" class="org.apache.jetspeed.sso.impl.SSOManagerImpl">
+ <property name="userManager" ref="org.apache.jetspeed.security.UserManager"/>
+ <property name="SSOUserManagerSPI" ref="org.apache.jetspeed.sso.SSOUserManager"/>
+ <property name="domainAccessManager" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <property name="domainStorageManager" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ <property name="SSOSiteManagerSPI" ref="org.apache.jetspeed.sso.spi.SSOSiteManager"/>
+ </bean>
+
+ <!-- JPA Security Manager Context -->
+ <bean id="securityManagerContext" class="org.apache.jetspeed.security.spi.jpa.SecurityManagerContext" scope="prototype" init-method="initialize" destroy-method="terminate">
+ <property name="securityManager" ref="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager"/>
+ </bean>
+
+</beans>
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/log4j.properties?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/log4j.properties (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/log4j.properties Mon Feb 9 18:37:05 2009
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+# ------------------------------------------------------------------------
+#
+# Logging Configuration
+#
+# $Id: log4j.properties 731466 2009-01-05 06:04:13Z rwatler $
+#
+# ------------------------------------------------------------------------
+
+log4j.rootCategory = ERROR, errorlogging
+
+#log4j.category.openjpa.Tool = INFO, infologging
+#log4j.category.openjpa.Runtime = INFO, infologging
+#log4j.category.openjpa.Remote = WARN, infologging
+#log4j.category.openjpa.DataCache = WARN, infologging
+#log4j.category.openjpa.MetaData = WARN, infologging
+#log4j.category.openjpa.Enhance = WARN, infologging
+#log4j.category.openjpa.Query = WARN, infologging
+#log4j.category.openjpa.jdbc.SQL = WARN, infologging
+#log4j.category.openjpa.jdbc.JDBC = WARN, infologging
+#log4j.category.openjpa.jdbc.Schema = WARN, infologging
+
+log4j.category.org.springframework = DEBUG, infologging
+log4j.additivity.org.springframework = false
+
+log4j.category.openjpa.Tool = TRACE, infologging
+log4j.additivity.openjpa.Tool = false
+log4j.category.openjpa.Runtime = TRACE, infologging
+log4j.additivity.openjpa.Runtime = false
+log4j.category.openjpa.Remote = TRACE, infologging
+log4j.additivity.openjpa.Remote = false
+log4j.category.openjpa.DataCache = TRACE, infologging
+log4j.additivity.openjpa.DataCache = false
+log4j.category.openjpa.MetaData = TRACE, infologging
+log4j.additivity.openjpa.MetaData = false
+log4j.category.openjpa.Enhance = TRACE, infologging
+log4j.additivity.openjpa.Enhance = false
+log4j.category.openjpa.Query = TRACE, infologging
+log4j.additivity.openjpa.Query = false
+log4j.category.openjpa.jdbc.SQL = TRACE, infologging
+log4j.additivity.openjpa.jdbc.SQL = false
+#log4j.category.openjpa.jdbc.JDBC = TRACE, infologging
+log4j.category.openjpa.jdbc.JDBC = DEBUG, infologging
+log4j.additivity.openjpa.jdbc.JDBC = false
+log4j.category.openjpa.jdbc.Schema = TRACE, infologging
+log4j.additivity.openjpa.jdbc.Schema = false
+
+log4j.category.org.apache.jetspeed = DEBUG, infologging
+log4j.additivity.org.apache.jetspeed = false
+
+log4j.category.atomikos = DEBUG, infologging
+log4j.additivity.atomikos = false
+
+log4j.appender.errorlogging = org.apache.log4j.FileAppender
+log4j.appender.errorlogging.file = ${basedir}/target/surefire-reports/tests-error.log
+log4j.appender.errorlogging.layout = org.apache.log4j.PatternLayout
+log4j.appender.errorlogging.layout.conversionPattern = %d [%t] %-5p %c - %m%n
+log4j.appender.errorlogging.append = false
+
+log4j.appender.infologging = org.apache.log4j.FileAppender
+log4j.appender.infologging.file = ${basedir}/target/surefire-reports/tests-info.log
+log4j.appender.infologging.layout = org.apache.log4j.PatternLayout
+log4j.appender.infologging.layout.conversionPattern = %d [%t] %-5p %c - %m%n
+log4j.appender.infologging.append = false
Added: portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/openjpa-sso.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/openjpa-sso.xml?rev=742669&view=auto
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/openjpa-sso.xml (added)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/components/jetspeed-sso/src/test/resources/openjpa-sso.xml Mon Feb 9 18:37:05 2009
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:tx="http://www.springframework.org/schema/tx"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+ http://www.springframework.org/schema/tx
+ http://www.springframework.org/schema/tx/spring-tx.xsd">
+
+ <import resource="jpa-sso.xml"/>
+
+ <!-- OpenJPA/Atomikos Configuration -->
+ <bean id="jpaSecurityProperties" class="org.apache.jetspeed.components.rdbms.jpa.OpenJPAConfigurationProperties">
+ <property name="jpaProperties">
+ <props>
+ <prop key="openjpa.ConnectionFactoryMode">managed</prop>
+ <prop key="openjpa.TransactionMode">managed</prop>
+ <prop key="openjpa.ManagedRuntime">invocation(TransactionManagerMethod=com.atomikos.icatch.jta.TransactionManagerImp.getTransactionManager)</prop>
+ </props>
+ </property>
+ </bean>
+ <bean id="securityEntityManagerFactory" parent="abstractEntityManagerFactory">
+ <property name="persistenceUnitName" value="jetspeed-security"/>
+ <property name="jpaProperties" ref="jpaSecurityProperties"/>
+ <property name="jpaDialect">
+ <bean class="org.springframework.orm.jpa.vendor.OpenJpaDialect"/>
+ </property>
+ </bean>
+
+ <!-- OpenJPA Security Components -->
+ <bean id="org.apache.jetspeed.security.spi.JetspeedSecurityPersistenceManager" name="org.apache.jetspeed.security.spi.SecurityDomainStorageManager,org.apache.jetspeed.security.spi.SecurityDomainAccessManager" class="org.apache.jetspeed.security.spi.jpa.OpenJPAJetspeedSecurityPersistenceManager" init-method="initialize" destroy-method="terminate">
+ </bean>
+
+</beans>
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalType.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalType.java?rev=742669&r1=742668&r2=742669&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalType.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/JetspeedPrincipalType.java Mon Feb 9 18:37:05 2009
@@ -32,8 +32,8 @@
String ROLE = "role";
/** build-in supported JetspeedPrincipalType "user" */
String USER = "user";
- /** build-in supported JetspeedPrincipalType "ssoUser" */
- String SSO_USER = "ssoUser";
+ /** build-in supported JetspeedPrincipalType "sso_user" */
+ String SSO_USER = "sso_user";
/**
* The name to identify the type of a JetspeedPrincipal.
Modified: portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityDomain.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityDomain.java?rev=742669&r1=742668&r2=742669&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityDomain.java (original)
+++ portals/jetspeed-2/portal/branches/JPA_BRANCH/jetspeed-api/src/main/java/org/apache/jetspeed/security/SecurityDomain.java Mon Feb 9 18:37:05 2009
@@ -40,6 +40,14 @@
* @return name
*/
String getName();
+
+
+ /**
+ * Set unique string identifier for this domain.
+ *
+ * @param name
+ */
+ void setName(String name);
/**
* Returns the id of the domain which is the owner of this domain. This feature is used
@@ -50,6 +58,13 @@
Long getOwnerDomainId();
/**
+ * Set id of the domain which is the owner of this domain.
+ *
+ * @param domainId
+ */
+ void setOwnerDomainId(Long domainId);
+
+ /**
* Returns whether this domain constitutes a local (false) or remote (true) domain. Remote
* domains are accessed via the SSO component.
* @return remote
@@ -57,8 +72,22 @@
boolean isRemote();
/**
+ * Set whether this domain constitutes a local or remote domain.
+ *
+ * @param remote
+ */
+ void setRemote(boolean remote);
+
+ /**
* Returns whether this domain is enabled or not.
* @return enabled
*/
boolean isEnabled();
+
+ /**
+ * Set whether this domain is enabled or not.
+ *
+ * @param enabled
+ */
+ void setEnabled(boolean enabled);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org