You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by "Shutra (JIRA)" <ji...@apache.org> on 2011/06/08 20:02:58 UTC

[jira] [Updated] (ROL-1925) Patch for the bug of OpenID only authentication

     [ https://issues.apache.org/jira/browse/ROL-1925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shutra updated ROL-1925:
------------------------

    Description: 
1. Fix the javascript error in Register page:
错误: document.register['bean.passwordText'] is undefined
源文件:https://example.com/roller/roller-ui/register.rol;jsessionid=043E3D9D1D765A9BD3976074DC56670C
行:1062

2. Genrate a random string for the non-nullable passphrase filed.

3. Override lookupRealm method of OpenIDAuthenticationProcessingFilter in spring-security-openid-2.0.5 to ignore the issue about appending wrong port to the url, for example, it may append "80" to an url with https scheme.

4. Use openid_identifier as the html form field to match the openid spec, and ignore duplicate ID "j_username" while using hybrid authentication methods. Enhanced the function: restoring username from cookie.

5. svn rm some .classpath .project .settings files

6. orgnized the spring dependencies

Patch:
Index: roller-core/.classpath
===================================================================
--- roller-core/.classpath	(revision 1132878)
+++ roller-core/.classpath	(working copy)
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
Index: roller-core/.project
===================================================================
--- roller-core/.project	(revision 1132878)
+++ roller-core/.project	(working copy)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>roller-core</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>
Index: roller-core/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- roller-core/.settings/org.eclipse.jdt.core.prefs	(revision 1132878)
+++ roller-core/.settings/org.eclipse.jdt.core.prefs	(working copy)
@@ -1,9 +0,0 @@
-#Sun Mar 06 09:07:40 EST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.5
Index: roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml
===================================================================
--- roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml	(revision 1132878)
+++ roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml	(working copy)
@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
-  <installed facet="java" version="1.5"/>
-  <installed facet="jst.utility" version="1.0"/>
-</faceted-project>
Index: roller-core/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- roller-core/.settings/org.maven.ide.eclipse.prefs	(revision 1132878)
+++ roller-core/.settings/org.maven.ide.eclipse.prefs	(working copy)
@@ -1,9 +0,0 @@
-#Sat Feb 27 08:50:48 EST 2010
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-includeModules=false
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-skipCompilerPlugin=true
-version=1
Index: roller-core/.settings/org.eclipse.wst.common.component
===================================================================
--- roller-core/.settings/org.eclipse.wst.common.component	(revision 1132878)
+++ roller-core/.settings/org.eclipse.wst.common.component	(working copy)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="roller-core">
-        <wb-resource deploy-path="/" source-path="/src/main/java"/>
-    </wb-module>
-</project-modules>
Index: weblogger-web/.classpath
===================================================================
--- weblogger-web/.classpath	(revision 1132878)
+++ weblogger-web/.classpath	(working copy)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
Index: weblogger-web/.project
===================================================================
--- weblogger-web/.project	(revision 1132878)
+++ weblogger-web/.project	(working copy)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>roller-weblogger-web</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>
Index: weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
===================================================================
--- weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java	(revision 1132878)
+++ weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java	(working copy)
@@ -22,6 +22,7 @@
 import java.util.UUID;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.lang.CharSetUtils;
+import org.apache.commons.lang.RandomStringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -362,6 +363,13 @@
             }
         }
         
+        // User.password does not allow null, so generate one
+        if (getOpenIdConfiguration().equals("only")) {
+            String randomString = RandomStringUtils.randomAlphanumeric(255);
+            getBean().setPasswordText(randomString);
+            getBean().setPasswordConfirm(randomString);
+        }
+        
         // check that passwords match 
         if (!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
             addError("Register.error.passowordMismatch");
Index: weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java
===================================================================
--- weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java	(revision 1132878)
+++ weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java	(working copy)
@@ -18,6 +18,9 @@
 
 package org.apache.roller.weblogger.ui.core.filters;
 
+import java.net.MalformedURLException;
+import java.net.URL;
+
 import javax.servlet.Filter;
 import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.logging.Log;
@@ -74,4 +77,34 @@
         }
         return auth;
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected String lookupRealm(String returnToUrl) {
+
+        String mapping = (String) getRealmMapping().get(returnToUrl);
+
+        if (mapping == null) {
+            try {
+                URL url = new URL(returnToUrl);
+                int port = url.getPort();
+
+                StringBuffer realmBuffer = new StringBuffer(returnToUrl.length())
+                        .append(url.getProtocol())
+                        .append("://")
+                        .append(url.getHost());
+                if (port != -1) {
+                    realmBuffer.append(":").append(port);
+                }
+                realmBuffer.append("/");
+                mapping = realmBuffer.toString();
+            } catch (MalformedURLException e) {
+                log.warn("returnToUrl was not a valid URL: [" + returnToUrl + "]", e);
+            }
+        }
+
+        return mapping;
+    }
 }
Index: weblogger-web/pom.xml
===================================================================
--- weblogger-web/pom.xml	(revision 1132878)
+++ weblogger-web/pom.xml	(working copy)
@@ -196,13 +196,6 @@
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-web</artifactId>
-            <version>2.5.6</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>aopalliance</groupId>
-                    <artifactId>aopalliance</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
@@ -214,49 +207,26 @@
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-core</artifactId>
-            <version>2.0.5.RELEASE</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework</groupId>
-                    <artifactId>spring-support</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-openid</artifactId>
-            <version>2.0.5.RELEASE</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-taglibs</artifactId>
-            <version>2.0.5.RELEASE</version>
         </dependency>
 
         <dependency>
             <groupId>org.springframework.security</groupId>
             <artifactId>spring-security-acl</artifactId>
