Author: woonsan
Date: Fri Oct 9 15:55:13 2009
New Revision: 823599
URL: http://svn.apache.org/viewvc?rev=823599&view=rev
Log:
JS2-1071: Adding sso user account information management portlet
Added:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
(with props)
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
(with props)
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
(with props)
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOReverseProxyIFramePortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
Added:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java?rev=823599&view=auto
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
(added)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
Fri Oct 9 15:55:13 2009
@@ -0,0 +1,304 @@
+/*
+ * 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.portlets.security.sso;
+
+import java.io.IOException;
+import java.security.AccessController;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletException;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletResponse;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.security.auth.Subject;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.security.JSSubject;
+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.SSOManager;
+import org.apache.jetspeed.sso.SSOSite;
+import org.apache.jetspeed.sso.SSOUser;
+import org.apache.portals.applications.gems.browser.BrowserIterator;
+import org.apache.portals.applications.gems.browser.BrowserPortlet;
+import org.apache.portals.applications.gems.browser.DatabaseBrowserIterator;
+import org.apache.portals.applications.gems.browser.StatusMessage;
+import org.apache.portals.messaging.PortletMessaging;
+import org.apache.velocity.context.Context;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * SSOChangePasswordPortlet
+ *
+ * @version $Id$
+ */
+public class SSOChangePasswordPortlet extends BrowserPortlet
+{
+
+ static final Logger logger =
LoggerFactory.getLogger(SSOChangePasswordPortlet.class);
+
+ private SSOManager sso;
+ private UserManager userManager;
+
+ public void init(PortletConfig config)
+ throws PortletException
+ {
+ super.init(config);
+ sso =
(SSOManager)getPortletContext().getAttribute(CommonPortletServices.CPS_SSO_COMPONENT);
+ if (null == sso)
+ {
+ throw new PortletException("Failed to find the SSO Provider on
portlet initialization");
+ }
+ userManager = (UserManager)
getPortletContext().getAttribute(CommonPortletServices.CPS_USER_MANAGER_COMPONENT);
+ if (null == userManager)
+ {
+ throw new PortletException("Failed to find the User Manager on
portlet initialization");
+ }
+ }
+
+
+ public void getRows(RenderRequest request, String sql, int windowSize)
+ throws Exception
+ {
+ List resultSetTitleList = new ArrayList();
+ List resultSetTypeList = new ArrayList();
+ try
+ {
+ Collection<SSOSite> sites = sso.getSites("");
+
+ resultSetTypeList.add(String.valueOf(Types.VARCHAR));
+ resultSetTypeList.add(String.valueOf(Types.VARCHAR));
+ resultSetTitleList.add(0, "URL");
+ resultSetTitleList.add(1, "Site");
+
+ //subPopulate(rundata, qResult, repo, folder, null);
+ List list = new ArrayList();
+ if (sites != null){
+ for (SSOSite site : sites ){
+ List row = new ArrayList(2);
+ row.add(0, site.getURL());
+ row.add(1, site.getName());
+ list.add(row);
+ }
+ }
+ BrowserIterator iterator = new DatabaseBrowserIterator(
+ list, resultSetTitleList, resultSetTypeList,
+ windowSize);
+ setBrowserIterator(request, iterator);
+ iterator.sort("Site");
+ }
+ catch (Exception e)
+ {
+ logger.error("Exception in getRows: ", e);
+ throw e;
+ }
+ }
+
+ public void doView(RenderRequest request, RenderResponse response)
+ throws PortletException, IOException
+ {
+ String selectedSiteName = (String)PortletMessaging.receive(request,
"SSOChangePassword", "selectedName");
+ if (selectedSiteName != null)
+ {
+ Context context = this.getContext(request);
+ context.put("currentName", selectedSiteName);
+ context.put("currentUrl",
(String)PortletMessaging.receive(request, "SSOChangePassword", "selectedUrl"));
+ String ssoUsername = (String)PortletMessaging.receive(request,
"SSOChangePassword", "ssoUsername");
+ context.put("ssoUsername", ssoUsername);
+ }
+ StatusMessage msg = (StatusMessage)PortletMessaging.consume(request,
"SSOChangePassword", "status");
+ if (msg != null)
+ {
+ this.getContext(request).put("statusMsg", msg);
+ }
+
+ super.doView(request, response);
+ }
+
+ protected void clearPortletMessages(PortletRequest request,
PortletResponse response){
+ PortletMessaging.cancel(request, "SSOChangePassword", "selectedName");
+ PortletMessaging.cancel(request, "SSOChangePassword", "selectedUrl");
+ PortletMessaging.cancel(request, "SSOChangePassword", "ssoUsername");
+ }
+
+ protected void setPortletMessage(PortletRequest request, String key,
String msg) throws IOException{
+ if (StringUtils.isNotEmpty(msg)){
+ PortletMessaging.publish(request, "SSOChangePassword", key,
msg);
+ } else {
+ PortletMessaging.cancel(request, "SSOChangePassword", key);
+ }
+ }
+
+ public void processAction(ActionRequest request, ActionResponse response)
+ throws PortletException, IOException
+ {
+ if (request.getPortletMode() == PortletMode.VIEW)
+ {
+ String selectedSite = request.getParameter("ssoSite");
+ if (selectedSite != null)
+ {
+ SSOSite site = sso.getSiteByName(selectedSite);
+ if (site != null)
+ {
+ setPortletMessage(request, "selectedUrl", site.getURL());
+ setPortletMessage(request, "selectedName", site.getName());
+ setPortletMessage(request, "change", selectedSite);
+ setPortletMessage(request, "ssoUsername",
getRemoteUserName(request, site));
+ }
+ }
+ String refresh = request.getParameter("sso.refresh");
+ String save = request.getParameter("sso.save");
+ String delete = request.getParameter("sso.delete");
+
+ if (refresh != null)
+ {
+ this.clearBrowserIterator(request);
+ }
+ else if (delete != null)
+ {
+ String siteName = request.getParameter("site.name");
+
+ if (!StringUtils.isEmpty(siteName))
+ {
+ SSOSite site = sso.getSiteByName(siteName);
+
+ if (site != null)
+ {
+ removeRemoteUser(request, site);
+ this.clearBrowserIterator(request);
+ clearPortletMessages(request,response);
+ }
+ }
+ }
+ else if (save != null)
+ {
+ String siteName = request.getParameter("site.name");
+ String siteUrl = request.getParameter("site.url");
+ String ssoUsername = request.getParameter("ssoUsername");
+ String ssoPassword = request.getParameter("ssoPassword");
+
+ if (!StringUtils.isEmpty(siteName) &&
!StringUtils.isEmpty(siteUrl) && !StringUtils.isEmpty(ssoUsername) &&
!StringUtils.isEmpty(ssoPassword))
+ {
+ SSOSite site = null;
+ String old = (String)PortletMessaging.receive(request,
"site", "selectedName");
+ site = sso.getSiteByName(old != null ? old : siteName);
+
+ addOrUpdateRemoteUser(request, site, ssoUsername,
ssoPassword);
+
+ this.clearBrowserIterator(request);
+ PortletMessaging.publish(request, "SSOChangePassword",
"selectedName", siteName);
+ PortletMessaging.publish(request, "SSOChangePassword",
"selectedUrl", siteUrl);
+ PortletMessaging.publish(request, "SSOChangePassword",
"ssoUsername", ssoUsername);
+ }
+ }
+ }
+
+
request.getPortletSession().removeAttribute("org.apache.jetspeed.portlets.sso.ssoSiteCredsOfSubject",
PortletSession.APPLICATION_SCOPE);
+
+ super.processAction(request, response);
+
+ }
+
+ private String getRemoteUserName(PortletRequest request, SSOSite site)
+ {
+ String remoteUsername = null;
+
+ try
+ {
+ Subject subject =
JSSubject.getSubject(AccessController.getContext());
+ Collection<SSOUser> remoteUsers = sso.getRemoteUsers(site,
subject);
+
+ if (remoteUsers != null && !remoteUsers.isEmpty())
+ {
+ remoteUsername = remoteUsers.iterator().next().getName();
+ }
+ }
+ catch (SSOException e)
+ {
+ publishStatusMessage(request, "SSOChangePassword", "status", e,
"Could not retrieve sso user name");
+ }
+
+ return remoteUsername;
+ }
+
+ private void removeRemoteUser(PortletRequest request, SSOSite site)
+ {
+ try
+ {
+ Subject subject =
JSSubject.getSubject(AccessController.getContext());
+ Collection<SSOUser> remoteUsers = sso.getRemoteUsers(site,
subject);
+
+ if (remoteUsers != null && !remoteUsers.isEmpty())
+ {
+ sso.removeUser(remoteUsers.iterator().next());
+ }
+ }
+ catch (SSOException e)
+ {
+ publishStatusMessage(request, "SSOChangePassword", "status", e,
"Could not remove sso user");
+ }
+ }
+
+ private void addOrUpdateRemoteUser(PortletRequest request, SSOSite site,
String username, String password)
+ {
+ try
+ {
+ Subject subject =
JSSubject.getSubject(AccessController.getContext());
+ Collection<SSOUser> remoteUsers = sso.getRemoteUsers(site,
subject);
+
+ if (remoteUsers != null && !remoteUsers.isEmpty())
+ {
+ SSOUser ssoUser = remoteUsers.iterator().next();
+
+ if (!StringUtils.equals(ssoUser.getName(), username))
+ {
+ ssoUser.setName(username);
+ sso.updateUser(ssoUser);
+ }
+
+ sso.setPassword(ssoUser, password);
+ }
+ else
+ {
+ User user =
userManager.getUser(request.getUserPrincipal().getName());
+ sso.addUser(site, user, username, password);
+ }
+ }
+ catch (SSOException e)
+ {
+ publishStatusMessage(request, "SSOChangePassword", "status", e,
"Could not remove sso user");
+ }
+ catch (SecurityException e)
+ {
+ publishStatusMessage(request, "SSOChangePassword", "status", e,
"Could not retrieve jetspeed user");
+ }
+ }
+
+}
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
------------------------------------------------------------------------------
svn:keywords = Id
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/security/sso/SSOChangePasswordPortlet.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOReverseProxyIFramePortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOReverseProxyIFramePortlet.java?rev=823599&r1=823598&r2=823599&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOReverseProxyIFramePortlet.java
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOReverseProxyIFramePortlet.java
Fri Oct 9 15:55:13 2009
@@ -51,7 +51,7 @@
public class SSOReverseProxyIFramePortlet extends IFrameGenericPortlet
{
- public static final String SUBJECT_SSO_SITE_CREDS =
SSOReverseProxyIFramePortlet.class.getName() + ".ssoSiteCredsOfSubject";
+ public static final String SUBJECT_SSO_SITE_CREDS =
"org.apache.jetspeed.portlets.sso.ssoSiteCredsOfSubject";
private static Logger log =
LoggerFactory.getLogger(SSOReverseProxyIFramePortlet.class);
Added:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties?rev=823599&view=auto
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
(added)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
Fri Oct 9 15:55:13 2009
@@ -0,0 +1,34 @@
+# 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.
+#
+# LOCALIZATION MAINTAINER:
+# Jetspeed Development Team
+
+# portlet info
+javax.portlet.title=SSO Change Passwords
+javax.portlet.short-title=SSO Change Passwords
+javax.portlet.keywords=admin,security,SSO,password
+
+refresh = Refresh
+delete = Delete
+save = Save
+
+confirmToDeleteRemote=Confirm to Delete Remote:
+confirmDelete=Confirm Delete
+
+sitename=Site Name:
+siteurl=Site URL:
+sso_username = SSO User name:
+sso_password = SSO Password:
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
------------------------------------------------------------------------------
svn:keywords = Id
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/resources/org/apache/jetspeed/portlets/security/resources/SSOChangePasswordResources.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml?rev=823599&r1=823598&r2=823599&view=diff
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
(original)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
Fri Oct 9 15:55:13 2009
@@ -136,7 +136,43 @@
<keywords>security,user,password,admin,login</keywords>
</portlet-info>
</portlet>
-
+
+ <portlet id="SSOChangePasswordPortlet">
+ <description>You can edit SSO Site Credentials.</description>
+ <description xml:lang="ja">SSO
ç¾å¨ãã°ã¤ã³ä¸ã®ã¦ã¼ã¶ã¼ãã¹ã¯ã¼ãã夿´ãã¾ãã</description>
+ <description xml:lang="zh">SSO
æ´æ¹å½åç»éç¨æ·çå¯ç ã</description>
+ <description xml:lang="zh-TW">SSO
æ´æ¹ç¶åç»é¸ç¨æ¶çå¯ç¢¼ã</description>
+ <portlet-name>SSOChangePasswordPortlet</portlet-name>
+ <display-name>SSO Change Password</display-name>
+ <display-name xml:lang="ja">SSO ãã¹ã¯ã¼ã夿´</display-name>
+ <display-name xml:lang="zh">SSO æ´æ¹å¯ç </display-name>
+ <display-name xml:lang="zh-TW">SSO æ´æ¹å¯ç¢¼</display-name>
+
<portlet-class>org.apache.jetspeed.portlets.security.sso.SSOChangePasswordPortlet</portlet-class>
+ <init-param>
+ <description>This parameter sets the template used in view
+ mode.</description>
+ <name>ViewPage</name>
+ <value>/WEB-INF/security/sso/sso-changepwd-view.vm</value>
+ </init-param>
+ <init-param>
+ <name>portlet-icon</name>
+ <value>application-certificate.png</value>
+ </init-param>
+ <expiration-cache>-1</expiration-cache>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ </supports>
+ <supported-locale>en</supported-locale>
+ <resource-bundle>
+
org.apache.jetspeed.portlets.security.resources.SSOChangePasswordResources</resource-bundle>
+ <portlet-info>
+ <title>SSO Change Password</title>
+ <short-title>SSO Change Password</short-title>
+ <keywords>security,user,password,sso,admin,login</keywords>
+ </portlet-info>
+ </portlet>
+
<portlet id="SSOBrowserPortlet">
<description>SSO Sites Browser displays a list of all configured
SSO sites in the portal. From here you can select SSO Sites for
Added:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm?rev=823599&view=auto
==============================================================================
---
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
(added)
+++
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
Fri Oct 9 15:55:13 2009
@@ -0,0 +1,105 @@
+#*
+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.
+*#
+
+#**
+
+...@version $Id$
+
+*#
+
+#set ($MESSAGES = $portletConfig.getResourceBundle($renderRequest.Locale))
+
+#if ($statusMsg)
+#parse ('/WEB-INF/view/status-include.vm')
+#end
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+ <tr>
+ <td width='12' class="portlet-section-header"></td>
+ #set ($column = $title.get(1))
+ #set ($columnLink = $renderResponse.createRenderURL())
+ $columnLink.setParameter("js_dbcolumn",$column)
+ <td align='center' class="portlet-section-header" width="75%" nowrap>
+ $column
+ </td>
+ <td class=""></td>
+ </tr>
+ #foreach ( $ssoItem in $table )
+ <tr>
+ #set ($ssoName = $ssoItem.get(1))
+ #set ($ssoUrl = $ssoItem.get(0))
+ #if ($velocityCount % 2 == 0)
+ #set($rowstyle = "portlet-section-body")
+ #else
+ #set($rowstyle = "portlet-section-alternate")
+ #end
+
+ #if ($ssoName == $currentName)
+ <td class="$rowstyle" nowrap width='12'>
+ <img src="/j2-admin/images/selected.gif" />
+ </td>
+ #else
+ <td class="$rowstyle" nowrap width='12'>
+
+ </td>
+ #end
+
+ <td class="$rowstyle" nowrap width="40%">
+ #set ($action = $renderResponse.createActionURL())
+ $action.setParameter('ssoSite', $ssoName)
+ <div align="center"><a href='$action'>$ssoName</a></div>
+ </td>
+ <td class=""> </td>
+ </tr>
+ #end
+</table>
+<br/>
+<form name='ssoForm' action="$renderResponse.createActionURL()" method="post">
+<table>
+ <tr colspan="2" align="right">
+ <td nowrap class="portlet-section-alternate"
align="right">$MESSAGES.getString('sitename') </td>
+ <td class="portlet-section-body" align="left">
+ $!currentName
+ <input type="hidden" name="site.name" value="$!currentName"/>
+ </td>
+ </tr>
+ <tr colspan="2" align="right">
+ <td nowrap class="portlet-section-alternate"
align="right">$MESSAGES.getString('siteurl') </td>
+ <td class="portlet-section-body" align="left">
+ $!currentUrl
+ <input type="hidden" name="site.url" value="$!currentUrl"/>
+ </td>
+ </tr>
+ <tr colspan="2" align="right">
+ <td nowrap class="portlet-section-alternate"
align="right">$MESSAGES.getString('sso_username') </td>
+ <td class="portlet-section-body" align="left">
+ <input type="text" name="ssoUsername" size="30" value="$!ssoUsername"
class="portlet-form-field-label">
+ </td>
+ </tr>
+ <tr colspan="2" align="right">
+ <td nowrap class="portlet-section-alternate"
align="right">$MESSAGES.getString('sso_password') </td>
+ <td class="portlet-section-body" align="left">
+ <input type="password" name="ssoPassword" size="30"
class="portlet-form-field-label">
+ </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.delete' class="portlet-form-button" type="submit"
value="$MESSAGES.getString('delete')" />
+</form>
+
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/sso/sso-changepwd-view.vm
------------------------------------------------------------------------------
svn:keywords = Id
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]