You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@portals.apache.org by dd...@apache.org on 2009/01/16 11:43:09 UTC

svn commit: r734964 - in /portals/applications: ./ demo/ demo/src/main/webapp/WEB-INF/ gems/ gems/src/main/java/org/apache/portals/gems/browser/ rss/ rss/rss-jar/ rss/rss-war/

Author: ddam
Date: Fri Jan 16 02:43:00 2009
New Revision: 734964

URL: http://svn.apache.org/viewvc?rev=734964&view=rev
Log:
JS2-907 : changes necessary for refactored SSO implementation
- also fixed a bug in BrowserPorltlet and fixed some dependency problems

Modified:
    portals/applications/   (props changed)
    portals/applications/.project
    portals/applications/demo/   (props changed)
    portals/applications/demo/pom.xml
    portals/applications/demo/src/main/webapp/WEB-INF/jetspeed-portlet.xml
    portals/applications/gems/   (props changed)
    portals/applications/gems/.classpath
    portals/applications/gems/.project
    portals/applications/gems/pom.xml
    portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
    portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
    portals/applications/pom.xml
    portals/applications/rss/   (props changed)
    portals/applications/rss/rss-jar/   (props changed)
    portals/applications/rss/rss-war/   (props changed)

Propchange: portals/applications/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -0,0 +1,4 @@
+.settings
+bin
+target
+.classpath

Modified: portals/applications/.project
URL: http://svn.apache.org/viewvc/portals/applications/.project?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/.project (original)
+++ portals/applications/.project Fri Jan 16 02:43:00 2009
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>applications</name>
+	<name>applications2</name>
 	<comment></comment>
 	<projects>
 	</projects>
@@ -10,8 +10,14 @@
 			<arguments>
 			</arguments>
 		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
 		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
 	</natures>
 </projectDescription>

Propchange: portals/applications/demo/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -1,6 +1,6 @@
-
 target
 *.log
 .project
 .classpath
 jcoverage.ser
+.settings

Modified: portals/applications/demo/pom.xml
URL: http://svn.apache.org/viewvc/portals/applications/demo/pom.xml?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/demo/pom.xml (original)
+++ portals/applications/demo/pom.xml Fri Jan 16 02:43:00 2009
@@ -51,6 +51,13 @@
             <artifactId>velocity</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.portals.jetspeed-2</groupId>
+            <artifactId>jetspeed-api</artifactId>
+            <version>2.2-SNAPSHOT</version>
+            <scope>provided</scope>
+        </dependency>
+        
         <!-- Runtime Dependencies -->
         <dependency>
             <groupId>org.apache.portals.jetspeed-2</groupId>
@@ -58,13 +65,11 @@
             <version>2.2-SNAPSHOT</version>
             <scope>runtime</scope>
         </dependency>
-        <!-- FIXME: 
         <dependency>
-            <groupId>${pom.groupId}</groupId>
+            <groupId>org.apache.portals.applications</groupId>
             <artifactId>portals-gems</artifactId>
             <scope>runtime</scope>
         </dependency>
-        -->
         <dependency>
             <groupId>org.apache.portals.jetspeed-2</groupId>
             <artifactId>jetspeed-web-content</artifactId>
@@ -162,4 +167,4 @@
         <url>http://svn.apache.org/viewcvs.cgi/portals/jetspeed-2/trunk/applications/demo/</url>
     </scm>
 
-</project>
+</project>
\ No newline at end of file

Modified: portals/applications/demo/src/main/webapp/WEB-INF/jetspeed-portlet.xml
URL: http://svn.apache.org/viewvc/portals/applications/demo/src/main/webapp/WEB-INF/jetspeed-portlet.xml?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/demo/src/main/webapp/WEB-INF/jetspeed-portlet.xml (original)
+++ portals/applications/demo/src/main/webapp/WEB-INF/jetspeed-portlet.xml Fri Jan 16 02:43:00 2009
@@ -238,9 +238,11 @@
               cached portlets are not required to refresh while navigating around -->
         <js:metadata name="nonStandardAction">true</js:metadata>
     </portlet>
