Modified: 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
(original)
+++ 
roller/trunk/apps/weblogger/web/WEB-INF/classes/ApplicationResources.properties 
Sun Sep 14 19:49:10 2008
@@ -809,8 +809,12 @@
 
 loginPage.title=Welcome to Roller
 loginPage.prompt=Please enter your username and password to login.
+loginPage.openIdPrompt=Please login via OpenID
+loginPage.openIdHybridPrompt=Or, login with your username and password
 loginPage.userName=Username
 loginPage.password=Password
+loginPage.openID=OpenID username
+loginPage.loginOpenID=Login
 loginPage.rememberMe=Remember Me
 loginPage.login=Login
 loginPage.reset=Reset
@@ -1585,27 +1589,69 @@
 
 # --------------------------------------------------------------- User register
 
-userRegister.prompt=Use this form to register a new Roller user, please \
-create only one user account per person.
+userRegister.prompt=Welcome! Before you can get started, you need to create a \
+new user account. Please complete this form and click the button at the end \
+to request your new account. <b>All fields are required</b>.
 
-userRegister.button.save=Register User
-userRegister.button.cancel=Cancel
+Register.disabled=The administrator of this site has disabled user 
registrations \
+at this time. Please contact the system administrators if you think this is \
+incorrect.
+
+userRegister.heading.identification=How would you like to be identified?
+userRegister.tip.identification=Enter your name(s) so you can be identified on 
\
+this site and your email address so we can reach you for account activation.
+
+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. 
+
+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.
+
+userRegister.tip.fullName=Your full name (with no HTML), first and last. Some \
+weblog themes will display this instead of (or in addition to) your screenname.
 
-userRegister.tip.screenName=Your desired screen name (with no HTML).
-userRegister.tip.fullName=Your full name (with no HTML).
-userRegister.tip.userName=A short one-word username for your user account. \
-Please limit it to simple ASCII alphanumeric characters (a-z, A-Z and 0-9), \
-and do not use HTML.
 userRegister.tip.email=Please enter valid email address, the site 
administrator \
 may disable your account if he/she cannot reach you via email.
-userRegister.tip.timeZone=Your preferred timezone.
-userRegister.tip.locale=Your preferred locale.
+
+
+userRegister.heading.authentication=How will you be authenticated?
+
+userRegister.tip.openid.disabled=Enter a password to be used when you login \
+and confirm that password by entering it a second time.
+
+userRegister.tip.openid.hybrid=You can choose to login via password only you \
+can by OpenID only, or you can specify both if you would to be able to login \
+both ways. For more information about OpenID see \
+<a href=\"http://openid.net\";>http://openid.net</a>.
+
+userRegister.tip.openid.only=This site uses only OpenID for logins, so please \
+specify your OpenID identifier below. For more information about OpenID see \
+<a href=\"http://openid.net\";>http://openid.net</a>.
+
 userRegister.tip.password=Your password.
 userRegister.tip.passwordConfirm=Confirm your password.
+userRegister.tip.openIdUrl=Your OpenID identifier (in the form of a URL).
 
-Register.disabled=The administrator of this site has disabled user 
registrations \
-at this time.  Please contact the system administrators if you think this is \
-incorrect.
+
+userRegister.heading.locale=What are your locale and timezone settings?
+
+userRegister.tip.localeAndTimeZone=We have attempted to guess your preferred \
+locale and timezone settings below. Please set them correctly as they will be \
+used in the weblog entries you create.
+
+userRegister.tip.timeZone=Your preferred timezone.
+userRegister.tip.locale=Your preferred locale.
+
+userRegister.heading.ready=Ready to roll?
+userRegister.tip.ready=When you are, click the button below.
+
+userRegister.button.save=Register User
+userRegister.button.cancel=Cancel
+
+userRegister.success.ready=Yes, form appears to be complete. Click the button 
below.
+userRegister.error.mismatchedPasswords=Your passwords do not match!
 
 # errors from validation
 Register.error.nameNull=User Name is a required field