-            <version>2.0.5.RELEASE</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework</groupId>
-                    <artifactId>spring-jdbc</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-dao</artifactId>
-            <version>2.0.6</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>aopalliance</groupId>
-                    <artifactId>aopalliance</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <!-- OpenID deps -->
@@ -296,7 +266,8 @@
         <dependency>
             <groupId>org.openid4java</groupId>
             <artifactId>openid4java-consumer</artifactId>
-            <version>0.9.5</version>
+            <version>0.9.6</version>
+            <type>pom</type>
         </dependency>
 
         <dependency>
Index: weblogger-webapp/.classpath
===================================================================
--- weblogger-webapp/.classpath	(revision 1132878)
+++ weblogger-webapp/.classpath	(working copy)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry combineaccessrules="false" kind="src" path="/roller-weblogger-web"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
-		<attributes>
-			<attribute name="owner.project.facets" value="java"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
Index: weblogger-webapp/.project
===================================================================
--- weblogger-webapp/.project	(revision 1132878)
+++ weblogger-webapp/.project	(working copy)
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>roller-weblogger-webapp</name>
-	<comment></comment>
-	<projects>
-		<project>roller_trunk</project>
-		<project>roller-core</project>
-		<project>roller-planet-business</project>
-		<project>roller-weblogger-business</project>
-		<project>roller-weblogger-web</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
-			<triggers>full,incremental,</triggers>
-			<arguments>
-				<dictionary>
-					<key>LaunchConfigHandle</key>
-					<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch</value>
-				</dictionary>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>
Index: weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp
===================================================================
--- weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp	(revision 1132878)
+++ weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp	(working copy)
@@ -101,6 +101,7 @@
         </s:if>
         <s:else>
             <s:hidden name="bean.password" />
+            <s:hidden name="bean.passwordText" />
             <s:hidden name="bean.passwordConfirm" />
         </s:else>
     
Index: weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp
===================================================================
--- weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp	(revision 1132878)
+++ weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp	(working copy)
@@ -40,13 +40,13 @@
     
     <form method="post" id="loginOpenIDForm"       
           action="/roller/roller_j_openid_security_check"      
-          onsubmit="saveUsername(this)">      
+          onsubmit="saveOpenidIdentifier(this)">      
         <!-- action="<c:url value='roller_j_openid_security_check'/>"  -->
         <table width="80%">
             <tr>
                 <td width="20%" align="right"><s:text name="loginPage.openID" /></td>
                 <td width="80%">
-                    <input type="text" name="j_username" id="j_username" class="f_openid_identifier" size="40" maxlength="255" />
+                    <input type="text" name="openid_identifier" id="openid_identifier" class="f_openid_identifier" size="40" maxlength="255" />
                 </td>
             </tr>    
             <tr>
@@ -114,17 +114,46 @@
     </form>
 </s:if>
 
-
 <script type="text/javascript">
 <!--
+<s:if test="openIdConfiguration != 'disabled'">
+function focusToOpenidForm() {
+    return (document.getElementById && document.getElementById("j_username") === null) ||
+        getCookie("favorite_authentication_method") !== "username";
+}
+
+if (document.getElementById) {
+    if (document.getElementById && getCookie("openid_identifier") !== null) {
+        document.getElementById("openid_identifier").value = getCookie("openid_identifier");
+    }
+    if (focusToOpenidForm()) {
+        document.getElementById("openid_identifier").focus();
+    }
+}
+
+function saveOpenidIdentifier(theForm) {
+    var expires = new Date();
+    expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days.
+    setCookie("openid_identifier",theForm.openid_identifier.value,expires);
+    setCookie("favorite_authentication_method", "openid");
+}
+</s:if>
+
+<s:if test="openIdConfiguration != 'only'">
+function focusToUsernamePasswordForm() {
+    return (document.getElementById && document.getElementById("openid_identifier") === null) ||
+        getCookie("favorite_authentication_method") === "username";
+}
 
 if (document.getElementById) {
     if (getCookie("username") != null) {
         if (document.getElementById) {
             document.getElementById("j_username").value = getCookie("username");
-            document.getElementById("j_password").focus();
+            if (focusToUsernamePasswordForm()) {
+                document.getElementById("j_password").focus();
+            }
         }
-    } else {
+    } else if (focusToUsernamePasswordForm()) {
         document.getElementById("j_username").focus();
     }
 }
@@ -133,6 +162,8 @@
     var expires = new Date();
     expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days.
     setCookie("username",theForm.j_username.value,expires);
+    setCookie("favorite_authentication_method", "username");
 }
+</s:if>
 //-->
-</script>
+</script>
\ No newline at end of file
Index: weblogger-webapp/src/main/webapp/WEB-INF/security.xml
===================================================================
--- weblogger-webapp/src/main/webapp/WEB-INF/security.xml	(revision 1132878)
+++ weblogger-webapp/src/main/webapp/WEB-INF/security.xml	(working copy)
@@ -80,6 +80,7 @@
         <beans:property name="userDetailsService" ref="rollerUserService"/>
     </beans:bean>
     <beans:bean id="openidAuthenticationProcessingFilter" class="org.apache.roller.weblogger.ui.core.filters.CustomOpenIDAuthenticationProcessingFilter">