-
-	<js:services>
-	    <js:service name='SSO'/>
-	</js:services>
-	
-</portlet-app>
+    
+    <js:services>
+        <js:service name='PortalConfiguration'/>
+        <js:service name='SSO'/>
+        <js:service name='UserManager'/>
+    </js:services>
+    
+</portlet-app>
\ No newline at end of file

Propchange: portals/applications/gems/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -1,3 +1,4 @@
 maven.log
 target
 jcoverage.ser
+.settings

Modified: portals/applications/gems/.classpath
URL: http://svn.apache.org/viewvc/portals/applications/gems/.classpath?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/gems/.classpath (original)
+++ portals/applications/gems/.classpath Fri Jan 16 02:43:00 2009
@@ -1,36 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-  <classpathentry kind="src" path="src/java"/>
-  <classpathentry kind="output" path="target/classes"/>
-  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-  <classpathentry kind="var" path="M2_REPO/commons-dbcp/commons-dbcp/1.2.2/commons-dbcp-1.2.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-pool/commons-pool/1.3/commons-pool-1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-httpclient/commons-httpclient/3.0.1/commons-httpclient-3.0.1.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1.jar" sourcepath="M2_REPO/commons-lang/commons-lang/2.1/commons-lang-2.1-sources.jar">
-    <attributes>
-      <attribute value="jar:file://Users/dtaylor/.m2/repository/commons-lang/commons-lang/2.1/commons-lang-2.1-javadoc.jar!/" name="javadoc_location"/>
-    </attributes>
-  </classpathentry>
-  <classpathentry kind="var" path="M2_REPO/javax/portlet/portlet-api/2.0/portlet-api-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.4/servlet-api-2.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/javax/servlet/jsp/jsp-api/2.0/jsp-api-2.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/pluto/pluto-container-api/2.0.0-SNAPSHOT/pluto-container-api-2.0.0-SNAPSHOT.jar" sourcepath="M2_REPO/org/apache/pluto/pluto-container-api/2.0.0-SNAPSHOT/pluto-container-api-2.0.0-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/poi/poi/3.0-FINAL/poi-3.0-FINAL.jar"/>
-  <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/portals/bridges/portals-bridges-common/1.0.4/portals-bridges-common-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/portals/bridges/portals-bridges-velocity/1.0.4/portals-bridges-velocity-1.0.4.jar"/>
-  <classpathentry kind="var" path="M2_REPO/velocity/velocity/1.5/velocity-1.5.jar"/>
-  <classpathentry kind="var" path="M2_REPO/commons-collections/commons-collections/3.2/commons-collections-3.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/oro/oro/2.0.8/oro-2.0.8.jar"/>
-  <classpathentry kind="var" path="M2_REPO/velocity-tools/velocity-tools/1.3/velocity-tools-1.3.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-api/2.2-SNAPSHOT/jetspeed-api-2.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-api/2.2-SNAPSHOT/jetspeed-api-2.2-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-commons/2.2-SNAPSHOT/jetspeed-commons-2.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/apache/portals/jetspeed-2/jetspeed-commons/2.2-SNAPSHOT/jetspeed-commons-2.2-SNAPSHOT-sources.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/springframework/spring-beans/2.5.2/spring-beans-2.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/springframework/spring-core/2.5.2/spring-core-2.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/springframework/spring-portlet/2.0.6/spring-portlet-2.0.6.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/springframework/spring-context/2.5.2/spring-context-2.5.2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/springframework/spring-web/2.5.2/spring-web-2.5.2.jar"/>
-</classpath>
\ No newline at end of file
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Modified: portals/applications/gems/.project
URL: http://svn.apache.org/viewvc/portals/applications/gems/.project?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/gems/.project (original)
+++ portals/applications/gems/.project Fri Jan 16 02:43:00 2009
@@ -1,13 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-  <name>portals-gems-2.2-SNAPSHOT</name>
-  <comment>Reusable Portlets (Gems) for your Portlet Applications.</comment>
-  <projects/>
-  <buildSpec>
-    <buildCommand>
-      <name>org.eclipse.jdt.core.javabuilder</name>
-    </buildCommand>
-  </buildSpec>
-  <natures>
-    <nature>org.eclipse.jdt.core.javanature</nature>
-  </natures>
-</projectDescription>
\ No newline at end of file
+	<name>portals-gems</name>
+	<comment>Reusable Portlets (Gems) for your Portlet Applications.</comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Modified: portals/applications/gems/pom.xml
URL: http://svn.apache.org/viewvc/portals/applications/gems/pom.xml?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/gems/pom.xml (original)
+++ portals/applications/gems/pom.xml Fri Jan 16 02:43:00 2009
@@ -55,6 +55,7 @@
             <groupId>org.apache.portals.jetspeed-2</groupId>
             <artifactId>jetspeed-commons</artifactId>
             <version>2.2-SNAPSHOT</version>