@@ -1641,6 +1687,7 @@
 userSettings.email=Email
 userSettings.locale=Locale
 userSettings.timeZone=Timezone
+userSettings.openIdUrl=OpenID name
 userSettings.save=Save
 userSettings.cookieLogin=You cannot change passwords when logging in with the \
 Remember Me feature.  Please logout and log back in to \

Added: 
roller/trunk/apps/weblogger/web/WEB-INF/classes/spring-security-2.0.1-openidfix.xsd
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/spring-security-2.0.1-openidfix.xsd?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: 
roller/trunk/apps/weblogger/web/WEB-INF/classes/spring-security-2.0.1-openidfix.xsd
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Login.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Login.jsp?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Login.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Login.jsp Sun Sep 14 
19:49:10 2008
@@ -33,52 +33,87 @@
 }
 %>
 
-<p><s:text name="loginPage.prompt" /></p>
 
-<form method="post" id="loginForm" 
-      action="<c:url value="<%= securityCheckUrl %>"/>"
-      onsubmit="saveUsername(this)">
-      
-    <table>
-        
-        <tr>
-            <th><s:text name="loginPage.userName" />:</th>
-            <td>
-                <input type="text" name="j_username" id="j_username" size="25" 
/>
-            </td>
-        </tr>
-        
-        <tr>
-            <th><s:text name="loginPage.password" />:</th>
-            <td>
-                <input type="password" name="j_password" id="j_password" 
size="20" />
-            </td>
-        </tr>
-        
-        <c:if test="${rememberMeEnabled}">
-        <tr>
-            <td></td>
-            <td>
-                <input type="checkbox" name="rememberMe" id="rememberMe" />
-                <label for="rememberMe">
-                    <s:text name="loginPage.rememberMe" />
-                </label>
-            </td>
-        </tr>
-        </c:if>
-        
-        <tr>
-            <td></td>
-            <td>
-                <input type="submit" name="login" id="login" value="<s:text 
name="loginPage.login" />" />
-                <input type="reset" name="reset" id="reset" value="<s:text 
name="loginPage.reset" />" 
-                    onclick="$('j_username').focus()" />
-            </td>
-        </tr>
-        
-    </table>
+<s:if test="openIdConfiguration != 'disabled'">
     
-</form>
+    <p><s:text name="loginPage.openIdPrompt" /></p>
+    
+    <form method="post" id="loginOpenIDForm"       
+          action="/roller/roller_j_openid_security_check"      
+          onsubmit="saveUsername(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" />
+                </td>
+            </tr>    
+            <tr>
+                <td width="20%"></td>
+                <td width="80%">
+                    <input type="submit" name="submit" id="submit" 
value="<s:text name="loginPage.loginOpenID" />" />
+                </td>
+            </tr>
+        </table> 
+    </form>
+</s:if>
+
+<s:if test="openIdConfiguration != 'only'">
+
+    <s:if test="openIdConfiguration == 'hybrid'">
+        <p><s:text name="loginPage.openIdHybridPrompt" /></p>
+    </s:if>
+    
+    <s:if test="openIdConfiguration == 'disabled'">
+        <p><s:text name="loginPage.prompt" /></p>
+    </s:if>
+    
+    <form method="post" id="loginForm" 
+          action="<c:url value="<%= securityCheckUrl %>"/>"
+          onsubmit="saveUsername(this)">
+
+        <table width="80%">
+
+            <tr>
+                <td width="20%" align="right"><s:text 
name="loginPage.userName" /></td>
+                <td width="80%">
+                    <input type="text" name="j_username" id="j_username" 
size="25" />
+                </td>
+            </tr>
+
+            <tr>
+                <td width="20%" align="right"><s:text 
name="loginPage.password" /></td>
+                <td width="80%">
+                    <input type="password" name="j_password" id="j_password" 
size="20" />
+                </td>
+            </tr>
+
+            <c:if test="${rememberMeEnabled}">
+            <tr>
+                <td width="20%"></td>
+                <td width="80%">
+                    <input type="checkbox" name="rememberMe" id="rememberMe" />
+                    <label for="rememberMe">
+                        <s:text name="loginPage.rememberMe" />
+                    </label>
+                </td>
+            </tr>
+            </c:if>
+
+            <tr>
+                <td width="20%"></td>
+                <td width="80%">
+                    <input type="submit" name="login" id="login" 
value="<s:text name="loginPage.login" />" />
+                    <input type="reset" name="reset" id="reset" value="<s:text 
name="loginPage.reset" />" 
+                        onclick="$('j_username').focus()" />
+                </td>
+            </tr>        
+
+        </table>    
+    </form>
+</s:if>
+
 
 <script type="text/javascript">
 <!--

