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 2010/02/13 22:52:17 UTC
svn commit: r909922 - in
/portals/jetspeed-2/applications/j2-admin/trunk/src/main:
java/org/apache/jetspeed/portlets/openid/ webapp/WEB-INF/
webapp/WEB-INF/security/login/
Author: rwatler
Date: Sat Feb 13 21:52:16 2010
New Revision: 909922
URL: http://svn.apache.org/viewvc?rev=909922&view=rev
Log:
JS2-1101: OpenID Support Update
---------------------------------------------------------------
- add additional configuration parameters and preferences to OpenIDLoginPortlet
- provider button labels and OpenID hosts/domains
- flag to enable/disable OpenID provider/URL entry
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/openid/OpenIDLoginPortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/portlet.xml
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login-prefs.jsp
portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login.jsp
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/openid/OpenIDLoginPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/openid/OpenIDLoginPortlet.java?rev=909922&r1=909921&r2=909922&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/openid/OpenIDLoginPortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/openid/OpenIDLoginPortlet.java Sat Feb 13 21:52:16 2010
@@ -17,6 +17,11 @@
package org.apache.jetspeed.portlets.openid;
import java.io.IOException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
@@ -49,6 +54,14 @@
{
private static final Logger log = LoggerFactory.getLogger(OpenIDLoginPortlet.class);
+ public static final String PROVIDER_LABELS_INIT_PARAM_NAME = "providerLabels";
+ public static final String PROVIDER_DOMAINS_INIT_PARAM_NAME = "providerDomains";
+ public static final String ENABLE_OPEN_ID_ENTRY_INIT_PARAM_NAME = "enableOpenIDEntry";
+
+ public static final String PROVIDER_LABELS_PREF_NAME = "providerLabels";
+ public static final String PROVIDER_DOMAINS_PREF_NAME = "providerDomains";
+ public static final String ENABLE_OPEN_ID_ENTRY_PREF_NAME = "enableOpenIDEntry";
+
public static final String ENABLE_REGISTRATION_CONFIG_PREF_NAME = "enableRegistrationConfig";
public static final String ENABLE_REGISTRATION_PREF_NAME = "enableRegistration";
public static final String REGISTRATION_USER_TEMPLATE_PREF_NAME = "newUserTemplateDirectory";
@@ -59,18 +72,30 @@
public static final String REGISTRATION_PROFILER_RULE_VALUES_PREF_NAME = "rulesValues";
public static final String SAVE_ACTION_PARAM_NAME = "save";
+
+ public static final String PROVIDER_BUTTONS_ATTR_NAME = "providerButtons";
+ public static final String ENABLE_OPEN_ID_ENTRY_ATTR_NAME = "enableOpenIDEntry";
- private static final String [] REGISTRATION_PREF_NAMES = new String[]{ENABLE_REGISTRATION_CONFIG_PREF_NAME,
- ENABLE_REGISTRATION_PREF_NAME,
- REGISTRATION_USER_TEMPLATE_PREF_NAME,
- REGISTRATION_SUBSITE_ROOT_PREF_NAME,
- REGISTRATION_ROLES_PREF_NAME,
- REGISTRATION_GROUPS_PREF_NAME,
- REGISTRATION_PROFILER_RULE_NAMES_PREF_NAME,
- REGISTRATION_PROFILER_RULE_VALUES_PREF_NAME};
+ private static final List<String> PREF_NAMES = Arrays.asList(new String[]{PROVIDER_LABELS_PREF_NAME,
+ PROVIDER_DOMAINS_PREF_NAME,
+ ENABLE_OPEN_ID_ENTRY_PREF_NAME,
+ ENABLE_REGISTRATION_CONFIG_PREF_NAME,
+ ENABLE_REGISTRATION_PREF_NAME,
+ REGISTRATION_USER_TEMPLATE_PREF_NAME,
+ REGISTRATION_SUBSITE_ROOT_PREF_NAME,
+ REGISTRATION_ROLES_PREF_NAME,
+ REGISTRATION_GROUPS_PREF_NAME,
+ REGISTRATION_PROFILER_RULE_NAMES_PREF_NAME,
+ REGISTRATION_PROFILER_RULE_VALUES_PREF_NAME});
+ private static final List<String> BOOLEAN_PREF_NAMES = Arrays.asList(new String[]{ENABLE_OPEN_ID_ENTRY_PREF_NAME,
+ ENABLE_REGISTRATION_CONFIG_PREF_NAME,
+ ENABLE_REGISTRATION_PREF_NAME});
private static final String OPEN_ID_RELAYING_PARTY_SERVLET_MAPPING = "/openid";
- OpenIDRegistrationConfiguration initRegistrationConfiguration;
+ private List<String> initProviderLabels;
+ private List<String> initProviderDomains;
+ private boolean initEnableOpenIDEntry;
+ private OpenIDRegistrationConfiguration initRegistrationConfiguration;
/* (non-Javadoc)
* @see org.apache.portals.bridges.common.GenericServletPortlet#init(javax.portlet.PortletConfig)
@@ -80,6 +105,9 @@
super.init(config);
// registration configuration parameters
+ initProviderLabels = OpenIDRegistrationConfiguration.parseParameterList(config.getInitParameter(PROVIDER_LABELS_INIT_PARAM_NAME));
+ initProviderDomains = OpenIDRegistrationConfiguration.parseParameterList(config.getInitParameter(PROVIDER_DOMAINS_INIT_PARAM_NAME));
+ initEnableOpenIDEntry = Boolean.parseBoolean(config.getInitParameter(ENABLE_OPEN_ID_ENTRY_INIT_PARAM_NAME));
if (Boolean.parseBoolean(config.getInitParameter(OpenIDConstants.ENABLE_REGISTRATION_CONFIG_INIT_PARAM_NAME)))
{
initRegistrationConfiguration = new OpenIDRegistrationConfiguration();
@@ -126,6 +154,35 @@
*/
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
{
+ // provider button labels and domains
+ PortletPreferences prefs = request.getPreferences();
+ List<String> providerButtonLabels = OpenIDRegistrationConfiguration.parseParameterList(prefs.getValue(PROVIDER_LABELS_PREF_NAME, null));
+ List<String> providerButtonDomains = OpenIDRegistrationConfiguration.parseParameterList(prefs.getValue(PROVIDER_DOMAINS_PREF_NAME, null));
+ if ((providerButtonLabels == null) || providerButtonLabels.isEmpty() || (providerButtonDomains == null) || providerButtonDomains.isEmpty())
+ {
+ providerButtonLabels = initProviderLabels;
+ providerButtonDomains = initProviderDomains;
+ }
+ if ((providerButtonLabels != null) && !providerButtonLabels.isEmpty() && (providerButtonDomains != null) && !providerButtonDomains.isEmpty())
+ {
+ Map<String,String> providerButtons = new LinkedHashMap<String,String>();
+ Iterator<String> labelsIter = providerButtonLabels.iterator();
+ Iterator<String> domainsIter = providerButtonDomains.iterator();
+ while (labelsIter.hasNext() && domainsIter.hasNext())
+ {
+ providerButtons.put(domainsIter.next(), labelsIter.next());
+ }
+ request.setAttribute(PROVIDER_BUTTONS_ATTR_NAME, providerButtons);
+ }
+ // enable OpenID entry
+ boolean enableOpenIDEntry = initEnableOpenIDEntry;
+ String enableOpenIDEntryPref = prefs.getValue(ENABLE_OPEN_ID_ENTRY_PREF_NAME, null);
+ if (enableOpenIDEntryPref != null)
+ {
+ enableOpenIDEntry = Boolean.parseBoolean(enableOpenIDEntryPref);
+ }
+ request.setAttribute(ENABLE_OPEN_ID_ENTRY_ATTR_NAME, Boolean.toString(enableOpenIDEntry));
+
// access login errors in session from OpenIDRelayingPartyServlet
RequestContext requestContext = (RequestContext)request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
String errorCode = (String)requestContext.getSessionAttribute(OpenIDConstants.OPEN_ID_ERROR);
@@ -144,9 +201,9 @@
*/
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException
{
- // access registration preferences to edit
+ // access provider and registration preferences to edit
PortletPreferences prefs = request.getPreferences();
- for (String prefName : REGISTRATION_PREF_NAMES)
+ for (String prefName : PREF_NAMES)
{
String prefValue = prefs.getValue(prefName, null);
if (prefValue != null)
@@ -232,10 +289,10 @@
// default preferences edit mode
if (actionRequest.getParameter(SAVE_ACTION_PARAM_NAME) != null)
{
- // save preferences
+ // save provider and registration preferences
PortletPreferences prefs = actionRequest.getPreferences();
boolean storePrefs = false;
- for (String prefName : REGISTRATION_PREF_NAMES)
+ for (String prefName : PREF_NAMES)
{
String prefValue = actionRequest.getParameter(prefName);
if ((prefValue != null) && (prefValue.length() > 0))
@@ -246,6 +303,15 @@
storePrefs = true;
}
}
+ else if (BOOLEAN_PREF_NAMES.indexOf(prefName) != -1)
+ {
+ String booleanPrefValue = prefs.getValue(prefName, null);
+ if ((booleanPrefValue == null) || !booleanPrefValue.equals("false"))
+ {
+ prefs.setValue(prefName, "false");
+ storePrefs = true;
+ }
+ }
else if (prefs.getValue(prefName, null) != null)
{
prefs.setValue(prefName, null);
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=909922&r1=909921&r2=909922&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 Sat Feb 13 21:52:16 2010
@@ -116,6 +116,21 @@
<value>/WEB-INF/security/login/openid-login-prefs.jsp</value>
</init-param>
<init-param>
+ <description>Display names for OpenID provider buttons.</description>
+ <name>providerLabels</name>
+ <value>Gmail, Yahoo!, myOpenID</value>
+ </init-param>
+ <init-param>
+ <description>Domain names for OpenID provider buttons.</description>
+ <name>providerDomains</name>
+ <value>gmail.com, yahoo.com, myopenid.com</value>
+ </init-param>
+ <init-param>
+ <description>Enable OpenID provider or URL entry.</description>
+ <name>enableOpenIDEntry</name>
+ <value>true</value>
+ </init-param>
+ <init-param>
<description>Enable portlet init parameter registration configuration.</description>
<name>enableRegistrationConfig</name>
<value>false</value>
@@ -167,6 +182,21 @@
</supports>
<resource-bundle>org.apache.jetspeed.portlets.security.resources.OpenIDLoginResources</resource-bundle>
<portlet-preferences>
+ <!-- Display names for OpenID provider buttons. -->
+ <preference>
+ <name>providerLabels</name>
+ <value>Gmail, Yahoo!, myOpenID</value>
+ </preference>
+ <!-- Domain names for OpenID provider buttons. -->
+ <preference>
+ <name>providerDomains</name>
+ <value>gmail.com, yahoo.com, myopenid.com</value>
+ </preference>
+ <!-- Enable OpenID provider or URL entry. -->
+ <preference>
+ <name>enableOpenIDEntry</name>
+ <value>true</value>
+ </preference>
<!-- Enable portlet preferences registration configuration. -->
<preference>
<name>enableRegistrationConfig</name>
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login-prefs.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login-prefs.jsp?rev=909922&r1=909921&r2=909922&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login-prefs.jsp (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login-prefs.jsp Sat Feb 13 21:52:16 2010
@@ -23,6 +23,12 @@
<portlet:defineObjects/>
<c_rt:set var="saveAction" value="<%=OpenIDLoginPortlet.SAVE_ACTION_PARAM_NAME%>"/>
+<c_rt:set var="providerLabelsPrefName" value="<%=OpenIDLoginPortlet.PROVIDER_LABELS_PREF_NAME%>"/>
+<c_rt:set var="providerLabels" value="<%=renderRequest.getAttribute(OpenIDLoginPortlet.PROVIDER_LABELS_PREF_NAME)%>"/>
+<c_rt:set var="providerDomainsPrefName" value="<%=OpenIDLoginPortlet.PROVIDER_DOMAINS_PREF_NAME%>"/>
+<c_rt:set var="providerDomains" value="<%=renderRequest.getAttribute(OpenIDLoginPortlet.PROVIDER_DOMAINS_PREF_NAME)%>"/>
+<c_rt:set var="enableOpenIDEntryPrefName" value="<%=OpenIDLoginPortlet.ENABLE_OPEN_ID_ENTRY_PREF_NAME%>"/>
+<c_rt:set var="enableOpenIDEntry" value="<%=Boolean.parseBoolean((String)renderRequest.getAttribute(OpenIDLoginPortlet.ENABLE_OPEN_ID_ENTRY_PREF_NAME))%>"/>
<c_rt:set var="enableConfigPrefName" value="<%=OpenIDLoginPortlet.ENABLE_REGISTRATION_CONFIG_PREF_NAME%>"/>
<c_rt:set var="enableConfig" value="<%=Boolean.parseBoolean((String)renderRequest.getAttribute(OpenIDLoginPortlet.ENABLE_REGISTRATION_CONFIG_PREF_NAME))%>"/>
<c_rt:set var="enablePrefName" value="<%=OpenIDLoginPortlet.ENABLE_REGISTRATION_PREF_NAME%>"/>
@@ -44,7 +50,25 @@
<form method="POST" action='<portlet:actionURL/>'>
<table border="0">
<tr>
- <td nowrap align="right" class="portlet-section-alternate">Enable Preferences: </td>
+ <td nowrap align="right" class="portlet-section-alternate">OpenId Provider Labels: </td>
+ <td align="left" class="portlet-section-body">
+ <input type="text" size="40" name="${providerLabelsPrefName}" value="${providerLabels}" class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap align="right" class="portlet-section-alternate">OpenId Provider Domains: </td>
+ <td align="left" class="portlet-section-body">
+ <input type="text" size="40" name="${providerDomainsPrefName}" value="${providerDomains}" class="portlet-form-field-label"/>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap align="right" class="portlet-section-alternate">Enable OpenID provider or URL entry: </td>
+ <td align="left" class="portlet-section-body">
+ <input type="checkbox" name="${enableOpenIDEntryPrefName}" value="true" <c:if test="${enableOpenIDEntry == 'true'}">checked</c:if>/>
+ </td>
+ </tr>
+ <tr>
+ <td nowrap align="right" class="portlet-section-alternate">Enable Registration Preferences: </td>
<td align="left" class="portlet-section-body">
<input type="checkbox" name="${enableConfigPrefName}" value="true" <c:if test="${enableConfig == 'true'}">checked</c:if>/>
</td>
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login.jsp?rev=909922&r1=909921&r2=909922&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login.jsp (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/security/login/openid-login.jsp Sat Feb 13 21:52:16 2010
@@ -20,6 +20,7 @@
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet"%>
<%@page import="org.apache.jetspeed.openid.OpenIDConstants"%>
+<%@page import="org.apache.jetspeed.portlets.openid.OpenIDLoginPortlet"%>
<fmt:setBundle basename="org.apache.jetspeed.portlets.security.resources.OpenIDLoginResources"/>
@@ -32,6 +33,9 @@
<c_rt:set var="openIDLogoutRequest" value="<%=OpenIDConstants.OPEN_ID_LOGOUT_REQUEST%>"/>
<c_rt:set var="openIDError" value="<%=renderRequest.getAttribute(OpenIDConstants.OPEN_ID_ERROR)%>"/>
+<c_rt:set var="providerButtons" value="<%=renderRequest.getAttribute(OpenIDLoginPortlet.PROVIDER_BUTTONS_ATTR_NAME)%>"/>
+<c_rt:set var="enableOpenIDEntry" value="<%=renderRequest.getAttribute(OpenIDLoginPortlet.ENABLE_OPEN_ID_ENTRY_ATTR_NAME)%>"/>
+
<div class="portlet-section-text">
<c:choose>
<c:when test="${pageContext.request.userPrincipal != null}">
@@ -43,19 +47,23 @@
</c:when>
<c:otherwise>
<c:if test="${openIDError != null}"><div class="portlet-msg-alert"><fmt:message key="openid-login.label.${openIDError}"/></div><br/></c:if>
- <form method="POST" action='<portlet:actionURL/>'>
- <input type="hidden" name="${openIDProvider}"/>
- <input type="submit" value='<fmt:message key="openid-login.label.ProviderLogin"><fmt:param><c:out value="Google"/></fmt:param></fmt:message>' onclick="this.form.elements[0].value='gmail.com'; true"/>
- <input type="submit" value='<fmt:message key="openid-login.label.ProviderLogin"><fmt:param><c:out value="Yahoo!"/></fmt:param></fmt:message>' onclick="this.form.elements[0].value='yahoo.com'; true"/>
- <input type="submit" value='<fmt:message key="openid-login.label.ProviderLogin"><fmt:param><c:out value="myOpenID"/></fmt:param></fmt:message>' onclick="this.form.elements[0].value='myopenid.com'; true"/>
- <input type="hidden" name="${openIDRequest}" value="${openIDLoginRequest}"/>
- </form>
- <form method="POST" action='<portlet:actionURL/>'>
- <span class="portlet-form-field-label"><fmt:message key="openid-login.label.OpenID"/></span>
- <input type="text" class="portlet-form-field" size="30" name="${openIDDiscovery}"/>
- <input type="submit" class="portlet-form-button" value='<fmt:message key="openid-login.label.Login"/>'/>
- <input type="hidden" name="${openIDRequest}" value="${openIDLoginRequest}"/>
- </form>
+ <c:if test="${not empty providerButtons}">
+ <form method="POST" action='<portlet:actionURL/>'>
+ <input type="hidden" name="${openIDProvider}"/>
+ <c:forEach var="providerButton" items="${providerButtons}">
+ <input type="submit" value='<fmt:message key="openid-login.label.ProviderLogin"><fmt:param><c:out value="${providerButton.value}"/></fmt:param></fmt:message>' onclick="this.form.elements[0].value='${providerButton.key}'; true"/>
+ </c:forEach>
+ <input type="hidden" name="${openIDRequest}" value="${openIDLoginRequest}"/>
+ </form>
+ </c:if>
+ <c:if test="${enableOpenIDEntry == 'true'}">
+ <form method="POST" action='<portlet:actionURL/>'>
+ <span class="portlet-form-field-label"><fmt:message key="openid-login.label.OpenID"/></span>
+ <input type="text" class="portlet-form-field" size="30" name="${openIDDiscovery}"/>
+ <input type="submit" class="portlet-form-button" value='<fmt:message key="openid-login.label.Login"/>'/>
+ <input type="hidden" name="${openIDRequest}" value="${openIDLoginRequest}"/>
+ </form>
+ </c:if>
</c:otherwise>
</c:choose>
</div>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org