+            <scope>provided</scope>
         </dependency>		
         <dependency>
             <groupId>commons-dbcp</groupId>
@@ -113,4 +114,4 @@
         <url>http://svn.apache.org/viewcvs.cgi/portals/jetspeed-2/trunk/applications/gems/</url>
     </scm>
 
-</project>
+</project>
\ No newline at end of file

Modified: portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java
URL: http://svn.apache.org/viewvc/portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java (original)
+++ portals/applications/gems/src/main/java/org/apache/portals/gems/browser/BrowserPortlet.java Fri Jan 16 02:43:00 2009
@@ -36,7 +36,10 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.jetspeed.sso.SSOProvider;
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.security.UserManager;
+import org.apache.jetspeed.services.JetspeedPortletServices;
+import org.apache.jetspeed.sso.SSOManager;
 import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
 import org.apache.portals.gems.util.StatusMessage;
 import org.apache.portals.messaging.PortletMessaging;
@@ -94,7 +97,9 @@
      * SSO link
      */
     protected PortletContext context;
-    protected SSOProvider sso;
+    protected SSOManager sso;
+    protected UserManager userManager;
+    
     /**
      * Static initialization of the logger for this class
      */
@@ -104,12 +109,17 @@
     {
         super.init(config);
         context = getPortletContext();
-        sso = (SSOProvider) context.getAttribute("cps:SSO");
+        sso = (SSOManager) context.getAttribute(CommonPortletServices.CPS_SSO_COMPONENT);
         if (null == sso)
         {
-            log.info("Warning: SSO provider not found.");
+            log.info("Warning: SSO Manager not found.");
             // throw new PortletException("Failed to find SSO Provider on portlet initialization");
         }
+        userManager = (UserManager) context.getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT); 
+        if (null == userManager)
+        {
+            log.info("Warning: User Manager not found.");
+        }
     }
 
     public void getRows(RenderRequest request, String sql, int windowSize) throws Exception
@@ -184,7 +194,7 @@
                 }
                        
                 context.put(BROWSER_ITERATOR, iterator);
-                context.put(BROWSER_TITLE_ITERATOR, getTitleList(request));
+                context.put(BROWSER_TITLE_ITERATOR, iterator.getResultSetTitleList());
                 context.put(BROWSER_TABLE_SIZE, new Integer(resultSetSize));
                 context.put(WINDOW_SIZE, new Integer(windowSize));
                 context.put(START, new Integer(start));

Modified: portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java
URL: http://svn.apache.org/viewvc/portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java (original)
+++ portals/applications/gems/src/main/java/org/apache/portals/gems/browser/DatabaseBrowserPortlet.java Fri Jan 16 02:43:00 2009
@@ -32,6 +32,7 @@
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
@@ -55,8 +56,11 @@
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.security.JSSubject;
-import org.apache.jetspeed.sso.SSOContext;
+import org.apache.jetspeed.security.JetspeedPrincipal;
+import org.apache.jetspeed.security.PasswordCredential;
 import org.apache.jetspeed.sso.SSOException;