Modified: roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Profile.jsp
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Profile.jsp?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Profile.jsp (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/jsps/core/Profile.jsp Sun Sep 14 
19:49:10 2008
@@ -15,8 +15,12 @@
   copyright in this work, please see the NOTICE file in the top level
   directory of this distribution.
 --%>
+<%@ page import="org.apache.roller.weblogger.config.WebloggerConfig" %>
 <%@ include file="/WEB-INF/jsps/taglibs-struts2.jsp" %>
 
+<%!
+boolean openidEnabled = 
WebloggerConfig.getBooleanProperty("authentication.openid.enabled");
+%>
 <p class="subtitle"><s:text name="yourProfile.description" /></p>
 
 <s:form action="profile!save">
@@ -30,20 +34,6 @@
         </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" 
/>
-            </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="screenName" /><s:text 
name="userSettings.screenname" /></label></td>
             <td class="field"><s:textfield name="bean.screenName" size="30" 
maxlength="30" /></td>
             <td class="description"><s:text name="userRegister.tip.screenName" 
/></td>
@@ -61,6 +51,34 @@
             <td class="description"><s:text name="userRegister.tip.email" 
/></td>
         </tr>
         
+        <s:if test="openIdConfiguration != 'only'">
+        <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" 
/>
+            </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:if>
+        <s:else>
+            <s:hidden name="bean.password" />
+            <s:hidden name="bean.passwordConfirm" />
+        </s:else>
+        
+        <s:if test="openIdConfiguration != 'disabled'">
+            <tr>
+                <td class="label"><label for="openIdUrl" /><s:text 
name="userSettings.openIdUrl" /></label></td>
+                <td class="field"><s:textfield name="bean.openIdUrl" size="40" 
maxlength="255" id="f_openid_identifier" /></td>
+                <td class="description"><s:text 
name="userRegister.tip.openIdUrl" /></td>
+            </tr>     
+        </s:if>
+        
         <tr>
             <td class="label"><label for="locale" /><s:text 
name="userSettings.locale" /></label></td>
             <td class="field">

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=695329&r1=695328&r2=695329&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 Sun Sep 14 
19:49:10 2008
@@ -24,76 +24,168 @@
     <s:hidden name="bean.enabled" />
 
 <table class="formtable">
+    <tr>
+        <td colspan="3">
+            <h2><s:text name="userRegister.heading.identification" /></h2>
+            <p><s:text name="userRegister.tip.identification" /></p>
+        </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" onkeyup="onChange()" /></td>
+            <td class="description"><s:text name="userRegister.tip.userName" 
/></td>
+        </tr>
+    </s:else>
+     
+    <tr>
+        <td class="label"><label for="screenName" /><s:text 
name="userSettings.screenname" /></label></td>
+        <td class="field"><s:textfield name="bean.screenName" size="30" 
maxlength="30" onkeyup="onChange()" /></td>
+        <td class="description"><s:text name="userRegister.tip.screenName" 
/></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>
+        <td class="label"><label for="fullName" /><s:text 
name="userSettings.fullname" /></label></td>
+        <td class="field"><s:textfield name="bean.fullName" size="30" 
maxlength="30" onkeyup="onChange()" /></td>
+        <td class="description"><s:text name="userRegister.tip.fullName" 
/></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>
+        <td class="label"><label for="emailAddress" /><s:text 
name="userSettings.email" /></label></td>
+        <td class="field"><s:textfield name="bean.emailAddress" size="40" 
maxlength="40" onkeyup="onChange()" /></td>
+        <td class="description"><s:text name="userRegister.tip.email" /></td>
+    </tr>
+
+    <s:if test="!fromSso">
+        <tr>
+            <td colspan="3">
+                <h2><s:text name="userRegister.heading.authentication" /></h2>
+
+                <s:if test="openIdConfiguration == 'disabled'">
+                <p><s:text name="userRegister.tip.openid.disabled" /></p>      
              
+                </s:if>
+
+                <s:if test="openIdConfiguration == 'hybrid'">
+                <p><s:text name="userRegister.tip.openid.hybrid" /></p>        
            
+                </s:if>
+
+                <s:if test="openIdConfiguration == 'only'">
+                <p><s:text name="userRegister.tip.openid.only" /></p>          
          
+                </s:if>
+            </td>
+        </tr>
+        
+        <s:if test="openIdConfiguration != 'only'">
+        <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" 
onkeyup="onChange()" />
+               <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" onkeyup="onChange()" /></td>
+            <td class="description"><s:text 
name="userRegister.tip.passwordConfirm" /></td>
+        </tr>
+        </s:if>
+        <s:else>
+            <s:hidden name="bean.password" />
+            <s:hidden name="bean.passwordConfirm" />
+        </s:else>
+    
+
+        <s:if test="openIdConfiguration != 'disabled'">
+            <tr>
+                <td class="label"><label for="openIdUrl" /><s:text 
name="userSettings.openIdUrl" /></label></td>
+                <td class="field"><s:textfield name="bean.openIdUrl" size="40" 
maxlength="255" id="f_openid_identifier"  onkeyup="onChange()"/></td>
+                <td class="description"><s:text 
name="userRegister.tip.openIdUrl" /></td>
+            </tr>  
+        </s:if> 
+
+    </s:if>
+
+    <tr>
+        <td colspan="3">    
+            <h2><s:text name="userRegister.heading.locale" /></h2>
+            <p><s:text name="userRegister.tip.localeAndTimeZone" /></p>
+        </td>
     </tr>
 
     <tr>
-        <td class="label"><label for="passwordText" /><s:text 
name="userSettings.password" /></label></td>
+        <td class="label"><label for="locale" /><s:text 
name="userSettings.locale" /></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>
+           <s:select name="bean.locale" size="1" list="localesList" 
listValue="displayName" />
+        </td>
+        <td class="description"><s:text name="userRegister.tip.locale" /></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>
-    <td class="label"><label for="screenName" /><s:text 
name="userSettings.screenname" /></label></td>
-    <td class="field"><s:textfield name="bean.screenName" size="30" 
maxlength="30" /></td>
-    <td class="description"><s:text name="userRegister.tip.screenName" /></td>
-</tr>
-
-<tr>
-    <td class="label"><label for="fullName" /><s:text 
name="userSettings.fullname" /></label></td>
-    <td class="field"><s:textfield name="bean.fullName" size="30" 
maxlength="30" /></td>
-    <td class="description"><s:text name="userRegister.tip.fullName" /></td>
-</tr>
-
-<tr>
-    <td class="label"><label for="emailAddress" /><s:text 
name="userSettings.email" /></label></td>
-    <td class="field"><s:textfield name="bean.emailAddress" size="40" 
maxlength="40" /></td>
-    <td class="description"><s:text name="userRegister.tip.email" /></td>
-</tr>
-
-<tr>
-    <td class="label"><label for="locale" /><s:text name="userSettings.locale" 
/></label></td>
-    <td class="field">
-       <s:select name="bean.locale" size="1" list="localesList" 
listValue="displayName" />
-    </td>
-    <td class="description"><s:text name="userRegister.tip.locale" /></td>
-</tr>
-    
-<tr>
-    <td class="label"><label for="timeZone" /><s:text 
name="userSettings.timeZone" /></label></td>
-    <td class="field">
-       <s:select name="bean.timeZone" size="1" list="timeZonesList" />
-    </td>
-    <td class="description"><s:text name="userRegister.tip.timeZone" /></td>
-</tr>
-    
+        <td class="label"><label for="timeZone" /><s:text 
name="userSettings.timeZone" /></label></td>
+        <td class="field">
+           <s:select name="bean.timeZone" size="1" list="timeZonesList" />
+        </td>
+        <td class="description"><s:text name="userRegister.tip.timeZone" 
/></td>
+    </tr>
+
 </table>
 
 <br />
 
-<s:submit key="userRegister.button.save" />
-<input type="button" value="<s:text name="userSettings.button.cancel"/>" 
onclick="window.location='<s:url value="/"/>'" />
-    
+<h2><s:text name="userRegister.heading.ready" /></h2>
+
+<p id="readytip"><s:text name="userRegister.tip.ready" /></p>
+
+<s:submit id="submit" key="userRegister.button.save" />
+<input type="button" value="<s:text name="userSettings.button.cancel"/>" 
+    onclick="window.location='<s:url value="/"/>'" />
+
 </s:form>
+
+<script type="text/javascript">
+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 emailAddress     = document.register['bean.emailAddress'].value;
+    var openIdUrl       = document.register['bean.openIdUrl'].value;
+    
+    if (ssoEnabled) {
+        if (emailAddress) disabled = false;
+
+    } else if (openIdConfig == 'disabled') {
+        if (emailAddress && userName && passwordText && passwordConfirm && 
emailAddress) 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)) {
+        $('readytip').innerHTML = '<s:text 
name="userRegister.error.mismatchedPasswords" />';
+        disabled = true;
+    } else if (disabled) {
+        $('readytip').innerHTML = '<s:text name="userRegister.tip.ready" />'
+    } else {
+        $('readytip').innerHTML = '<s:text name="userRegister.success.ready" 
/>'
+    }
+    //$('submit').disabled = disabled;
+}
+//$('submit').disabled = true;
+</script>
+
+

