You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2017/02/12 17:48:30 UTC

[1/2] archiva git commit: Implementing method after interface change

Repository: archiva
Updated Branches:
  refs/heads/feature/header_check fc41a7988 -> b2ce531fa


Implementing method after interface change


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/709ee5bb
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/709ee5bb
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/709ee5bb

Branch: refs/heads/feature/header_check
Commit: 709ee5bb396b5d6e7864a612e0991349b36f58a7
Parents: fc41a79
Author: Martin Stockhammer <ma...@apache.org>
Authored: Sun Feb 12 18:45:57 2017 +0100
Committer: Martin Stockhammer <ma...@apache.org>
Committed: Sun Feb 12 18:45:57 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/archiva/web/rss/SecuritySystemStub.java    | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/709ee5bb/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/SecuritySystemStub.java
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/SecuritySystemStub.java b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/SecuritySystemStub.java
index 16c84f2..eec7ae9 100644
--- a/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/SecuritySystemStub.java
+++ b/archiva-modules/archiva-web/archiva-web-common/src/test/java/org/apache/archiva/web/rss/SecuritySystemStub.java
@@ -22,6 +22,7 @@ package org.apache.archiva.web.rss;
 import org.apache.archiva.redback.authentication.AuthenticationDataSource;
 import org.apache.archiva.redback.authentication.AuthenticationException;
 import org.apache.archiva.redback.authentication.AuthenticationResult;
+import org.apache.archiva.redback.authentication.TokenManager;
 import org.apache.archiva.redback.authorization.AuthorizationException;
 import org.apache.archiva.redback.authorization.AuthorizationResult;
 import org.apache.archiva.redback.keys.KeyManager;
@@ -703,4 +704,9 @@ public class SecuritySystemStub
     {
         return true;
     }
+
+    @Override
+    public TokenManager getTokenManager() {
+        return null;
+    }
 }


[2/2] archiva git commit: Adding validation token during login

Posted by ma...@apache.org.
Adding validation token during login


Project: http://git-wip-us.apache.org/repos/asf/archiva/repo
Commit: http://git-wip-us.apache.org/repos/asf/archiva/commit/b2ce531f
Tree: http://git-wip-us.apache.org/repos/asf/archiva/tree/b2ce531f
Diff: http://git-wip-us.apache.org/repos/asf/archiva/diff/b2ce531f

Branch: refs/heads/feature/header_check
Commit: b2ce531fa25df5ca4f92619acf63ab986c49c392
Parents: 709ee5b
Author: Martin Stockhammer <ma...@apache.org>
Authored: Sun Feb 12 18:46:37 2017 +0100
Committer: Martin Stockhammer <ma...@apache.org>
Committed: Sun Feb 12 18:46:37 2017 +0100

----------------------------------------------------------------------
 .../src/main/webapp/js/archiva/main.js          | 23 ++++++++++++++++++--
 .../src/main/webapp/js/redback/user.js          | 20 ++++++++++++-----
 2 files changed, 35 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/archiva/blob/b2ce531f/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js
index cd3f092..4085d44 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/archiva/main.js
@@ -37,7 +37,7 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
 
     var kUser = new User(user.username, user.password, user.confirmPassword,user.fullName,user.email,user.permanent,user.validated,
                          user.timestampAccountCreation,user.timestampLastLogin,user.timestampLastPasswordChange,user.locked,
-                         user.passwordChangeRequired,null,user.readOnly,user.userManagerId);
+                         user.passwordChangeRequired,null,user.readOnly,user.userManagerId, user.validationToken);
 
     kUser.rememberme(user.rememberme());
     var userJson=ko.toJSON(kUser);
@@ -73,7 +73,7 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
     }
     var kUser = new User(user.username, user.password, user.confirmPassword,user.fullName,user.email,user.permanent,user.validated,
                     user.timestampAccountCreation,user.timestampLastLogin,user.timestampLastPasswordChange,user.locked,
-                    user.passwordChangeRequired,null,user.readOnly,user.userManagerId);
+                    user.passwordChangeRequired,null,user.readOnly,user.userManagerId, user.validationToken);
 
     $.log("user.rememberme:"+user.rememberme);
 
