You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by gm...@apache.org on 2014/03/18 02:20:34 UTC
svn commit: r1578699 - in /roller/trunk/app: ./
src/main/java/org/apache/roller/weblogger/business/
src/main/java/org/apache/roller/weblogger/pojos/
src/main/java/org/apache/roller/weblogger/ui/core/
src/main/java/org/apache/roller/weblogger/ui/core/se...
Author: gmazza
Date: Tue Mar 18 01:20:34 2014
New Revision: 1578699
URL: http://svn.apache.org/r1578699
Log:
ROL-1987 Reactivate LDAP capability in Roller trunk (user will have to uncomment & customize LDAP config in security.xml) and upgrade to Spring 4.
Modified:
roller/trunk/app/pom.xml
roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ObjectPermission.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerSession.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java
roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
roller/trunk/app/src/main/resources/ApplicationResources.properties
roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/Register.jsp
roller/trunk/app/src/main/webapp/WEB-INF/security.xml
roller/trunk/app/src/main/webapp/roller-ui/login-redirect.jsp
Modified: roller/trunk/app/pom.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/pom.xml?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/pom.xml (original)
+++ roller/trunk/app/pom.xml Tue Mar 18 01:20:34 2014
@@ -22,9 +22,9 @@
<testThemesDir>${project.build.testOutputDirectory}${file.separator}themes</testThemesDir>
<testIndexDir>${project.build.testOutputDirectory}${file.separator}index</testIndexDir>
<testPlanetCache>${project.build.testOutputDirectory}${file.separator}planetcache</testPlanetCache>
- <lucene.version>4.6.0</lucene.version>
- <spring.version>3.2.4.RELEASE</spring.version>
- <spring.security.version>3.2.0.RELEASE</spring.security.version>
+ <lucene.version>4.7.0</lucene.version>
+ <spring.version>4.0.2.RELEASE</spring.version>
+ <spring.security.version>3.2.2.RELEASE</spring.security.version>
</properties>
<dependencies>
@@ -40,7 +40,7 @@
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
- <version>2.5.0</version>
+ <version>2.5.1</version>
</dependency>
<!-- Alternative testing with Hibernate (used by default with JBoss)
@@ -275,13 +275,13 @@
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
- <version>2.3.16</version>
+ <version>2.3.16.1</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-tiles-plugin</artifactId>
- <version>2.3.16</version>
+ <version>2.3.16.1</version>
</dependency>
<dependency>
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/business/UserManager.java Tue Mar 18 01:20:34 2014
@@ -167,8 +167,8 @@ public interface UserManager {
* Lookup a user by User attribute
*
* @param name attribute name
- * @param value sttribute value
- * @return UsUserhe user, or null if not found or is disabled.
+ * @param value attribute value
+ * @return User the user, or null if not found or is disabled.
* @throws WebloggerException If there is a problem
*/
User getUserByAttribute(String name, String value) throws WebloggerException;
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ObjectPermission.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ObjectPermission.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ObjectPermission.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/pojos/ObjectPermission.java Tue Mar 18 01:20:34 2014
@@ -30,7 +30,7 @@ import org.apache.roller.util.UUIDGenera
public abstract class ObjectPermission extends RollerPermission {
private static Log log = LogFactory.getLog(ObjectPermission.class);
- protected String id = UUIDGenerator.generateUUID();;
+ protected String id = UUIDGenerator.generateUUID();
protected String userName;
protected String objectType;
protected String objectId;
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerContext.java Tue Mar 18 01:20:34 2014
@@ -243,8 +243,11 @@ public class RollerContext extends Conte
String encryptPasswords = WebloggerConfig.getProperty("passwds.encryption.enabled");
boolean doEncrypt = Boolean.valueOf(encryptPasswords);
- if (doEncrypt) {
- DaoAuthenticationProvider provider = (DaoAuthenticationProvider) ctx.getBean("org.springframework.security.authentication.dao.DaoAuthenticationProvider#0");
+ String daoBeanName = "org.springframework.security.authentication.dao.DaoAuthenticationProvider#0";
+
+ // for LDAP-only authentication, no daoBeanName (i.e., UserDetailsService) may be provided in security.xml.
+ if (doEncrypt && ctx.containsBean(daoBeanName)) {
+ DaoAuthenticationProvider provider = (DaoAuthenticationProvider) ctx.getBean(daoBeanName);
String algorithm = WebloggerConfig.getProperty("passwds.encryption.algorithm");
PasswordEncoder encoder = null;
if (algorithm.equalsIgnoreCase("SHA")) {
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerSession.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerSession.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerSession.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/RollerSession.java Tue Mar 18 01:20:34 2014
@@ -103,7 +103,7 @@ public class RollerSession
AutoProvision provisioner = RollerContext.getAutoProvision();
if(provisioner != null) {
boolean userProvisioned = provisioner.execute(request);
- if(userProvisioned) {
+ if (userProvisioned) {
// try lookup again real quick
user = umgr.getUserByUserName(principal.getName());
}
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/AuthoritiesPopulator.java Tue Mar 18 01:20:34 2014
@@ -54,8 +54,8 @@ public class AuthoritiesPopulator implem
throw new IllegalArgumentException("The userData argument should not be null at this point.");
}
- User user = null;
- List<String> roles = null;
+ User user;
+ List<String> roles = new ArrayList<String>();
try {
Weblogger roller = WebloggerFactory.getWeblogger();
UserManager umgr = roller.getUserManager();
@@ -67,10 +67,6 @@ public class AuthoritiesPopulator implem
throw new DataRetrievalFailureException("ERROR in user lookup", ex);
}
- if (user == null) {
- throw new UsernameNotFoundException("ERROR user: " + username + " not found while granting authorities");
- }
-
int roleCount = roles.size() + (defaultRole != null ? 1 : 0);
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>(roleCount); // SimpleGrantedAuthority[roleCount];
int i = 0;
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/core/security/BasicUserAutoProvision.java Tue Mar 18 01:20:34 2014
@@ -46,7 +46,7 @@ public class BasicUserAutoProvision impl
public boolean execute(HttpServletRequest request) {
User ud = CustomUserRegistry.getUserDetailsFromAuthentication(request);
- if (ud != null) {
+ if (hasNecessaryFields(ud)) {
UserManager mgr;
try {
mgr = WebloggerFactory.getWeblogger().getUserManager();
@@ -67,12 +67,19 @@ public class BasicUserAutoProvision impl
}
}
WebloggerFactory.getWeblogger().flush();
+ return true;
- } catch (WebloggerException e) {
+ } catch (WebloggerException e) {
log.warn("Error while auto-provisioning user from SSO.", e);
}
}
- return true;
+ return false;
}
+
+ private boolean hasNecessaryFields(User user) {
+ return user != null && user.getUserName() != null && user.getFullName() != null
+ && user.getScreenName() != null && user.getEmailAddress() != null;
+ }
+
}
Modified: roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java (original)
+++ roller/trunk/app/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java Tue Mar 18 01:20:34 2014
@@ -33,6 +33,7 @@ import org.apache.roller.weblogger.confi
import org.apache.roller.weblogger.config.WebloggerRuntimeConfig;
import org.apache.roller.weblogger.pojos.User;
import org.apache.roller.weblogger.pojos.UserAttribute;
+import org.apache.roller.weblogger.ui.core.RollerSession;
import org.apache.roller.weblogger.ui.core.security.CustomUserRegistry;
import org.apache.roller.weblogger.ui.struts2.util.UIAction;
import org.apache.roller.weblogger.util.MailUtil;
@@ -41,7 +42,6 @@ import org.apache.struts2.interceptor.va
//import org.springframework.security.userdetails.openid.OpenIDUserAttribute;
-
/**
* Actions for registering a new user.
*/
@@ -54,7 +54,7 @@ public class Register extends UIAction i
// this is a no-no, we should not need this
private HttpServletRequest servletRequest = null;
- private boolean fromSS0 = false;
+ private boolean fromSSO = false;
private String activationStatus = null;
private String activationCode = null;
@@ -139,14 +139,14 @@ public class Register extends UIAction i
if (fromSSO != null) {
// Copy user details from Spring Security, including LDAP attributes
getBean().copyFrom(fromSSO);
- setFromSso(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);
+ setFromSSO(true);
}
}
@@ -248,15 +248,16 @@ public class Register extends UIAction i
// send activation mail to the user
MailUtil.sendUserActivationEmail(ud);
} catch (WebloggerException ex) {
- log.error("Error sending activation email to - "+ud.getEmailAddress(), ex);
+ log.error("Error sending activation email to - " + ud.getEmailAddress(), ex);
}
setActivationStatus("pending");
}
// Invalidate session, otherwise new user who was originally
- // authenticated via LDAP/SSO will remain logged in with
- // a but without a valid Roller role.
+ // authenticated via LDAP/SSO will remain logged in but
+ // without a valid Roller role.
+ getServletRequest().getSession().removeAttribute(RollerSession.ROLLER_SESSION);
getServletRequest().getSession().invalidate();
// set a special page title
@@ -319,7 +320,7 @@ public class Register extends UIAction i
public void myValidate() {
// if usingSSO, we don't want to error on empty password/username from HTML form.
- setFromSso(false);
+ setFromSSO(false);
boolean usingSSO = WebloggerConfig.getBooleanProperty("users.sso.enabled");
if (usingSSO) {
boolean storePassword = WebloggerConfig.getBooleanProperty("users.sso.passwords.saveInRollerDb");
@@ -334,7 +335,7 @@ public class Register extends UIAction i
getBean().setPasswordText(password);
getBean().setPasswordConfirm(password);
getBean().setUserName(fromSSO.getUserName());
- setFromSso(true);
+ setFromSSO(true);
}
// Preserve username and password, CMA case
@@ -342,7 +343,7 @@ public class Register extends UIAction i
getBean().setUserName(getServletRequest().getUserPrincipal().getName());
getBean().setPasswordText(password);
getBean().setPasswordConfirm(password);
- setFromSso(true);
+ setFromSSO(true);
}
}
@@ -358,7 +359,7 @@ public class Register extends UIAction i
}
// check password, it is required if OpenID and SSO are disabled
- if (getOpenIdConfiguration().equals("disabled") && !getFromSso()
+ if (getOpenIdConfiguration().equals("disabled") && !getFromSSO()
&& StringUtils.isEmpty(getBean().getPasswordText())) {
addError("error.add.user.passwordEmpty");
return;
@@ -410,12 +411,12 @@ public class Register extends UIAction i
this.bean = bean;
}
- public boolean getFromSso() {
- return fromSS0;
+ public boolean getFromSSO() {
+ return fromSSO;
}
- public void setFromSso(boolean fromSS0) {
- this.fromSS0 = fromSS0;
+ public void setFromSSO(boolean fromSSO) {
+ this.fromSSO = fromSSO;
}
public String getActivationStatus() {
Modified: roller/trunk/app/src/main/resources/ApplicationResources.properties
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/resources/ApplicationResources.properties?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/resources/ApplicationResources.properties (original)
+++ roller/trunk/app/src/main/resources/ApplicationResources.properties Tue Mar 18 01:20:34 2014
@@ -1894,7 +1894,7 @@ this site and your email address so we c
userRegister.tip.userName=A short one-word username to uniquely identify \
yourself on the site. Please limit it to simple alphanumeric characters (a-z, \
A-Z and 0-9) and do not use HTML. You will <b>not</b> be able to change this \
-later, but that\'s OK because this string will not be publicly displayed.
+later, but that''s OK because this string will not be publicly displayed.
userRegister.tip.screenName=Your desired screen name (with no HTML). This is \
is what will be displayed in your weblog and on weblog entries that you write.
Modified: roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/Register.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/Register.jsp?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/Register.jsp (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/jsps/core/Register.jsp Tue Mar 18 01:20:34 2014
@@ -32,7 +32,7 @@
</td>
</tr>
- <s:if test="fromSso">
+ <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>
@@ -65,7 +65,7 @@
<td class="description"><s:text name="userRegister.tip.email" /></td>
</tr>
- <s:if test="!fromSso">
+ <s:if test="!fromSSO">
<tr>
<td colspan="3">
<h2><s:text name="userRegister.heading.authentication" /></h2>
@@ -158,40 +158,45 @@
function onChange() {
var disabled = true;
var openIdConfig = '<s:property value="openIdConfiguration" />';
- var ssoEnabled = <s:property value="fromSso" />;
- var passwordText = document.register['bean.passwordText'].value;
- var passwordConfirm = document.register['bean.passwordConfirm'].value;
- var userName = document.register['bean.userName'].value;
+ var ssoEnabled = <s:property value="fromSSO" />;
var emailAddress = document.register['bean.emailAddress'].value;
- var openIdUrl = "";
+ var userName = passwordText = passwordConfirm = openIdUrl = "";
+
+ if (ssoEnabled) {
+ userName = '<s:property value="bean.userName" />';
+ } else {
+ userName = document.register['bean.userName'].value;
+ }
+
+ if (ssoEnabled == false && openIdConfig != 'only') {
+ passwordText = document.register['bean.passwordText'].value;
+ passwordConfirm = document.register['bean.passwordConfirm'].value;
+ }
if (openIdConfig != 'disabled') {
openIdUrl = document.register['bean.openIdUrl'].value;
}
-
+
if (ssoEnabled) {
if (emailAddress) disabled = false;
-
} else if (openIdConfig == 'disabled') {
if (emailAddress && userName && passwordText && passwordConfirm) disabled = false;
-
} else if (openIdConfig == 'only') {
if (emailAddress && openIdUrl) disabled = false;
-
} else if (openIdConfig == 'hybrid') {
if (emailAddress && ((passwordText && passwordConfirm) || (openIdUrl)) ) disabled = false;
}
- if ((passwordText || passwordConfirm) && !(passwordText == passwordConfirm)) {
- document.getElementById('readytip').innerHTML = '<s:text name="userRegister.error.mismatchedPasswords" />';
- disabled = true;
- } else if (disabled) {
- document.getElementById('readytip').innerHTML = '<s:text name="userRegister.tip.ready" />'
- } else {
- document.getElementById('readytip').innerHTML = '<s:text name="userRegister.success.ready" />'
+ if (!ssoEnabled) {
+ if ((passwordText || passwordConfirm) && !(passwordText == passwordConfirm)) {
+ document.getElementById('readytip').innerHTML = '<s:text name="userRegister.error.mismatchedPasswords" />';
+ disabled = true;
+ } else if (disabled) {
+ document.getElementById('readytip').innerHTML = '<s:text name="userRegister.tip.ready" />'
+ } else {
+ document.getElementById('readytip').innerHTML = '<s:text name="userRegister.success.ready" />'
+ }
}
document.getElementById('submit').disabled = disabled;
}
document.getElementById('submit').disabled = true;
</script>
-
-
Modified: roller/trunk/app/src/main/webapp/WEB-INF/security.xml
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/WEB-INF/security.xml?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/WEB-INF/security.xml (original)
+++ roller/trunk/app/src/main/webapp/WEB-INF/security.xml Tue Mar 18 01:20:34 2014
@@ -20,7 +20,7 @@
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd">
@@ -51,7 +51,7 @@
<beans:property name="allowIfAllAbstainDecisions" value="false"/>
<beans:property name="decisionVoters">
<beans:list>
- <beans:ref local="roleVoter"/>
+ <beans:ref bean="roleVoter"/>
</beans:list>
</beans:property>
</beans:bean>
@@ -63,8 +63,11 @@
<!-- Read users from Roller API -->
<authentication-manager alias='rollerAuthenticationManager'>
<authentication-provider ref="rememberMeAuthenticationProvider"/>
+ <!-- Uncomment one of the three below, based on whether database, LDAP, or
+ OpenID authentication is desired. -->
<authentication-provider user-service-ref="rollerUserService"/>
- <authentication-provider ref="openIDAuthProvider"/>
+ <!--authentication-provider ref="ldapAuthProvider"/>
+ <authentication-provider ref="openIDAuthProvider"/-->
</authentication-manager>
<beans:bean id="rollerUserService"
@@ -110,4 +113,35 @@
</beans:property>
</beans:bean>
+ <!-- Uncomment & customize below beans if using LDAP -->
+ <!--beans:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
+ <beans:constructor-arg value="ldap://localhost:10389/dc=example,dc=com" />
+ <beans:property name="userDn" value="uid=admin,ou=system" />
+ <beans:property name="password" value="secret" />
+ </beans:bean>
+
+ <beans:bean id="ldapAuthProvider"
+ class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
+
+ <beans:constructor-arg>
+ <beans:bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
+ <beans:constructor-arg ref="contextSource" />
+ <beans:property name="userSearch" ref="userSearch" />
+ </beans:bean>
+ </beans:constructor-arg>
+ <beans:constructor-arg>
+ <beans:bean
+ class="org.apache.roller.weblogger.ui.core.security.AuthoritiesPopulator">
+ <beans:property name="defaultRole" value="editor" />
+ </beans:bean>
+ </beans:constructor-arg>
+ </beans:bean>
+
+ <beans:bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
+ <beans:constructor-arg index="0" value="" />
+ <beans:constructor-arg index="1" value="(uid={0})" />
+ <beans:constructor-arg index="2" ref="contextSource" />
+ <beans:property name="searchSubtree" value="true" />
+ </beans:bean-->
+
</beans:beans>
Modified: roller/trunk/app/src/main/webapp/roller-ui/login-redirect.jsp
URL: http://svn.apache.org/viewvc/roller/trunk/app/src/main/webapp/roller-ui/login-redirect.jsp?rev=1578699&r1=1578698&r2=1578699&view=diff
==============================================================================
--- roller/trunk/app/src/main/webapp/roller-ui/login-redirect.jsp (original)
+++ roller/trunk/app/src/main/webapp/roller-ui/login-redirect.jsp Tue Mar 18 01:20:34 2014
@@ -24,12 +24,12 @@
User user = RollerSession.getRollerSession(request).getAuthenticatedUser();
List weblogs = WebloggerFactory.getWeblogger().getWeblogManager().getUserWeblogs(user, true);
-if (weblogs.size() == 1) {
+if (user == null) {
+ response.sendRedirect(request.getContextPath()+"/roller-ui/register.rol");
+} else if (weblogs.size() == 1) {
Weblog weblog = (Weblog) weblogs.get(0);
response.sendRedirect(request.getContextPath()+"/roller-ui/authoring/entryAdd.rol?weblog="+weblog.getHandle());
} else {
response.sendRedirect(request.getContextPath()+"/roller-ui/menu.rol");
}
-
%>
-