+        <beans:property name="claimedIdentityFieldName" value="openid_identifier"/>
         <beans:property name="defaultTargetUrl" value="/roller-ui/menu.rol"/>
         <beans:property name="filterProcessesUrl" value="/roller_j_openid_security_check"/>
         <beans:property name="exceptionMappings">
Index: weblogger-webapp/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- weblogger-webapp/.settings/org.eclipse.jdt.core.prefs	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.jdt.core.prefs	(working copy)
@@ -1,9 +0,0 @@
-#Sun Jan 30 08:49:32 EST 2011
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
-org.eclipse.jdt.core.compiler.compliance=1.6
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.6
Index: weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name
===================================================================
--- weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name	(working copy)
@@ -1 +0,0 @@
-Window
\ No newline at end of file
Index: weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container
===================================================================
--- weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container	(working copy)
@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
Index: weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml
===================================================================
--- weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml	(working copy)
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
-  <fixed facet="wst.jsdt.web"/>
-  <installed facet="java" version="1.6"/>
-  <installed facet="wst.jsdt.web" version="1.0"/>
-  <installed facet="jst.web" version="2.5"/>
-</faceted-project>
Index: weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs
===================================================================
--- weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs	(working copy)
@@ -1,3 +0,0 @@
-#Sun Mar 13 13:24:54 EDT 2011
-eclipse.preferences.version=1
-org.eclipse.wst.ws.service.policy.projectEnabled=false
Index: weblogger-webapp/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- weblogger-webapp/.settings/org.maven.ide.eclipse.prefs	(revision 1132878)
+++ weblogger-webapp/.settings/org.maven.ide.eclipse.prefs	(working copy)
@@ -1,9 +0,0 @@
-#Sun Oct 24 10:57:02 EDT 2010
-activeProfiles=
-eclipse.preferences.version=1
-fullBuildGoals=process-test-resources
-includeModules=false
-resolveWorkspaceProjects=true
-resourceFilterGoals=process-resources resources\:testResources
-skipCompilerPlugin=true
-version=1
Index: weblogger-webapp/.settings/org.eclipse.wst.common.component
===================================================================
--- weblogger-webapp/.settings/org.eclipse.wst.common.component	(revision 1132878)
+++ weblogger-webapp/.settings/org.eclipse.wst.common.component	(working copy)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="${module}">
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
-        <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
-        <property name="context-root" value="roller"/>
-        <property name="java-output-path" value="/roller-weblogger-webapp/target/classes"/>        
-    </wb-module>
-</project-modules>
Index: pom.xml
===================================================================
--- pom.xml	(revision 1132878)
+++ pom.xml	(working copy)
@@ -30,6 +30,7 @@
         <roller.version>5.0.0</roller.version>
         <!-- avoid CLOB/BLOB error in all later versions of Derby -->
         <derby.version>10.1.3.1</derby.version>
+        <spring.version>2.0.6.RELEASE</spring.version>
     </properties>
 
     <modules>
@@ -225,6 +226,74 @@
                 <scope>compile</scope>
             </dependency>
 
