Repository: incubator-ranger
Updated Branches:
  refs/heads/master 6e02030ca -> 27a70dd1a


RANGER-691 : Ranger Admin shouldn't expect users to be sync'ed for 
authentication

Signed-off-by: Velmurugan Periasamy <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/27a70dd1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/27a70dd1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/27a70dd1

Branch: refs/heads/master
Commit: 27a70dd1a0cc82f7870d857f348ebf1786b65790
Parents: 6e02030
Author: pradeep agrawal <[email protected]>
Authored: Mon May 30 09:15:23 2016 +0530
Committer: Velmurugan Periasamy <[email protected]>
Committed: Thu Jun 2 02:42:38 2016 -0400

----------------------------------------------------------------------
 .../src/main/java/org/apache/ranger/biz/XUserMgr.java       | 3 +++
 .../web/authentication/RangerAuthSuccessHandler.java        | 9 +++++++++
 2 files changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/27a70dd1/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java 
b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index 5760e9d..e897178 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -98,6 +98,8 @@ import org.apache.ranger.view.VXUserGroupInfo;
 import org.apache.ranger.view.VXUserList;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -1815,6 +1817,7 @@ public class XUserMgr extends XUserMgrBase {
                }
        }
 
+       @Transactional(readOnly = false, propagation = Propagation.REQUIRED)
     public VXUser createServiceConfigUser(String userName){
         if (userName == null || "null".equalsIgnoreCase(userName) || 
userName.trim().isEmpty()) {
                 logger.error("User Name: "+userName);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/27a70dd1/security-admin/src/main/java/org/apache/ranger/security/web/authentication/RangerAuthSuccessHandler.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/security/web/authentication/RangerAuthSuccessHandler.java
 
b/security-admin/src/main/java/org/apache/ranger/security/web/authentication/RangerAuthSuccessHandler.java
index 877620b..8e41a39 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/security/web/authentication/RangerAuthSuccessHandler.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/security/web/authentication/RangerAuthSuccessHandler.java
@@ -30,6 +30,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.log4j.Logger;
 import org.apache.ranger.biz.SessionMgr;
+import org.apache.ranger.biz.XUserMgr;
 import org.apache.ranger.common.JSONUtil;
 import org.apache.ranger.common.PropertiesUtil;
 import org.apache.ranger.entity.XXAuthSession;
@@ -55,6 +56,9 @@ SavedRequestAwareAuthenticationSuccessHandler {
     @Autowired
     JSONUtil jsonUtil;
 
+       @Autowired
+       XUserMgr xUserMgr;
+
     public RangerAuthSuccessHandler() {
        super();
        if (ajaxLoginSuccessPage == null) {
@@ -85,6 +89,11 @@ SavedRequestAwareAuthenticationSuccessHandler {
        String sessionId = details != null ? details.getSessionId() : "";
        
        boolean isValidUser = 
sessionMgr.isValidXAUser(authentication.getName());
+       String 
rangerAuthenticationMethod=PropertiesUtil.getProperty("ranger.authentication.method","NONE");
+       if(!isValidUser && 
!"NONE".equalsIgnoreCase(rangerAuthenticationMethod)){
+               xUserMgr.createServiceConfigUser(authentication.getName());
+               isValidUser = 
sessionMgr.isValidXAUser(authentication.getName());
+       }
        
        response.setContentType("application/json;charset=UTF-8");
                response.setHeader("Cache-Control", "no-cache");

Reply via email to