+import org.apache.jetspeed.sso.SSOSite;
+import org.apache.jetspeed.sso.SSOUser;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
@@ -134,7 +138,7 @@
                 userObjListSize = userObjList.size();
             }
             // System.out.println("User List Size = "+ userObjListSize);
-            /*
+            /*SSOProvider
              * the array columnDisplayed maintains a boolean value for each column index. Only the columns that are set to true are added to the resultSetList,
              * resultSetTitleList and resultSetTypeList.
              */
@@ -417,23 +421,28 @@
                 ds.setDriverClassName(prefs.getValue("SSOJdbcDriver", ""));
                 ds.setUrl(prefs.getValue("SSOJdbcConnection", ""));
                 String ssoURL = prefs.getValue("SSOSite", "");
-                // SSO API lookup
-                SSOContext credentials = null;
-                try
-                {
-                    if (sso == null)
-                        throw new SSOException("SSO Not supported.");
-                    credentials = sso.getCredentials(getSubject(), ssoURL);
-                }
-                catch (SSOException ssoex)
-                {
-                    throw new Exception("SSO credential lookup failed. Error: " + ssoex.getMessage());
-                }
-                String ssoUserName = credentials.getRemotePrincipalName();
-                String ssoPWD = credentials.getRemoteCredential();
-                ds.setUsername(ssoUserName);
-                ds.setPassword(ssoPWD);
-                con = ds.getConnection();
+                
+                if (sso == null)
+                    throw new SSOException("SSO Not supported.");
+                
+                SSOSite site = sso.getSiteByUrl(ssoURL);
+                if (site != null){
+                    // SSO API lookup
+                    PasswordCredential credentials = null;
+                    JetspeedPrincipal principal = userManager.getUser(request.getUserPrincipal().getName());
+                	Collection<SSOUser> remoteUsers = sso.getRemoteUsers(site,principal);
+                	if (remoteUsers.size() == 1){
+                		credentials = sso.getCredentials(remoteUsers.iterator().next());	
+                	} else {
+                		throw new Exception("SSO credential lookup failed.");	
+                	}
+                        
+                    String ssoUserName = credentials.getUserName();
+                    String ssoPWD = credentials.getPassword();
+                    ds.setUsername(ssoUserName);
+                    ds.setPassword(ssoPWD);
+                    con = ds.getConnection();
+                }
             }
             else
             {
@@ -936,4 +945,4 @@
         //else if (databaseName.equals("apache derby"))
         return dataBaseQuery;
     }
-}
+}
\ No newline at end of file

Modified: portals/applications/pom.xml
URL: http://svn.apache.org/viewvc/portals/applications/pom.xml?rev=734964&r1=734963&r2=734964&view=diff
==============================================================================
--- portals/applications/pom.xml (original)
+++ portals/applications/pom.xml Fri Jan 16 02:43:00 2009
@@ -291,12 +291,12 @@
 
       <!-- Portals Applications JARs -->
       <dependency>
-        <groupId>org.apache.portals.jetspeed-2</groupId>
+        <groupId>org.apache.portals.applications</groupId>
         <artifactId>jetspeed-rss</artifactId>
         <version>${pom.version}</version>
       </dependency>
       <dependency>
-        <groupId>org.apache.portals.jetspeed-2</groupId>
+        <groupId>org.apache.portals.applications</groupId>
         <artifactId>portals-gems</artifactId>
         <version>${pom.version}</version>
       </dependency>
@@ -1158,4 +1158,4 @@
     </profile>
   </profiles>
 
-</project>
+</project>
\ No newline at end of file

Propchange: portals/applications/rss/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -1,3 +1,5 @@
-
 target
 jcoverage.ser
+.settings
+.classpath
+.project

Propchange: portals/applications/rss/rss-jar/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project

Propchange: portals/applications/rss/rss-war/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Fri Jan 16 02:43:00 2009
@@ -0,0 +1,4 @@
+.settings
+target
+.classpath
+.project