+            <!-- spring deps -->
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-dao</artifactId>
+                <version>2.0.6</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>aopalliance</groupId>
+                        <artifactId>aopalliance</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework</groupId>
+                <artifactId>spring-web</artifactId>
+                <version>2.5.6</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>aopalliance</groupId>
+                        <artifactId>aopalliance</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.security</groupId>
+                <artifactId>spring-security-core</artifactId>
+                <version>${spring.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>spring-support</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.security</groupId>
+                <artifactId>spring-security-openid</artifactId>
+                <version>${spring.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.openid4java</groupId>
+                        <artifactId>openid4java</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.security</groupId>
+                <artifactId>spring-security-taglibs</artifactId>
+                <version>${spring.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.springframework.security</groupId>
+                <artifactId>spring-security-acl</artifactId>
+                <version>${spring.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.springframework</groupId>
+                        <artifactId>spring-jdbc</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
             <!-- web deps -->
 
             <dependency>
Index: weblogger-business/.classpath
===================================================================
--- weblogger-business/.classpath	(revision 1132878)
+++ weblogger-business/.classpath	(working copy)
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry excluding="**" including="**/*.java" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
Index: weblogger-business/.project
===================================================================
--- weblogger-business/.project	(revision 1132878)
+++ weblogger-business/.project	(working copy)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>roller-weblogger-business</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>
Index: planet-business/.classpath
===================================================================
--- planet-business/.classpath	(revision 1132878)
+++ planet-business/.classpath	(working copy)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
-	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
-	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>
Index: planet-business/.project
===================================================================
--- planet-business/.project	(revision 1132878)
+++ planet-business/.project	(working copy)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>roller-planet-business</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.maven.ide.eclipse.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.maven.ide.eclipse.maven2Nature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-	</natures>
-</projectDescription>


  was:
1. Fix the javascript error in Register page:
错误: document.register['bean.passwordText'] is undefined
源文件:https://example.com/roller/roller-ui/register.rol;jsessionid=043E3D9D1D765A9BD3976074DC56670C
行:1062

2. Genrate a random string for the non-nullable passphrase filed.

3. Override lookupRealm method of OpenIDAuthenticationProcessingFilter in spring-security-openid-2.0.5 to ignore the issue about appending wrong port to the url, for example, it may append "80" to an url with https scheme.

4. Use openid_identifier as the html form field to match the openid spec, and ignore duplicate ID "j_username" while using hybrid authentication methods. Enhanced the function: restoring username from cookie.


> Patch for the bug of OpenID only authentication
> -----------------------------------------------
>
>                 Key: ROL-1925
>                 URL: https://issues.apache.org/jira/browse/ROL-1925
>             Project: Roller
>          Issue Type: Bug
>          Components: Authentication, Roles and Access Controls
>    Affects Versions: 5.0
>            Reporter: Shutra
>            Assignee: Roller Unassigned
>              Labels: patch
>             Fix For: 5.0
>
>
> 1. Fix the javascript error in Register page:
> 错误: document.register['bean.passwordText'] is undefined
> 源文件:https://example.com/roller/roller-ui/register.rol;jsessionid=043E3D9D1D765A9BD3976074DC56670C
> 行:1062
> 2. Genrate a random string for the non-nullable passphrase filed.
> 3. Override lookupRealm method of OpenIDAuthenticationProcessingFilter in spring-security-openid-2.0.5 to ignore the issue about appending wrong port to the url, for example, it may append "80" to an url with https scheme.
> 4. Use openid_identifier as the html form field to match the openid spec, and ignore duplicate ID "j_username" while using hybrid authentication methods. Enhanced the function: restoring username from cookie.
> 5. svn rm some .classpath .project .settings files
> 6. orgnized the spring dependencies
> Patch:
> Index: roller-core/.classpath
> ===================================================================
> --- roller-core/.classpath	(revision 1132878)
> +++ roller-core/.classpath	(working copy)
> @@ -1,13 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<classpath>
> -	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
> -	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
> -	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
> -		<attributes>
> -			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
> -		</attributes>
> -	</classpathentry>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
> -	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> -	<classpathentry kind="output" path="target/classes"/>
> -</classpath>
> Index: roller-core/.project
> ===================================================================
> --- roller-core/.project	(revision 1132878)
> +++ roller-core/.project	(working copy)
> @@ -1,36 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<projectDescription>
> -	<name>roller-core</name>
> -	<comment></comment>
> -	<projects>
> -	</projects>
> -	<buildSpec>
> -		<buildCommand>
> -			<name>org.eclipse.wst.common.project.facet.core.builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.jdt.core.javabuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.maven.ide.eclipse.maven2Builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.validation.validationbuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -	</buildSpec>
> -	<natures>
> -		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
> -		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
> -		<nature>org.eclipse.jdt.core.javanature</nature>
> -		<nature>org.maven.ide.eclipse.maven2Nature</nature>
> -		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
> -	</natures>
> -</projectDescription>
> Index: roller-core/.settings/org.eclipse.jdt.core.prefs
> ===================================================================
> --- roller-core/.settings/org.eclipse.jdt.core.prefs	(revision 1132878)
> +++ roller-core/.settings/org.eclipse.jdt.core.prefs	(working copy)
> @@ -1,9 +0,0 @@
> -#Sun Mar 06 09:07:40 EST 2011
> -eclipse.preferences.version=1
> -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
> -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
> -org.eclipse.jdt.core.compiler.compliance=1.5
> -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
> -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
> -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
> -org.eclipse.jdt.core.compiler.source=1.5
> Index: roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml
> ===================================================================
> --- roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml	(revision 1132878)
> +++ roller-core/.settings/org.eclipse.wst.common.project.facet.core.xml	(working copy)
> @@ -1,5 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<faceted-project>
> -  <installed facet="java" version="1.5"/>
> -  <installed facet="jst.utility" version="1.0"/>
> -</faceted-project>
> Index: roller-core/.settings/org.maven.ide.eclipse.prefs
> ===================================================================
> --- roller-core/.settings/org.maven.ide.eclipse.prefs	(revision 1132878)
> +++ roller-core/.settings/org.maven.ide.eclipse.prefs	(working copy)
> @@ -1,9 +0,0 @@
> -#Sat Feb 27 08:50:48 EST 2010
> -activeProfiles=
> -eclipse.preferences.version=1
> -fullBuildGoals=process-test-resources
> -includeModules=false
> -resolveWorkspaceProjects=true
> -resourceFilterGoals=process-resources resources\:testResources
> -skipCompilerPlugin=true
> -version=1
> Index: roller-core/.settings/org.eclipse.wst.common.component
> ===================================================================
> --- roller-core/.settings/org.eclipse.wst.common.component	(revision 1132878)
> +++ roller-core/.settings/org.eclipse.wst.common.component	(working copy)
> @@ -1,6 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<project-modules id="moduleCoreId" project-version="1.5.0">
> -    <wb-module deploy-name="roller-core">
> -        <wb-resource deploy-path="/" source-path="/src/main/java"/>
> -    </wb-module>
> -</project-modules>
> Index: weblogger-web/.classpath
> ===================================================================
> --- weblogger-web/.classpath	(revision 1132878)
> +++ weblogger-web/.classpath	(working copy)
> @@ -1,15 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<classpath>
> -	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
> -	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
> -	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
> -	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
> -	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
> -		<attributes>
> -			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
> -		</attributes>
> -	</classpathentry>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
> -	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> -	<classpathentry kind="output" path="target/classes"/>
> -</classpath>
> Index: weblogger-web/.project
> ===================================================================
> --- weblogger-web/.project	(revision 1132878)
> +++ weblogger-web/.project	(working copy)
> @@ -1,36 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<projectDescription>
> -	<name>roller-weblogger-web</name>
> -	<comment></comment>
> -	<projects>
> -	</projects>
> -	<buildSpec>
> -		<buildCommand>
> -			<name>org.eclipse.wst.common.project.facet.core.builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.jdt.core.javabuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.maven.ide.eclipse.maven2Builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.validation.validationbuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -	</buildSpec>
> -	<natures>
> -		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
> -		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
> -		<nature>org.eclipse.jdt.core.javanature</nature>
> -		<nature>org.maven.ide.eclipse.maven2Nature</nature>
> -		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
> -	</natures>
> -</projectDescription>
> Index: weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java
> ===================================================================
> --- weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java	(revision 1132878)
> +++ weblogger-web/src/main/java/org/apache/roller/weblogger/ui/struts2/core/Register.java	(working copy)
> @@ -22,6 +22,7 @@
>  import java.util.UUID;
>  import javax.servlet.http.HttpServletRequest;
>  import org.apache.commons.lang.CharSetUtils;
> +import org.apache.commons.lang.RandomStringUtils;
>  import org.apache.commons.lang.StringUtils;
>  import org.apache.commons.logging.Log;
>  import org.apache.commons.logging.LogFactory;
> @@ -362,6 +363,13 @@
>              }
>          }
>          
> +        // User.password does not allow null, so generate one
> +        if (getOpenIdConfiguration().equals("only")) {
> +            String randomString = RandomStringUtils.randomAlphanumeric(255);
> +            getBean().setPasswordText(randomString);
> +            getBean().setPasswordConfirm(randomString);
> +        }
> +        
>          // check that passwords match 
>          if (!getBean().getPasswordText().equals(getBean().getPasswordConfirm())) {
>              addError("Register.error.passowordMismatch");
> Index: weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java
> ===================================================================
> --- weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java	(revision 1132878)
> +++ weblogger-web/src/main/java/org/apache/roller/weblogger/ui/core/filters/CustomOpenIDAuthenticationProcessingFilter.java	(working copy)
> @@ -18,6 +18,9 @@
>  
>  package org.apache.roller.weblogger.ui.core.filters;
>  
> +import java.net.MalformedURLException;
> +import java.net.URL;
> +
>  import javax.servlet.Filter;
>  import javax.servlet.http.HttpServletRequest;
>  import org.apache.commons.logging.Log;
> @@ -74,4 +77,34 @@
>          }
>          return auth;
>      }
> +
> +    /**
> +     * {@inheritDoc}
> +     */
> +    @Override
> +    protected String lookupRealm(String returnToUrl) {
> +
> +        String mapping = (String) getRealmMapping().get(returnToUrl);
> +
> +        if (mapping == null) {
> +            try {
> +                URL url = new URL(returnToUrl);
> +                int port = url.getPort();
> +
> +                StringBuffer realmBuffer = new StringBuffer(returnToUrl.length())
> +                        .append(url.getProtocol())
> +                        .append("://")
> +                        .append(url.getHost());
> +                if (port != -1) {
> +                    realmBuffer.append(":").append(port);
> +                }
> +                realmBuffer.append("/");
> +                mapping = realmBuffer.toString();
> +            } catch (MalformedURLException e) {
> +                log.warn("returnToUrl was not a valid URL: [" + returnToUrl + "]", e);
> +            }
> +        }
> +
> +        return mapping;
> +    }
>  }
> Index: weblogger-web/pom.xml
> ===================================================================
> --- weblogger-web/pom.xml	(revision 1132878)
> +++ weblogger-web/pom.xml	(working copy)
> @@ -196,13 +196,6 @@
>          <dependency>
>              <groupId>org.springframework</groupId>
>              <artifactId>spring-web</artifactId>
> -            <version>2.5.6</version>
> -            <exclusions>
> -                <exclusion>
> -                    <groupId>aopalliance</groupId>
> -                    <artifactId>aopalliance</artifactId>
> -                </exclusion>
> -            </exclusions>
>          </dependency>
>  
>          <dependency>
> @@ -214,49 +207,26 @@
>          <dependency>
>              <groupId>org.springframework.security</groupId>
>              <artifactId>spring-security-core</artifactId>
> -            <version>2.0.5.RELEASE</version>
> -            <exclusions>
> -                <exclusion>
> -                    <groupId>org.springframework</groupId>
> -                    <artifactId>spring-support</artifactId>
> -                </exclusion>
> -            </exclusions>
>          </dependency>
>  
>          <dependency>
>              <groupId>org.springframework.security</groupId>
>              <artifactId>spring-security-openid</artifactId>
> -            <version>2.0.5.RELEASE</version>
>          </dependency>
>  
>          <dependency>
>              <groupId>org.springframework.security</groupId>
>              <artifactId>spring-security-taglibs</artifactId>
> -            <version>2.0.5.RELEASE</version>
>          </dependency>
>  
>          <dependency>
>              <groupId>org.springframework.security</groupId>
>              <artifactId>spring-security-acl</artifactId>
> -            <version>2.0.5.RELEASE</version>
> -            <exclusions>
> -                <exclusion>
> -                    <groupId>org.springframework</groupId>
> -                    <artifactId>spring-jdbc</artifactId>
> -                </exclusion>
> -            </exclusions>
>          </dependency>
>  
>          <dependency>
>              <groupId>org.springframework</groupId>
>              <artifactId>spring-dao</artifactId>
> -            <version>2.0.6</version>
> -            <exclusions>
> -                <exclusion>
> -                    <groupId>aopalliance</groupId>
> -                    <artifactId>aopalliance</artifactId>
> -                </exclusion>
> -            </exclusions>
>          </dependency>
>  
>          <!-- OpenID deps -->
> @@ -296,7 +266,8 @@
>          <dependency>
>              <groupId>org.openid4java</groupId>
>              <artifactId>openid4java-consumer</artifactId>
> -            <version>0.9.5</version>
> +            <version>0.9.6</version>
> +            <type>pom</type>
>          </dependency>
>  
>          <dependency>
> Index: weblogger-webapp/.classpath
> ===================================================================
> --- weblogger-webapp/.classpath	(revision 1132878)
> +++ weblogger-webapp/.classpath	(working copy)
> @@ -1,14 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<classpath>
> -	<classpathentry combineaccessrules="false" kind="src" path="/roller-weblogger-web"/>
> -	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
> -	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
> -	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
> -		<attributes>
> -			<attribute name="owner.project.facets" value="java"/>
> -		</attributes>
> -	</classpathentry>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
> -	<classpathentry kind="output" path="target/classes"/>
> -</classpath>
> Index: weblogger-webapp/.project
> ===================================================================
> --- weblogger-webapp/.project	(revision 1132878)
> +++ weblogger-webapp/.project	(working copy)
> @@ -1,52 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<projectDescription>
> -	<name>roller-weblogger-webapp</name>
> -	<comment></comment>
> -	<projects>
> -		<project>roller_trunk</project>
> -		<project>roller-core</project>
> -		<project>roller-planet-business</project>
> -		<project>roller-weblogger-business</project>
> -		<project>roller-weblogger-web</project>
> -	</projects>
> -	<buildSpec>
> -		<buildCommand>
> -			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
> -			<triggers>full,incremental,</triggers>
> -			<arguments>
> -				<dictionary>
> -					<key>LaunchConfigHandle</key>
> -					<value>&lt;project&gt;/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch</value>
> -				</dictionary>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.common.project.facet.core.builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.jdt.core.javabuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.maven.ide.eclipse.maven2Builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.validation.validationbuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -	</buildSpec>
> -	<natures>
> -		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
> -		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
> -		<nature>org.maven.ide.eclipse.maven2Nature</nature>
> -		<nature>org.eclipse.jdt.core.javanature</nature>
> -		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
> -		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
> -	</natures>
> -</projectDescription>
> Index: weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp
> ===================================================================
> --- weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp	(revision 1132878)
> +++ weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Register.jsp	(working copy)
> @@ -101,6 +101,7 @@
>          </s:if>
>          <s:else>
>              <s:hidden name="bean.password" />
> +            <s:hidden name="bean.passwordText" />
>              <s:hidden name="bean.passwordConfirm" />
>          </s:else>
>      
> Index: weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp
> ===================================================================
> --- weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp	(revision 1132878)
> +++ weblogger-webapp/src/main/webapp/WEB-INF/jsps/core/Login.jsp	(working copy)
> @@ -40,13 +40,13 @@
>      
>      <form method="post" id="loginOpenIDForm"       
>            action="/roller/roller_j_openid_security_check"      
> -          onsubmit="saveUsername(this)">      
> +          onsubmit="saveOpenidIdentifier(this)">      
>          <!-- action="<c:url value='roller_j_openid_security_check'/>"  -->
>          <table width="80%">
>              <tr>
>                  <td width="20%" align="right"><s:text name="loginPage.openID" /></td>
>                  <td width="80%">
> -                    <input type="text" name="j_username" id="j_username" class="f_openid_identifier" size="40" maxlength="255" />
> +                    <input type="text" name="openid_identifier" id="openid_identifier" class="f_openid_identifier" size="40" maxlength="255" />
>                  </td>
>              </tr>    
>              <tr>
> @@ -114,17 +114,46 @@
>      </form>
>  </s:if>
>  
> -
>  <script type="text/javascript">
>  <!--
> +<s:if test="openIdConfiguration != 'disabled'">
> +function focusToOpenidForm() {
> +    return (document.getElementById && document.getElementById("j_username") === null) ||
> +        getCookie("favorite_authentication_method") !== "username";
> +}
> +
> +if (document.getElementById) {
> +    if (document.getElementById && getCookie("openid_identifier") !== null) {
> +        document.getElementById("openid_identifier").value = getCookie("openid_identifier");
> +    }
> +    if (focusToOpenidForm()) {
> +        document.getElementById("openid_identifier").focus();
> +    }
> +}
> +
> +function saveOpenidIdentifier(theForm) {
> +    var expires = new Date();
> +    expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days.
> +    setCookie("openid_identifier",theForm.openid_identifier.value,expires);
> +    setCookie("favorite_authentication_method", "openid");
> +}
> +</s:if>
> +
> +<s:if test="openIdConfiguration != 'only'">
> +function focusToUsernamePasswordForm() {
> +    return (document.getElementById && document.getElementById("openid_identifier") === null) ||
> +        getCookie("favorite_authentication_method") === "username";
> +}
>  
>  if (document.getElementById) {
>      if (getCookie("username") != null) {
>          if (document.getElementById) {
>              document.getElementById("j_username").value = getCookie("username");
> -            document.getElementById("j_password").focus();
> +            if (focusToUsernamePasswordForm()) {
> +                document.getElementById("j_password").focus();
> +            }
>          }
> -    } else {
> +    } else if (focusToUsernamePasswordForm()) {
>          document.getElementById("j_username").focus();
>      }
>  }
> @@ -133,6 +162,8 @@
>      var expires = new Date();
>      expires.setTime(expires.getTime() + 24 * 30 * 60 * 60 * 1000); // sets it for approx 30 days.
>      setCookie("username",theForm.j_username.value,expires);
> +    setCookie("favorite_authentication_method", "username");
>  }
> +</s:if>
>  //-->
> -</script>
> +</script>
> \ No newline at end of file
> Index: weblogger-webapp/src/main/webapp/WEB-INF/security.xml
> ===================================================================
> --- weblogger-webapp/src/main/webapp/WEB-INF/security.xml	(revision 1132878)
> +++ weblogger-webapp/src/main/webapp/WEB-INF/security.xml	(working copy)
> @@ -80,6 +80,7 @@
>          <beans:property name="userDetailsService" ref="rollerUserService"/>
>      </beans:bean>
>      <beans:bean id="openidAuthenticationProcessingFilter" class="org.apache.roller.weblogger.ui.core.filters.CustomOpenIDAuthenticationProcessingFilter">
> +        <beans:property name="claimedIdentityFieldName" value="openid_identifier"/>
>          <beans:property name="defaultTargetUrl" value="/roller-ui/menu.rol"/>
>          <beans:property name="filterProcessesUrl" value="/roller_j_openid_security_check"/>
>          <beans:property name="exceptionMappings">
> Index: weblogger-webapp/.settings/org.eclipse.jdt.core.prefs
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.jdt.core.prefs	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.jdt.core.prefs	(working copy)
> @@ -1,9 +0,0 @@
> -#Sun Jan 30 08:49:32 EST 2011
> -eclipse.preferences.version=1
> -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
> -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
> -org.eclipse.jdt.core.compiler.compliance=1.6
> -org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
> -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
> -org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
> -org.eclipse.jdt.core.compiler.source=1.6
> Index: weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.name	(working copy)
> @@ -1 +0,0 @@
> -Window
> \ No newline at end of file
> Index: weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.wst.jsdt.ui.superType.container	(working copy)
> @@ -1 +0,0 @@
> -org.eclipse.wst.jsdt.launching.baseBrowserLibrary
> \ No newline at end of file
> Index: weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.wst.common.project.facet.core.xml	(working copy)
> @@ -1,7 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<faceted-project>
> -  <fixed facet="wst.jsdt.web"/>
> -  <installed facet="java" version="1.6"/>
> -  <installed facet="wst.jsdt.web" version="1.0"/>
> -  <installed facet="jst.web" version="2.5"/>
> -</faceted-project>
> Index: weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.wst.ws.service.policy.prefs	(working copy)
> @@ -1,3 +0,0 @@
> -#Sun Mar 13 13:24:54 EDT 2011
> -eclipse.preferences.version=1
> -org.eclipse.wst.ws.service.policy.projectEnabled=false
> Index: weblogger-webapp/.settings/org.maven.ide.eclipse.prefs
> ===================================================================
> --- weblogger-webapp/.settings/org.maven.ide.eclipse.prefs	(revision 1132878)
> +++ weblogger-webapp/.settings/org.maven.ide.eclipse.prefs	(working copy)
> @@ -1,9 +0,0 @@
> -#Sun Oct 24 10:57:02 EDT 2010
> -activeProfiles=
> -eclipse.preferences.version=1
> -fullBuildGoals=process-test-resources
> -includeModules=false
> -resolveWorkspaceProjects=true
> -resourceFilterGoals=process-resources resources\:testResources
> -skipCompilerPlugin=true
> -version=1
> Index: weblogger-webapp/.settings/org.eclipse.wst.common.component
> ===================================================================
> --- weblogger-webapp/.settings/org.eclipse.wst.common.component	(revision 1132878)
> +++ weblogger-webapp/.settings/org.eclipse.wst.common.component	(working copy)
> @@ -1,9 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<project-modules id="moduleCoreId" project-version="1.5.0">
> -    <wb-module deploy-name="${module}">
> -        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
> -        <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
> -        <property name="context-root" value="roller"/>
> -        <property name="java-output-path" value="/roller-weblogger-webapp/target/classes"/>        
> -    </wb-module>
> -</project-modules>
> Index: pom.xml
> ===================================================================
> --- pom.xml	(revision 1132878)
> +++ pom.xml	(working copy)
> @@ -30,6 +30,7 @@
>          <roller.version>5.0.0</roller.version>
>          <!-- avoid CLOB/BLOB error in all later versions of Derby -->
>          <derby.version>10.1.3.1</derby.version>
> +        <spring.version>2.0.6.RELEASE</spring.version>
>      </properties>
>  
>      <modules>
> @@ -225,6 +226,74 @@
>                  <scope>compile</scope>
>              </dependency>
>  
> +            <!-- spring deps -->
> +
> +            <dependency>
> +                <groupId>org.springframework</groupId>
> +                <artifactId>spring-dao</artifactId>
> +                <version>2.0.6</version>
> +                <exclusions>
> +                    <exclusion>
> +                        <groupId>aopalliance</groupId>
> +                        <artifactId>aopalliance</artifactId>
> +                    </exclusion>
> +                </exclusions>
> +            </dependency>
> +
> +            <dependency>
> +                <groupId>org.springframework</groupId>
> +                <artifactId>spring-web</artifactId>
> +                <version>2.5.6</version>
> +                <exclusions>
> +                    <exclusion>
> +                        <groupId>aopalliance</groupId>
> +                        <artifactId>aopalliance</artifactId>
> +                    </exclusion>
> +                </exclusions>
> +            </dependency>
> +
> +            <dependency>
> +                <groupId>org.springframework.security</groupId>
> +                <artifactId>spring-security-core</artifactId>
> +                <version>${spring.version}</version>
> +                <exclusions>
> +                    <exclusion>
> +                        <groupId>org.springframework</groupId>
> +                        <artifactId>spring-support</artifactId>
> +                    </exclusion>
> +                </exclusions>
> +            </dependency>
> +
> +            <dependency>
> +                <groupId>org.springframework.security</groupId>
> +                <artifactId>spring-security-openid</artifactId>
> +                <version>${spring.version}</version>
> +                <exclusions>
> +                    <exclusion>
> +                        <groupId>org.openid4java</groupId>
> +                        <artifactId>openid4java</artifactId>
> +                    </exclusion>
> +                </exclusions>
> +            </dependency>
> +
> +            <dependency>
> +                <groupId>org.springframework.security</groupId>
> +                <artifactId>spring-security-taglibs</artifactId>
> +                <version>${spring.version}</version>
> +            </dependency>
> +
> +            <dependency>
> +                <groupId>org.springframework.security</groupId>
> +                <artifactId>spring-security-acl</artifactId>
> +                <version>${spring.version}</version>
> +                <exclusions>
> +                    <exclusion>
> +                        <groupId>org.springframework</groupId>
> +                        <artifactId>spring-jdbc</artifactId>
> +                    </exclusion>
> +                </exclusions>
> +            </dependency>
> +
>              <!-- web deps -->
>  
>              <dependency>
> Index: weblogger-business/.classpath
> ===================================================================
> --- weblogger-business/.classpath	(revision 1132878)
> +++ weblogger-business/.classpath	(working copy)
> @@ -1,11 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<classpath>
> -	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
> -	<classpathentry excluding="**" including="**/*.java" kind="src" output="target/classes" path="src/main/resources"/>
> -	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
> -	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
> -	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
> -	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> -	<classpathentry kind="output" path="target/classes"/>
> -</classpath>
> Index: weblogger-business/.project
> ===================================================================
> --- weblogger-business/.project	(revision 1132878)
> +++ weblogger-business/.project	(working copy)
> @@ -1,36 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<projectDescription>
> -	<name>roller-weblogger-business</name>
> -	<comment></comment>
> -	<projects>
> -	</projects>
> -	<buildSpec>
> -		<buildCommand>
> -			<name>org.eclipse.wst.common.project.facet.core.builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.jdt.core.javabuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.maven.ide.eclipse.maven2Builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.validation.validationbuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -	</buildSpec>
> -	<natures>
> -		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
> -		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
> -		<nature>org.eclipse.jdt.core.javanature</nature>
> -		<nature>org.maven.ide.eclipse.maven2Nature</nature>
> -		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
> -	</natures>
> -</projectDescription>
> Index: planet-business/.classpath
> ===================================================================
> --- planet-business/.classpath	(revision 1132878)
> +++ planet-business/.classpath	(working copy)
> @@ -1,15 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<classpath>
> -	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
> -	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
> -	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
> -	<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
> -	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER">
> -		<attributes>
> -			<attribute name="org.eclipse.jst.component.nondependency" value=""/>
> -		</attributes>
> -	</classpathentry>
> -	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
> -	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> -	<classpathentry kind="output" path="target/classes"/>
> -</classpath>
> Index: planet-business/.project
> ===================================================================
> --- planet-business/.project	(revision 1132878)
> +++ planet-business/.project	(working copy)
> @@ -1,36 +0,0 @@
> -<?xml version="1.0" encoding="UTF-8"?>
> -<projectDescription>
> -	<name>roller-planet-business</name>
> -	<comment></comment>
> -	<projects>
> -	</projects>
> -	<buildSpec>
> -		<buildCommand>
> -			<name>org.eclipse.wst.common.project.facet.core.builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.jdt.core.javabuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.maven.ide.eclipse.maven2Builder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -		<buildCommand>
> -			<name>org.eclipse.wst.validation.validationbuilder</name>
> -			<arguments>
> -			</arguments>
> -		</buildCommand>
> -	</buildSpec>
> -	<natures>
> -		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
> -		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
> -		<nature>org.eclipse.jdt.core.javanature</nature>
> -		<nature>org.maven.ide.eclipse.maven2Nature</nature>
> -		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
> -	</natures>
> -</projectDescription>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira