]> source.dussan.org Git - archiva.git/commitdiff
fix secure option usage for cookie
authorOlivier Lamy <olamy@apache.org>
Fri, 21 Dec 2012 16:26:14 +0000 (16:26 +0000)
committerOlivier Lamy <olamy@apache.org>
Fri, 21 Dec 2012 16:26:14 +0000 (16:26 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1425003 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/main.js
archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js

index cb965178de91d9c05dd81156496f971382ea66f0..653cb6590365e4a9b0bc42c3c6dd75e84bb92d1a 100644 (file)
@@ -28,34 +28,56 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
    * @param user see user.js
    */
   reccordLoginCookie=function(user) {
-    var path = window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.timeout");
+
+    var path = window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.path");
     path = path ? path : "/";
 
     var domain = window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.domain");
     var secure = window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.secure");
 
-    $.cookie('archiva_login', ko.toJSON(user),
-             {
-               expires: Number(window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.timeout")),
-               path: path,
-               domain: domain,
-               secure: secure
-             }
-    );
+    var expires= Number(window.redbackRuntimeConfiguration.findPropertyValue("security.rememberme.timeout"));
+
+    var userJson=ko.toJSON(user);
+
+    $.log("reccordLoginCookie:expires:"+expires+",path:"+path+",domain:"+domain+",secure:"+secure+",user:"+userJson);
+
+    var options = null;
+    if (secure == 'true'){
+      options = {
+        expires: expires,
+        path: path,
+        domain: domain,
+        secure: secure
+      }
+    }else {
+      options = {
+        expires: expires,
+        path: path,
+        domain: domain
+      }
+    }
+
+    $.cookie('archiva_login', userJson,options);
   };
 
   getUserFromLoginCookie=function(){
     var cookieContent=$.cookie('archiva_login');
     $.log("archiva_login cookie content:"+cookieContent);
-    return $.parseJSON(cookieContent);
-  };
+    var user = $.parseJSON(cookieContent);
+    if(!user){
+      return null;
+    }
+    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)
 
-  deleteLoginCookie=function(){
-    $.cookie('archiva_login', null,{ expires: 7, path: '/' });
+    kUser.rememberme(user.rememberme);
+    return kUser;
   };
 
+
+
   logout=function(doScreenChange){
-    //deleteLoginCookie();
     var user = getUserFromLoginCookie();
     if(user){
       user.logged=false;
@@ -719,7 +741,7 @@ function(jquery,ui,sammy,tmpl,i18n,jqueryCookie,bootstrap,archivaSearch,jqueryVa
   };
 
   userLoggedCallbackFn=function(user){
-    $.log("userLoggedCallbackFn:"+ (user?user.username:null));
+    $.log("userLoggedCallbackFn:"+ (user?user.username():null));
     var loginLink=$("#login-link");
     var registerLink=$("#register-link");
     var changePasswordLink=$("#change-password-link");
index b8469ddff5c996ed5b84b8591ddfeb4348ca80a4..f7d4bf2ee116a9916b259e84853e00638eeba412 100644 (file)
@@ -82,7 +82,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
 
     this.userManagerId=userManagerId;
 
-    this.rememberme=false;
+    this.rememberme=ko.observable(false);
 
     this.logged=false;
 
@@ -356,10 +356,10 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
 
     var user=getUserFromLoginCookie();
     if(user){
-      $.log("found user in cookie rememberme:"+(user.rememberme));
-      if(user.rememberme){
-        $("#user-login-form-username" ).val(user.username);
-        $("#user-login-form-password" ).val(user.password);
+      $.log("found user in cookie rememberme:"+(user.rememberme()));
+      if(user.rememberme()){
+        $("#user-login-form-username" ).val(user.username());
+        $("#user-login-form-password" ).val(user.password());
         $("#user-login-form-rememberme" ).attr("checked","true");
       }
     } else {
@@ -429,11 +429,11 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid,purl) {
       }
 
       // FIXME check validated
-      user.rememberme=window.redbackModel.rememberme;
-      if(user.rememberme){
+      user.rememberme(window.redbackModel.rememberme);
+      if(user.rememberme()){
         user.password(window.redbackModel.password);
       }
-      $.log("user.rememberme:"+(user.rememberme));
+      $.log("user.rememberme:"+(user.rememberme()));
       reccordLoginCookie(user);
       window.user=user;
       $("#login-link").hide();