Modified: roller/trunk/apps/weblogger/web/WEB-INF/security.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/security.xml?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/security.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/security.xml Sun Sep 14 19:49:10 
2008
@@ -19,9 +19,14 @@
 <beans:beans xmlns="http://www.springframework.org/schema/security"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
              xmlns:beans="http://www.springframework.org/schema/beans";
              xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-              http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd";>
+             http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-2.0.1-openidfix.xsd";>
 
-    <http auto-config="true" lowercase-comparisons="true" 
access-decision-manager-ref="accessDecisionManager">
+<!--
+             xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+              http://www.springframework.org/schema/security 
http://www.springframework.org/schema/security/spring-security-2.0.1.xsd";>
+-->
+                 
+    <http auto-config="false" lowercase-comparisons="true" 
access-decision-manager-ref="accessDecisionManager">
         <intercept-url pattern="/images/**" filters="none"/>
         <intercept-url pattern="/scripts/**" filters="none"/>
         <intercept-url pattern="/styles/**" filters="none"/>
@@ -35,17 +40,44 @@
         
         <!-- Uncomment the following for LDAP/SSO configuration -->
         <!--intercept-url pattern="/roller-ui/user.do*" access="register"/-->
-        
         <form-login login-page="/roller-ui/login.rol" 
authentication-failure-url="/roller-ui/login.rol?error=true" 
-               login-processing-url="/roller_j_security_check"/>
+               login-processing-url="/roller_j_security_check"/>  
         <remember-me user-service-ref="rollerUserService" 
