taylor 2005/01/04 15:16:54 Modified: applications/security/src/java/org/apache/jetspeed/portlets/security/sso SSODetails.java SSOBrowser.java applications/security/src/webapp/WEB-INF/security/sso sites-details.vm Log: continued work on SSO Admin -- details view is now attached to the current row of the SSO Browser still under construction Revision Changes Path 1.2 +41 -51 jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/sso/SSODetails.java Index: SSODetails.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/sso/SSODetails.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SSODetails.java 3 Jan 2005 08:14:32 -0000 1.1 +++ SSODetails.java 4 Jan 2005 23:16:54 -0000 1.2 @@ -15,7 +15,6 @@ package org.apache.jetspeed.portlets.security.sso; import java.io.IOException; -import java.security.Principal; import java.sql.Types; import java.util.ArrayList; import java.util.Iterator; @@ -28,8 +27,12 @@ import javax.portlet.PortletMode; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; +import javax.security.auth.Subject; import org.apache.jetspeed.portlets.security.SecurityResources; +import org.apache.jetspeed.security.SecurityException; +import org.apache.jetspeed.security.User; +import org.apache.jetspeed.security.UserManager; import org.apache.jetspeed.sso.SSOException; import org.apache.jetspeed.sso.SSOProvider; import org.apache.jetspeed.sso.SSOSite; @@ -48,6 +51,7 @@ public class SSODetails extends BrowserPortlet { private SSOProvider sso; + private UserManager userManager; public void init(PortletConfig config) throws PortletException @@ -58,6 +62,11 @@ { throw new PortletException("Failed to find the SSO Provider on portlet initialization"); } + userManager = (UserManager) getPortletContext().getAttribute(SecurityResources.CPS_USER_MANAGER_COMPONENT); + if (null == userManager) + { + throw new PortletException("Failed to find the User Manager on portlet initialization"); + } } @@ -70,7 +79,7 @@ { SSOSite site = null; Iterator principals = null; - List list = new ArrayList(); + List list = null; resultSetTypeList.add(String.valueOf(Types.VARCHAR)); resultSetTitleList.add("Principal"); resultSetTypeList.add(String.valueOf(Types.VARCHAR)); @@ -80,14 +89,11 @@ if (selectedSite != null) { site = sso.getSite(selectedSite); - principals = site.getPrincipals().iterator(); - - // TODO: need to try to normalize List/Collection/Iterators - while (principals.hasNext()) - { - Principal p = (Principal)principals.next(); - list.add(p.getName()); - } + list = sso.getPrincipalsForSite(site); + } + else + { + list = new ArrayList(); } BrowserIterator iterator = new DatabaseBrowserIterator( list, resultSetTitleList, resultSetTypeList, @@ -105,14 +111,17 @@ public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException { + String change = (String)PortletMessaging.consume(request, "site", "change"); + if (change != null) + { + this.clearBrowserIterator(request); + } String selectedSite = (String)PortletMessaging.receive(request, "site", "selected"); if (selectedSite != null) { Context context = this.getContext(request); context.put("currentSite", selectedSite); - String selectedUrl = (String)PortletMessaging.receive(request, "site", "selectedUrl"); - context.put("currentUrl", selectedUrl); - } + } super.doView(request, response); } @@ -121,16 +130,6 @@ { if (request.getPortletMode() == PortletMode.VIEW) { - String selectedSite = request.getParameter("ssoSite"); - if (selectedSite != null) - { - SSOSite site = sso.getSite(selectedSite); - if (site != null) - { - PortletMessaging.publish(request, "site", "selected", selectedSite); - PortletMessaging.publish(request, "site", "selectedUrl", site.getSiteURL()); - } - } String refresh = request.getParameter("sso.refresh"); String save = request.getParameter("sso.save"); String neue = request.getParameter("sso.new"); @@ -140,39 +139,25 @@ } else if (neue != null) { - PortletMessaging.cancel(request, "site", "selected"); - PortletMessaging.cancel(request, "site", "selectedUrl"); + //PortletMessaging.cancel(request, "site", "selected"); + //PortletMessaging.cancel(request, "site", "selectedUrl"); } else if (save != null) { - String siteName = request.getParameter("site.name"); - String siteUrl = request.getParameter("site.url"); - if (!(isEmpty(siteName) || isEmpty(siteUrl))) + String portalPrincipal = request.getParameter("portal.principal"); + String remotePrincipal = request.getParameter("remote.principal"); + String remoteCredential = request.getParameter("remote.credential"); + if (!(isEmpty(remotePrincipal) || isEmpty(remotePrincipal) || isEmpty(remoteCredential))) { try { - SSOSite site = null; - String oldName = (String)PortletMessaging.receive(request, "site", "selected"); - if (oldName != null) - { - site = sso.getSite(oldName); - } - else - { - site = sso.getSite(siteName); - } - if (site != null) - { - site.setName(siteName); - site.setSiteURL(siteUrl); - sso.updateSite(site); - this.clearBrowserIterator(request); - PortletMessaging.publish(request, "site", "selected", siteName); - PortletMessaging.publish(request, "site", "selectedUrl", siteUrl); - } - else - { - sso.addSite(siteName, siteUrl); + String siteName = (String)PortletMessaging.receive(request, "site", "selected"); + SSOSite site = sso.getSite(siteName); + User user = userManager.getUser(portalPrincipal); + if (site != null && user != null) + { + Subject subject = user.getSubject(); + sso.addCredentialsForSite(subject, remotePrincipal, site.getSiteURL(), remoteCredential); this.clearBrowserIterator(request); } } @@ -181,6 +166,11 @@ // TODO: exception handling System.err.println("Exception storing site: " + e); } + catch (SecurityException se) + { + // TODO: exception handling + System.err.println("Exception storing site: " + se); + } } } } 1.3 +2 -1 jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/sso/SSOBrowser.java Index: SSOBrowser.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/applications/security/src/java/org/apache/jetspeed/portlets/security/sso/SSOBrowser.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SSOBrowser.java 3 Jan 2005 08:14:32 -0000 1.2 +++ SSOBrowser.java 4 Jan 2005 23:16:54 -0000 1.3 @@ -127,6 +127,7 @@ { PortletMessaging.publish(request, "site", "selected", selectedSite); PortletMessaging.publish(request, "site", "selectedUrl", site.getSiteURL()); + PortletMessaging.publish(request, "site", "change", selectedSite); } } String refresh = request.getParameter("sso.refresh"); 1.2 +14 -7 jakarta-jetspeed-2/applications/security/src/webapp/WEB-INF/security/sso/sites-details.vm Index: sites-details.vm =================================================================== RCS file: /home/cvs/jakarta-jetspeed-2/applications/security/src/webapp/WEB-INF/security/sso/sites-details.vm,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- sites-details.vm 3 Jan 2005 08:14:33 -0000 1.1 +++ sites-details.vm 4 Jan 2005 23:16:54 -0000 1.2 @@ -23,6 +23,7 @@ #set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale)) +#if ($currentSite) <table cellpadding=0 cellspacing=1 border=0 width='100%' > <tr> <td width='12' class="jetdbHeadNoLink"></td> @@ -52,11 +53,11 @@ #end <td class="$rowstyle" nowrap width="25%"> #set ($action = $renderResponse.createActionURL()) - $action.setParameter('ssoPrincipal', $principal) - <div align="center"><a href='$action'>$principal</a></div> + $action.setParameter('ssoPrincipal', $principal.PortalPrincipalName) + <div align="center"><a href='$action'>$principal.PortalPrincipalName</a></div> </td> <td class="$rowstyle" nowrap width="25%"> - <div align="center"><a href='$action'>REMOTE</a></div> + <div align="center"><a href='$action'>$principal.RemotePrincipalName</a></div> </td> <td class="$rowstyle" nowrap width='24' align='center'> <img src="/security/images/waste_bin.gif" width="20" height="15" border="0"/> @@ -82,19 +83,25 @@ <tr colspan="2" align="right"> <td nowrap class="portlet-section-alternate" align="right">Portal Principal: </td> <td class="portlet-section-body" align="left"> - <input type="text" name="site.name" size="40" value="$!currentP" class="portlet-form-label-field"> + <input type="text" name="portal.principal" size="40" value="$!currentP" class="portlet-form-label-field"> </td> </tr> <tr colspan="2" align="right"> <td nowrap class="portlet-section-alternate" align="right">Remote Principal: </td> <td class="portlet-section-body" align="left"> - <input type="text" name="site.url" size="40" value="$!currentR" class="portlet-form-label-field"> + <input type="text" name="remote.principal" size="40" value="$!currentR" class="portlet-form-label-field"> </td> </tr> + <tr colspan="2" align="right"> + <td nowrap class="portlet-section-alternate" align="right">Remote Credential: </td> + <td class="portlet-section-body" align="left"> + <input type="password" name="remote.credential" size="40" value="$!remoteCredential" class="portlet-form-label-field"> + </td> + </tr> </table> <br/> <input name='sso.save' type="submit" value="$MESSAGES.getString('save')" class="portlet-form-button"/> <input name='sso.refresh' class="portlet-form-button" type="submit" value="$MESSAGES.getString('refresh')" /> <input name='sso.new' class="portlet-form-button" type="submit" value="$MESSAGES.getString('new')" /> </form> - +#end
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]