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 ta...@apache.org on 2009/05/02 03:46:33 UTC
svn commit: r770879 - in /portals/jetspeed-2/applications/j2-admin/trunk: ./
src/main/java/org/apache/jetspeed/portlets/sso/ src/webapp/WEB-INF/
src/webapp/WEB-INF/security/sso/ src/webapp/WEB-INF/velocity/
Author: taylor
Date: Sat May 2 01:46:31 2009
New Revision: 770879
URL: http://svn.apache.org/viewvc?rev=770879&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-621
Final cleanup for 621 (WebContent). Im having some problems with challenge authentication, but I will open that up as a single bug in future release
Added:
portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm (with props)
Modified:
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOIFramePortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOPortletUtil.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOProxyPortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOTicketPortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOWebContentPortlet.java
portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml
portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-edit-prefs.vm
portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-webcontent-help.vm
portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/velocity/velocity-macros.vm
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOIFramePortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOIFramePortlet.java?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOIFramePortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOIFramePortlet.java Sat May 2 01:46:31 2009
@@ -30,6 +30,7 @@
import org.apache.commons.codec.binary.Base64;
import org.apache.jetspeed.security.PasswordCredential;
+import org.apache.jetspeed.security.mfa.util.SecurityHelper;
import org.apache.jetspeed.sso.SSOException;
import org.apache.jetspeed.sso.SSOManager;
import org.apache.jetspeed.sso.SSOSite;
@@ -114,6 +115,8 @@
{
this.getContext(request).put("statusMsg", msg);
}
+ this.getContext(request).put("ssoTypes", SSOWebContentPortlet.SSO_TYPES);
+ this.getContext(request).put("ssoTypeSelected", request.getPreferences().getValue("sso.type", SSOWebContentPortlet.SSO_TYPE_BASIC));
super.doEdit(request, response);
}
@@ -127,11 +130,7 @@
}
if (site == null)
{
- // no credentials configured in SSO store
- // switch to SSO Configure View
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
- super.doView(request, response);
+ response.getWriter().print(SSOWebContentPortlet.NO_CREDENTIALS);
return;
}
try
@@ -145,18 +144,16 @@
}
else
{
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
+ response.getWriter().print(SSOWebContentPortlet.NO_CREDENTIALS);
+ return;
}
}
catch (SSOException e)
{
if (e.getMessage().equals(SSOException.NO_CREDENTIALS_FOR_SITE))
{
- // no credentials configured in SSO store
- // switch to SSO Configure View
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
+ response.getWriter().print(SSOWebContentPortlet.NO_CREDENTIALS);
+ return;
}
else
{
@@ -188,15 +185,18 @@
SSOSite site = sso.getSiteByUrl(siteUrl);
try
{
- if (site == null)
+ if (!SecurityHelper.isEmpty(siteUrl) && !SecurityHelper.isEmpty(ssoPrincipal) && !SecurityHelper.isEmpty(ssoCredential))
{
- site = sso.newSite(siteUrl, siteUrl);
- sso.addSite(site);
- SSOPortletUtil.updateUser(sso, request, site, ssoPrincipal, ssoCredential);
- }
- else
- {
- SSOPortletUtil.updateUser(sso, request, site, ssoPrincipal, ssoCredential);
+ if (site == null)
+ {
+ site = sso.newSite(siteUrl, siteUrl);
+ sso.addSite(site);
+ SSOPortletUtil.updateUser(sso, request, site, ssoPrincipal, ssoCredential);
+ }
+ else
+ {
+ SSOPortletUtil.updateUser(sso, request, site, ssoPrincipal, ssoCredential);
+ }
}
}
catch (SSOException e)
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOPortletUtil.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOPortletUtil.java?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOPortletUtil.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOPortletUtil.java Sat May 2 01:46:31 2009
@@ -97,10 +97,10 @@
}
- public static PasswordCredential getCredentialsForSite(SSOManager sso, String siteName, RenderRequest request)
+ public static PasswordCredential getCredentialsForSite(SSOManager sso, String siteUrl, RenderRequest request)
{
PasswordCredential pwc = null;
- SSOSite site = sso.getSiteByName(siteName);
+ SSOSite site = sso.getSiteByUrl(siteUrl);
if (site != null)
{
return getCredentialsForSite(sso, site, request);
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOProxyPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOProxyPortlet.java?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOProxyPortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOProxyPortlet.java Sat May 2 01:46:31 2009
@@ -124,45 +124,41 @@
{
boolean forceRefresh = Boolean.parseBoolean(request.getPreferences().getValue(FORCE_SSO_REFRESH, "false"));
String destinationURL = request.getPreferences().getValue(DESTINATION_URL,null);
- String ssoSiteName = request.getPreferences().getValue(SSO_SITE,null);
+ String ssoSite = request.getPreferences().getValue(SSO_SITE,null);
- if (ssoSiteName == null)
+ if (ssoSite == null)
{
- // No destination configured Switch to configure View
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
- super.doView(request, response);
+ response.getWriter().print(SSOWebContentPortlet.NO_CREDENTIALS);
return;
- }
-
+ }
// Set the content type
- response.setContentType("text/html");
-
+ response.setContentType("text/html");
try
{
StringBuffer page= new StringBuffer();
- // Subject subject = getSubject();
- // TODO refactor
- // if (sso)
- SSOSite site = sso.getSiteByName(ssoSiteName);
- if (site == null){
- response.getWriter().println("<P>Could not find site with name "+ssoSiteName+"</P>");
+ SSOSite site = sso.getSiteByUrl(ssoSite);
+ if (site == null)
+ {
+ response.getWriter().println("<P>Could not find site with name "+ssoSite+"</P>");
return;
}
- if (destinationURL == null){
+ if (destinationURL == null)
+ {
destinationURL = site.getURL();
- }
-
+ }
Principal p = request.getUserPrincipal();
- if (p instanceof JetspeedPrincipal){
+ if (p instanceof JetspeedPrincipal)
+ {
Collection<SSOUser> remoteUsers = sso.getRemoteUsers(site,getSubject());
- if (remoteUsers.size() > 0){
+ if (remoteUsers.size() > 0)
+ {
// TODO: in case of multiple users, invent a way to choose one of them
// right now, simply the first SSO user is selected
SSOUser remoteUser = remoteUsers.iterator().next();
SSOClient client = sso.getClient(site, remoteUser);
- if (client == null){
- response.getWriter().println("<P>Could not create client for site with name "+ssoSiteName+" and user "+request.getUserPrincipal().getName()+"</P>");
+ if (client == null)
+ {
+ response.getWriter().println("<P>Could not create client for site with name " + ssoSite + " and user "+request.getUserPrincipal().getName()+"</P>");
return;
}
@@ -177,9 +173,6 @@
// Write the page
response.getWriter().println(finalPage);
}
-
-
-
}
}
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOTicketPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOTicketPortlet.java?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOTicketPortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOTicketPortlet.java Sat May 2 01:46:31 2009
@@ -117,13 +117,13 @@
{
try
{
- return (ParserAdaptor) adaptorHtmlClass.newInstance();
-
+ return (ParserAdaptor) adaptorHtmlClass.newInstance();
+
}
catch (Exception e)
{
log.error("Error creating rewriter class", e);
}
return null;
- }
+ }
}
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOWebContentPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOWebContentPortlet.java?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOWebContentPortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/sso/SSOWebContentPortlet.java Sat May 2 01:46:31 2009
@@ -20,6 +20,8 @@
import java.security.AccessControlContext;
import java.security.AccessController;
import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
import java.util.StringTokenizer;
import javax.portlet.ActionRequest;
@@ -48,6 +50,7 @@
import org.apache.jetspeed.security.PasswordCredential;
import org.apache.jetspeed.security.SecurityException;
import org.apache.jetspeed.security.UserManager;
+import org.apache.jetspeed.security.mfa.util.SecurityHelper;
import org.apache.jetspeed.sso.SSOException;
import org.apache.jetspeed.sso.SSOManager;
import org.apache.jetspeed.sso.SSOSite;
@@ -85,6 +88,20 @@
public static final String SSO_TYPE_DEFAULT = SSO_TYPE_BASIC; // handled well even if nothing but credentials are set (see: doRequestedAuthentication)
+ public static final String NO_CREDENTIALS = "<p>No credentials configured for current user.</p>";
+
+ public static final String[] SSO_TYPES =
+ {
+ SSO_TYPE_BASIC,
+ SSO_TYPE_BASIC_PREEMPTIVE,
+ SSO_TYPE_FORM,
+ SSO_TYPE_FORM_GET,
+ SSO_TYPE_FORM_POST,
+ SSO_TYPE_URL,
+ SSO_TYPE_URL_BASE64,
+ SSO_TYPE_CERTIFICATE
+ };
+
// ...standardized auth types
public static final String BASIC_AUTH_SCHEME_NAME = (new BasicScheme()).getSchemeName();
@@ -128,7 +145,7 @@
protected PortletContext context;
protected SSOManager sso;
protected UserManager userManager;
-
+ protected List<String> ssoTypesList;
// Methods
@@ -146,6 +163,9 @@
{
throw new PortletException("Failed to find the User Manager on portlet initialization");
}
+ ssoTypesList = new LinkedList<String>();
+ for (String s : SSO_TYPES)
+ ssoTypesList.add(s);
}
protected JetspeedPrincipal getLocalPrincipal(String localUserName){
@@ -181,39 +201,42 @@
SSOSite site = sso.getSiteByUrl(siteUrl);
try
{
- if (site == null)
+ if (!SecurityHelper.isEmpty(siteUrl) && !SecurityHelper.isEmpty(ssoPrincipalName) && !SecurityHelper.isEmpty(ssoPrincipalPassword))
{
- site = sso.newSite(siteUrl, siteUrl);
- sso.addSite(site);
- SSOPortletUtil.updateUser(sso, actionRequest, site, ssoPrincipalName, ssoPrincipalPassword);
- }
- else
- {
- SSOPortletUtil.updateUser(sso, actionRequest, site, ssoPrincipalName, ssoPrincipalPassword);
+ if (site == null)
+ {
+ site = sso.newSite(siteUrl, siteUrl);
+ sso.addSite(site);
+ SSOPortletUtil.updateUser(sso, actionRequest, site, ssoPrincipalName, ssoPrincipalPassword);
+ }
+ else
+ {
+ SSOPortletUtil.updateUser(sso, actionRequest, site, ssoPrincipalName, ssoPrincipalPassword);
+ }
}
}
catch (SSOException e)
{
- PortletMessaging.publish(actionRequest, "SSOIFrame", "status", new StatusMessage("Could not add remote user: portal principal "+ actionRequest.getUserPrincipal().getName() +
+ PortletMessaging.publish(actionRequest, "SSOWebContent", "status", new StatusMessage("Could not add remote user: portal principal "+ actionRequest.getUserPrincipal().getName() +
" is already associated with a remote user for this site!", StatusMessage.ERROR));
actionResponse.setPortletMode(PortletMode.EDIT); // stay on edit
}
}
}
-
+
public void doView(RenderRequest request, RenderResponse response)
throws PortletException, IOException
{
String siteName = request.getPreferences().getValue("SRC", null);
SSOSite site = null;
- if (siteName != null){
- site = sso.getSiteByName(siteName);
+ if (siteName != null)
+ {
+ site = sso.getSiteByUrl(siteName);
}
if (site == null)
{
- // no SRC configured in prefs / site not found - switch to SSO Configure View
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
+ response.getWriter().print(NO_CREDENTIALS);
+ return;
}
else
{
@@ -224,17 +247,15 @@
request.setAttribute(SSO_REQUEST_ATTRIBUTE_PASSWORD, pwc.getPassword());
} else
{
- // no credentials configured in SSO store
- // switch to SSO Configure View
- request.setAttribute(PARAM_VIEW_PAGE, this.getPortletConfig().getInitParameter(PARAM_EDIT_PAGE));
- setupPreferencesEdit(request, response);
+ response.getWriter().print(NO_CREDENTIALS);
+ return;
}
}
StatusMessage msg = (StatusMessage)PortletMessaging.consume(request, "SSOWebContent", "status");
if (msg != null)
{
this.getContext(request).put("statusMsg", msg);
- }
+ }
super.doView(request, response);
}
@@ -260,7 +281,9 @@
if (msg != null)
{
this.getContext(request).put("statusMsg", msg);
- }
+ }
+ this.getContext(request).put("ssoTypes", SSO_TYPES);
+ this.getContext(request).put("ssoTypeSelected", request.getPreferences().getValue("sso.type", SSO_TYPE_BASIC));
super.doEdit(request, response);
}
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml Sat May 2 01:46:31 2009
@@ -1511,10 +1511,6 @@
<value>100%</value>
</preference>
<preference>
- <name>sso.type</name>
- <value>url</value>
- </preference>
- <preference>
<name>sso.url.Principal</name>
<value>sso-principal</value>
</preference>
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-edit-prefs.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-edit-prefs.vm?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-edit-prefs.vm (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-edit-prefs.vm Sat May 2 01:46:31 2009
@@ -19,8 +19,27 @@
<form action="$renderResponse.createActionURL()" method="post">
<table>
#foreach ($pref in $prefs)
+#if ($pref.Key == "sso.type")
+ <tr colspan="4" align="right">
+ <td width="5%" class="portlet-form-label" align="left"> </td>
+ <td nowrap class="portlet-section-alternate" align="left">$pref.Key: </td>
+ <td class="portlet-form-input-field" align="left">
+ <select id="$pref.Key" name="$pref.Key">
+#foreach ($ssoType in $ssoTypes)
+#if ($ssoType == $ssoTypeSelected)
+ <option selected value="$ssoType">$ssoType</option>
+#else
+ <option value="$ssoType">$ssoType</option>
+#end
+#end
+ </select>
+ </td>
+ <td width="5%" class="portlet-form-label" align="left"> </td>
+ </tr>
+#else
#prefField($pref.Key $pref.Value "40")
#end
+#end
<hr/>
#form4ColumnCell("SSO Principal" $ssoPrincipal 30 "ssoPrincipal")
#form4PasswordCell("SSO Credential" $ssoCredential 30 "ssoCredential")
@@ -37,3 +56,4 @@
#end
+
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-webcontent-help.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-webcontent-help.vm?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-webcontent-help.vm (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/security/sso/sso-webcontent-help.vm Sat May 2 01:46:31 2009
@@ -14,29 +14,61 @@
See the License for the specific language governing permissions and
limitations under the License.
*#
-<h1>Help</h1>
+<p>The <b>sso.type</b> preference on the WebContent portlet chooses the type of single-signon method to use. Depending on which method is selected,
+you will need to configure more preferences. See the methods of SSO described below for specific instructions
+</p>
+<h3>Basic authentication</h3>
+<p>
+Basic Authentication is the default configuration method.
+This method allows the web browser, or other client program, to provide credentials Ð in the form of a user name and password Ð
+when making a request. One advantage of the basic access authentication is that it is supported by all popular web browsers.
+It is rarely used on publicly accessible Internet web sites but may be useful for quick SSO scenarios within a company intranet.
+</p>
+<p>
+The <i>SRC</i> is a required preference to point at the website being securely accessed.
+</p>
+<h3>Preemptive Basic Authentication</h3>
+<p>
+Same as Basic authentication above, except credentials are sent preemptively.
+</p>
+<h3>URL authentication</h3>
+<p>
+A username and password are sent on the URL as query parameters. Best to be used over a secure connection.
+Requires the <i>sso.url.Principal</i> preference to be declared in your portlet.xml and set to the name of the URL request parameter for the username.
+Alo requires the <i>sso.url.Credential</i> preference to be declared in your portlet.xml and set to the name of the URL request parameter for the password.
+The <i>SRC</i> is a required preference to point at the website being securely accessed.
+</p>
+<h3>Base64 URL authentication</h3>
+<p>
+Same as URL authentication with Base64 encoding.
+</p>
+<p>
+<h3>Form authentication</h3>
+<p>
+HTTP+HTML Form-based Authentication is arguably the most prevalent user authentication technique employed on the Web today. It is the approach of choice for essentially all wikis, forums, banking/financial websites, ecommerce websites, Web search engines, Web portals, etc.
+</p>
+<p>
+The <i>SRC</i> is a required preference to point at the website being securely accessed.
+</p>
+Additional parameters are required:
+<ul>
+<li>sso.form.Principal - the form field input id for the username principal</li>
+<li>sso.form.Credential - the form field input id for the credential (password)</li>
+<li>sso.form.Action - the URL of the Form Action to be executed upon signing on, could be different from SRC. This preference is not required</li>
+<li>sso.form.Args - name value pair of Form parameters. Name value pairs come in <i>name=value</i> definitions. Multiple arguments are separated by semi-colons(;)</li>
+</ul>
+<p>
+<h3>Certificate</h3>
+<p>
+Currently not supported.
+</p>
+<h3>Credentials</h3>
<p>
-<h3>Basic authentication</h3> is the default and can be supported effectively without even setting <b>sso.type</b>
-Just by providing credentials for the domain. The credentials will not be sent preemptively,
-but if a 401 request is returned for Basic authentication, it will be handled properly.
-Tis is equivalent to setting sso.type=basic (or sso.type=html (old - now deprecated in favor of calling it <b>basic</b>).
-if you set sso.type=basic.preemptive, it will send the credentials preemptively.
-</p>
-<br/>
-<p>
-<h3>URL authentication</h3> (query args) is supported as <b>sso.type=url</b> or <b>sso.type=url.base64</b>.
-By definition, this type of authentication is <quote>preemptive</quote>, so no distinction is made
-there.
-</p>
-<br/>
-<p>
-<h3>Form-authentication</h3> is supported with <b>sso.type=form</b> (which is equivalent to sso.type=form.post - you can also specify sso.type=form.get,
-if GET protocol is used on the login form). This form also requires a bunch of other data
-( e.g. the action URL, other args, names of the fields for credentials, etc.).
-All of this is in an example that is in the demo portlet.xml.
-Form-based authentication is also considred "preemptive", in that it authenticates before any other
-content is read. However, it only does it once. If it succeeds, all should be well.
-If it fails, the user will have to login by hand (since the initial content URL will
-cause a redirect to the login page).
+Credentials are gathered from the Jetspeed SSO Data Store. Credentials can be configured in the Jetspeed SSO Administrative Portlet, or in this portlet directly in edit mode.
+If you enter credentials here, they are stored only for the specific user currently logged in. The administrative portlet allows editing credentials for users or groups of users.
+There are two credentials on this form, they are optional and will be ignored if left blank:
+<ul>
+<li>ssoPrincipal (SSO Principal): optionally sets the remote username to login to the site configured for this portlet for the local user</li>
+<li>ssoCrendential (SSO Credential): optionally sets the remote credential (password) to login to the site configured for this portlt for the local user</li>
+</ul>
</p>
-<br/>
Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/velocity/velocity-macros.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/velocity/velocity-macros.vm?rev=770879&r1=770878&r2=770879&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/velocity/velocity-macros.vm (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/velocity/velocity-macros.vm Sat May 2 01:46:31 2009
@@ -114,7 +114,7 @@
#macro (form4CheckBoxCell $label $value $id)
<tr colspan="4" align="right">
<td width="5%" class="portlet-form-label" align="left"> </td>
- <td nowrap class="portlet-form-field-label" align="right"> </td>
+ <td nowrap class="portlet-form-field-label" align="left"> </td>
<td class="portlet-form-input-field" align="left">
<input type="checkbox" name="$id" #if ($value=="true") checked=1 #end> $label</input>
</td>
@@ -200,3 +200,4 @@
</tr>
#end
+
\ No newline at end of file
Added: portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm?rev=770879&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm Sat May 2 01:46:31 2009
@@ -0,0 +1,59 @@
+#*
+ 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.
+*#
+<h2 class="portlet-section-header">Edit Preferences</h2>
+
+<form action="$renderResponse.createActionURL()" method="post">
+<table>
+#foreach ($pref in $prefs)
+#if ($pref.Key == "sso.type")
+ <tr colspan="4" align="right">
+ <td width="5%" class="portlet-form-label" align="left"> </td>
+ <td nowrap class="portlet-section-alternate" align="left">$pref.Key: </td>
+ <td class="portlet-form-input-field" align="left">
+ <select id="$pref.Key" name="$pref.Key">
+#foreach ($ssoType in $ssoTypes)
+#if ($ssoType == $ssoTypeSelected)
+ <option selected value="$ssoType">$ssoType</option>
+#else
+ <option value="$ssoType">$ssoType</option>
+#end
+#end
+ </select>
+ </td>
+ <td width="5%" class="portlet-form-label" align="left"> </td>
+ </tr>
+#else
+#prefField($pref.Key $pref.Value "40")
+#end
+#end
+<hr/>
+#form4ColumnCell("SSO Principal" $ssoPrincipal 30 "ssoPrincipal")
+#form4PasswordCell("SSO Credential" $ssoCredential 30 "ssoCredential")
+</table>
+<input type="submit" name="Save" value="Save" />
+</form>
+
+#if ($statusMsg)
+<table width="100%" cellpadding="0" cellspacing="0" border="0">
+<tr>
+ <div class="$statusMsg.Type">$statusMsg.Text</div>
+</tr>
+</table>
+#end
+
+
+
Propchange: portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: portals/jetspeed-2/applications/j2-admin/trunk/sso-edit-prefs.vm
------------------------------------------------------------------------------
svn:keywords = Id
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org