key="715F2448-3176-11DD-ABC6-9CD955D89593"/>
-    </http>
+    </http>    
+
+
+    <authentication-manager alias='authenticationManagerAlias'/>
+    <beans:bean id = "openIDAuthProvider" 
class="org.springframework.security.providers.openid.OpenIDAuthenticationProvider">
+        <custom-authentication-provider/>
+        <beans:property name="userDetailsService" ref="rollerUserService"/>
+    </beans:bean>
+
+    <beans:bean id="openidAuthenticationProcessingFilter" 
class="org.apache.roller.weblogger.ui.core.filters.CustomOpenIDAuthenticationProcessingFilter">
+        <beans:property name="defaultTargetUrl" value="/roller-ui/menu.rol"/>
+        <beans:property name="filterProcessesUrl" 
value="/roller_j_openid_security_check"/>
+        <beans:property name="exceptionMappings">
+            <beans:props>
+                <beans:prop 
key="org.springframework.security.userdetails.UsernameNotFoundException">/roller-ui/register.rol
+                </beans:prop>
+                <beans:prop 
key="org.springframework.security.BadCredentialsException">/roller-ui/login.rol?error=true
+                </beans:prop>  
+                <beans:prop 
key="org.springframework.security.AuthenticationException">/roller-ui/login.rol?error=true
+                </beans:prop>
+            </beans:props>
+        </beans:property>   
+        <beans:property name="authenticationFailureUrl" 
value="/roller-ui/login.rol?error=true"/>   
+        <beans:property name="authenticationManager" 
ref="authenticationManagerAlias"/>
+        <custom-filter position="OPENID_PROCESSING_FILTER"/>
+    </beans:bean>
+  
 
     <authentication-provider user-service-ref="rollerUserService"/>