@@ -860,6 +860,19 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
     return $.inArray(karmaName,window.redbackModel.operatioNames)>=0;
   };
 
+  addValidationTokenHeader=function(user) {
+    if (user.validationToken) {
+      $.log("Adding validation token "+user.validationToken);
+      $.ajaxSetup({
+        beforeSend: function (xhr) {
+          xhr.setRequestHeader('X-XSRF-TOKEN', user.validationToken);
+        }
+      });
+    } else {
+      $.log("No validation token in user object "+user.username+", "+user.validationToken);
+    }
+  }
+
   startArchivaApplication=function(){
 
     $.log("startArchivaApplication");
@@ -896,6 +909,9 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
       window.redbackModel.password=user.password();
       loginCall(user.username(),user.password(),user.rememberme()
           ,successLoginCallbackFn,errorLoginCallbackFn,completeLoginCallbackFn);
+    } else {
+      // Token for origin validation
+      addValidationTokenHeader(user);
     }
 
   };
@@ -918,6 +934,7 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
     }
     if (logged == true) {
       var user = mapUser(result);
+      addValidationTokenHeader(user);
 
       if (user.passwordChangeRequired()==true){
         changePasswordBox(true,false,user);
@@ -948,6 +965,8 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
       }
       clearForm("#user-login-form");
       decorateMenuWithKarma(user);
+
+      // Token for origin validation
       $("#login-welcome" ).show();
       $("#welcome-label" ).html( $.i18n.prop("user.login.welcome",user.username()));
       return;

http://git-wip-us.apache.org/repos/asf/archiva/blob/b2ce531f/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/user.js
----------------------------------------------------------------------
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/user.js b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/user.js
index 758a56a..7464b5d 100644
--- a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/user.js
+++ b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/js/redback/user.js
@@ -36,9 +36,11 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
    * @param ownerViewModel
    * @param readOnly
    * @param uuserManagerId
+   * @param validationToken
    */
   User=function(username, password, confirmPassword,fullName,email,permanent,validated,timestampAccountCreation,
-                timestampLastLogin,timestampLastPasswordChange,locked,passwordChangeRequired,ownerViewModel,readOnly,userManagerId) {
+                timestampLastLogin,timestampLastPasswordChange,locked,passwordChangeRequired,ownerViewModel,readOnly,
+                userManagerId,validationToken) {
     var self=this;
     // Potentially Editable Field.
     this.username = ko.observable(username);
@@ -84,6 +86,8 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
 
     this.rememberme=ko.observable(false);
 
+    this.validationToken=validationToken;
+
     this.logged=false;
 
     this.remove = function() {
@@ -145,17 +149,20 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
             var created = result;
             if (created == true) {
               displaySuccessMessage( $.i18n.prop("user.admin.created"));
-              var onSuccessCall=function(){
+              var onSuccessCall=function(result){
+                var logUser = mapUser(result);
+                currentAdminUser.validationToken=logUser.validationToken;
                 reccordLoginCookie(currentAdminUser);
+                addValidationTokenHeader(currentAdminUser);
                 window.archivaModel.adminExists=true;
                 screenChange();
                 checkCreateAdminLink();
                 checkSecurityLinks();
+                if(succesCallbackFn){
+                  succesCallbackFn();
+                }
               }
               loginCall(currentAdminUser.username(), currentAdminUser.password(),false,onSuccessCall);
-              if(succesCallbackFn){
-                succesCallbackFn();
-              }
               return this;
             } else {
               displayErrorMessage("admin user not created");
@@ -757,7 +764,8 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
   mapUser=function(data) {
     return new User(data.username, data.password, null,data.fullName,data.email,data.permanent,data.validated,
                     data.timestampAccountCreation,data.timestampLastLogin,data.timestampLastPasswordChange,
-                    data.locked,data.passwordChangeRequired,self,data.readOnly,data.userManagerId);
+                    data.locked,data.passwordChangeRequired,self,data.readOnly,data.userManagerId,
+                    data.validationToken);
   }