You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2008/05/17 16:48:34 UTC
svn commit: r657369 - in /roller/trunk/apps/weblogger:
src/java/org/apache/roller/weblogger/ui/struts2/core/Register-validation.xml
src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
web/WEB-INF/jsps/core/Register.jsp
Author: snoopdave
Date: Sat May 17 07:48:34 2008
New Revision: 657369
URL: http://svn.apache.org/viewvc?rev=657369&view=rev
Log:
Related to Externalize User Management implementation:
https://issues.apache.org/roller/browse/ROL-1534
Fixes to allow "auto-registration" logic to work in a CMA setup where only user info comes from request.getUserPrincipal() and Acegi not available.
Removed:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register-validation.xml
Modified:
roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Register.jsp
Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java?rev=657369&r1=657368&r2=657369&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/ui/struts2/core/Register.java Sat May 17 07:48:34 2008
@@ -77,7 +77,7 @@
@SkipValidation
public String execute() {
- if(!WebloggerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
+ if (!WebloggerRuntimeConfig.getBooleanProperty("users.registration.enabled")) {
return "disabled";
}
@@ -86,15 +86,22 @@
getBean().setTimeZone(TimeZone.getDefault().getID());
try {
- // Let's see if there's any user-authentication available from Acegi
- // and retrieve custom user data to pre-populate form.
+
boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
- if(usingSSO) {
+ if (usingSSO) {
+ // See if user is already logged in via Acegi
User fromSSO = CustomUserRegistry.getUserDetailsFromAuthentication(getServletRequest());
-
- if(fromSSO != null) {
+ if (fromSSO != null) {
+ // Copy user details from Acegi, including LDAP attributes
getBean().copyFrom(fromSSO);
- setFromSS0(true);
+ setFromSso(true);
+ }
+ // See if user is already logged in via CMA
+ else if (getServletRequest().getUserPrincipal() != null) {
+ // Only detail we get is username, sadly no LDAP attributes
+ getBean().setUserName(getServletRequest().getUserPrincipal().getName());
+ getBean().setScreenName(getServletRequest().getUserPrincipal().getName());
+ setFromSso(true);
}
}
@@ -243,26 +250,35 @@
public void myValidate() {
// if usingSSO, we don't want to error on empty password/username from HTML form.
- setFromSS0(false);
+ setFromSso(false);
boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
- if(usingSSO) {
+ if (usingSSO) {
boolean storePassword = WebloggerConfig.getBooleanProperty("users.sso.passwords.saveInRollerDb");
+ String password = WebloggerConfig.getProperty("users.sso.passwords.defaultValue", "<unknown>");
+
+ // Preserve username and password, Acegi case
User fromSSO = CustomUserRegistry.getUserDetailsFromAuthentication(getServletRequest());
-
- if(fromSSO != null) {
- String password = WebloggerConfig.getProperty("users.sso.passwords.defaultValue", "<unknown>");
- if(storePassword) {
+ if (fromSSO != null) {
+ if (storePassword) {
password = fromSSO.getPassword();
}
getBean().setPasswordText(password);
getBean().setPasswordConfirm(password);
getBean().setUserName(fromSSO.getUserName());
- setFromSS0(true);
+ setFromSso(true);
+ }
+
+ // Preserve username and password, CMA case
+ else if (getServletRequest().getUserPrincipal() != null) {
+ getBean().setUserName(getServletRequest().getUserPrincipal().getName());
+ getBean().setPasswordText(password);
+ getBean().setPasswordConfirm(password);
+ setFromSso(true);
}
}
String allowed = WebloggerConfig.getProperty("username.allowedChars");
- if(allowed == null || allowed.trim().length() == 0) {
+ if (allowed == null || allowed.trim().length() == 0) {
allowed = DEFAULT_ALLOWED_CHARS;
}
@@ -273,12 +289,12 @@
}
// check that passwords match
- if(!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
+ if (!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
addError("Register.error.passowordMismatch");
}
// check that username is not taken
- if(!StringUtils.isEmpty(getBean().getUserName())) try {
+ if (!StringUtils.isEmpty(getBean().getUserName())) try {
UserManager mgr = WebloggerFactory.getWeblogger().getUserManager();
if(mgr.getUserByUserName(getBean().getUserName(), null) != null) {
addError("error.add.user.userNameInUse");
@@ -309,11 +325,11 @@
this.bean = bean;
}
- public boolean isFromSS0() {
+ public boolean getFromSso() {
return fromSS0;
}
- public void setFromSS0(boolean fromSS0) {
+ public void setFromSso(boolean fromSS0) {
this.fromSS0 = fromSS0;
}
Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Register.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Register.jsp?rev=657369&r1=657368&r2=657369&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Register.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Register.jsp Sat May 17 07:48:34 2008
@@ -25,34 +25,34 @@
<table class="formtable">
- <s:if test="fromSSO">
-<tr>
- <td class="label"><label for="userName" /><s:text name="userSettings.username" /></label></td>
- <td class="field"><strong><s:property value="bean.userName" /></strong></td>
- <td class="description"><s:text name="userRegister.tip.userName" /></td>
-</tr>
+<s:if test="fromSso">
+ <tr>
+ <td class="label"><label for="userName" /><s:text name="userSettings.username" /></label></td>
+ <td class="field"><strong><s:property value="bean.userName" /></strong></td>
+ <td class="description"><s:text name="userRegister.tip.userName" /></td>
+ </tr>
</s:if>
<s:else>
-<tr>
- <td class="label"><label for="userName" /><s:text name="userSettings.username" /></label></td>
- <td class="field"><s:textfield name="bean.userName" size="30" maxlength="30" /></td>
- <td class="description"><s:text name="userRegister.tip.userName" /></td>
-</tr>
-
-<tr>
- <td class="label"><label for="passwordText" /><s:text name="userSettings.password" /></label></td>
- <td class="field">
- <s:password name="bean.passwordText" size="20" maxlength="20" />
- <s:hidden name="bean.password" />
- </td>
- <td class="description"><s:text name="userRegister.tip.password" /></td>
-</tr>
-
-<tr>
- <td class="label"><label for="passwordConfirm" /><s:text name="userSettings.passwordConfirm" /></label></td>
- <td class="field"><s:password name="bean.passwordConfirm" size="20" maxlength="20" /></td>
- <td class="description"><s:text name="userRegister.tip.passwordConfirm" /></td>
-</tr>
+ <tr>
+ <td class="label"><label for="userName" /><s:text name="userSettings.username" /></label></td>
+ <td class="field"><s:textfield name="bean.userName" size="30" maxlength="30" /></td>
+ <td class="description"><s:text name="userRegister.tip.userName" /></td>
+ </tr>
+
+ <tr>
+ <td class="label"><label for="passwordText" /><s:text name="userSettings.password" /></label></td>
+ <td class="field">
+ <s:password name="bean.passwordText" size="20" maxlength="20" />
+ <s:hidden name="bean.password" />
+ </td>
+ <td class="description"><s:text name="userRegister.tip.password" /></td>
+ </tr>
+
+ <tr>
+ <td class="label"><label for="passwordConfirm" /><s:text name="userSettings.passwordConfirm" /></label></td>
+ <td class="field"><s:password name="bean.passwordConfirm" size="20" maxlength="20" /></td>
+ <td class="description"><s:text name="userRegister.tip.passwordConfirm" /></td>
+ </tr>
</s:else>
<tr>