+   
     
     <!-- Read users from Roller API -->
     <beans:bean id="rollerUserService" 
class="org.apache.roller.weblogger.ui.core.security.RollerUserDetailsService"/>
 
+
        <!-- It may be possible to get rid of the following two beans in a 
future version of Spring Security. -->
        <!-- See http://jira.springframework.org/browse/SEC-840 for more 
information. -->
     <beans:bean id="accessDecisionManager" 
class="org.springframework.security.vote.AffirmativeBased">
@@ -56,11 +88,10 @@
             </beans:list>
         </beans:property>
     </beans:bean>
-    
     <beans:bean id="roleVoter" 
class="org.springframework.security.vote.RoleVoter">
         <beans:property name="rolePrefix" value=""/>
     </beans:bean>
-    
+       
     <!-- TODO MR: Modify LDAP and CAS Configuration for Spring Security 2.0.x 
-->
     
     <!-- ===================== LDAP AUTHENTICATION ==================== -->
@@ -70,14 +101,14 @@
         <property name="managerDn" value="LDAP_USERNAME"/>
         <property name="managerPassword" value="LDAP_PASSWORD"/>
     </bean>
-   
+                
     <bean id="ldapUserSearch" 
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
         <constructor-arg index="0" value=""/>
         <constructor-arg index="1" value="uid={0}"/>
         <constructor-arg index="2" ref="initialDirContextFactory"/>         
         <property name="searchSubtree" value="true"/>           
     </bean>     
-    
+
     <bean id="ldapAuthProvider" 
class="org.springframework.security.providers.ldap.LdapAuthenticationProvider">
         <constructor-arg>
             <bean 
class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator">
@@ -88,13 +119,13 @@
         <constructor-arg ref="jdbcAuthoritiesPopulator"/>
         <property name="userCache" ref="userCache"/>
     </bean>    
-    
+      
     <bean id="jdbcAuthoritiesPopulator" 
class="org.apache.roller.weblogger.ui.core.security.AuthoritiesPopulator">
         <property name="defaultRole" value="register"/>       
     </bean>
-    -->
+     -->
     <!-- END Sample LDAP/RollerDB hybrid security configuration -->
-    
+
     <!-- ======================== CENTRAL AUTHENTICATION SERVICE (CAS) 
======================= -->
     <!-- BEGIN: Sample CAS/RollerDB hybrid security configuration
     <bean id="casProcessingFilter" 
class="org.springframework.security.ui.cas.CasProcessingFilter">
@@ -103,7 +134,7 @@
         <property name="defaultTargetUrl" value="/"/>
         <property name="filterProcessesUrl" value="/roller_j_security_check"/>
     </bean>
-    
+   
     <bean id="casProcessingFilterEntryPoint" 
class="org.springframework.security.ui.cas.CasProcessingFilterEntryPoint">
         <property name="loginUrl" value="https://localhost:8443/cas/login"/>
         <property name="serviceProperties" ref="serviceProperties"/>
@@ -120,7 +151,7 @@
         <property name="statelessTicketCache" ref="statelessTicketCache"/>
         <property name="key" value="rollerlovesacegi"/>
     </bean>
-    
+   
     <bean id="casProxyTicketValidator" 
class="org.springframework.security.providers.cas.ticketvalidator.CasProxyTicketValidator">
         <property name="casValidate" 
value="https://localhost:8443/cas/proxyValidate"/>
         <property name="proxyCallbackUrl" 
value="http://localhost:8080/roller/casProxy/receptor"/>

Modified: roller/trunk/apps/weblogger/web/WEB-INF/web.xml
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/web.xml?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/web.xml (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/web.xml Sun Sep 14 19:49:10 2008
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-
+    
 <web-app  
     xmlns="http://java.sun.com/xml/ns/j2ee"; 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
@@ -116,7 +116,7 @@
         <url-pattern>/roller-ui/rendering/trackback/*</url-pattern>
         <dispatcher>FORWARD</dispatcher>
     </filter-mapping>
-    
+     
     <!-- Scheme enforcement.  Only here until we get Acegi scheme enforcement 
working -->
     <filter-mapping>
         <filter-name>SchemeEnforcementFilter</filter-name>
@@ -189,7 +189,7 @@
         <dispatcher>REQUEST</dispatcher>
         <dispatcher>FORWARD</dispatcher>
     </filter-mapping>
-    
+   
     
     <!-- Context Listeners -->
     <listener>
@@ -334,7 +334,7 @@
         </init-param>
     </servlet>
     
-    
+     
     <!-- Rendering Servlets -->
     <servlet-mapping>
         <servlet-name>PageServlet</servlet-name>

Added: roller/trunk/apps/weblogger/web/images/openid-logo-small.gif
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/images/openid-logo-small.gif?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/apps/weblogger/web/images/openid-logo-small.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css
URL: 
http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css?rev=695329&r1=695328&r2=695329&view=diff
==============================================================================
--- roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css (original)
+++ roller/trunk/apps/weblogger/web/roller-ui/styles/roller.css Sun Sep 14 
19:49:10 2008
@@ -261,6 +261,16 @@
    padding: 8px 0px 10px 0px;
 }
 
+input#f_openid_identifier {
+   background: url(../../images/openid-logo-small.gif) no-repeat scroll 0 50%;
+   padding-left:18px;
+}
+
+input.f_openid_identifier {
+   background: url(../../images/openid-logo-small.gif) no-repeat scroll 0 50%;
+   padding-left:18px;
+}
+
 /* ----------------------------------------------------------------------
 Table styles 
 ---------------------------------------------------------------------- */

Added: roller/trunk/tools/spring-2.5/apache-xml-security.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/apache-xml-security.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/apache-xml-security.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/dom3-xercesImpl.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/dom3-xercesImpl.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/dom3-xercesImpl.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/dom3-xml-apis.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/dom3-xml-apis.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/dom3-xml-apis.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/ehcache-1.4.1.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/ehcache-1.4.1.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/ehcache-1.4.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/java-openid-sxip.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/java-openid-sxip.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/java-openid-sxip.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/nekohtml.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/nekohtml.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/nekohtml.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/openxri-client.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/openxri-client.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/openxri-client.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/openxri-syntax.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/openxri-syntax.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/openxri-syntax.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/spring-security-acl-2.0.3.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/spring-security-acl-2.0.3.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/spring-security-acl-2.0.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/spring-security-core-2.0.3.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/spring-security-core-2.0.3.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/spring-security-core-2.0.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/spring-security-openid-2.0.3.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/spring-security-openid-2.0.3.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/spring-security-openid-2.0.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: roller/trunk/tools/spring-2.5/spring-security-taglibs-2.0.3.jar
URL: 
http://svn.apache.org/viewvc/roller/trunk/tools/spring-2.5/spring-security-taglibs-2.0.3.jar?rev=695329&view=auto
==============================================================================
Binary file - no diff available.

Propchange: roller/trunk/tools/spring-2.5/spring-security-taglibs-2.0.3.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream


Reply via email to