-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/73898/#review224174
-----------------------------------------------------------




security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java
Lines 71 (patched)
<https://reviews.apache.org/r/73898/#comment313084>

    This will result in 2 queries for each login attempt:
     1. to get the last successful login time
     2. to get number of failed login since last successful login
    
    Consider following to use only one query where possible:
    
    public boolean shouldLockUserLogin(String loginId, int seconds, int 
maxFailedLoginsBeforeLock) {
      boolean ret               = false;
      Date    startTime         = new Date(DateUtil.getUTCDate().getTime() - 
seconds * 1000);
      int     numOfFailedLogins = getFailedLoginsCountForUserSince(loginId, 
startTime);
      
      if (numOfFailedLogins >= maxFailedLoginsBeforeLock) {
        Date lastSuccessLoginTime = getLastSuccessfulLoginTimeSince(loginId, 
startTime);
        
        if (lastSuccessLoginTime != null) {
          numOfFailedLogins = getFailedLoginsCountForUser(loginId, 
lastSuccessLoginTime);
          
          ret = numOfFailedLogins >= maxFailedLoginsBeforeLock;
        }
      }
      
      return ret;
    }



security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java
Lines 72 (patched)
<https://reviews.apache.org/r/73898/#comment313085>

    Please replae dynamic queries in #72 and #80 with named queries in 
security-admin/src/main/resources/META-INF/jpa_named_queries.xml


- Madhan Neethiraj


On March 18, 2022, 5:59 a.m., Kirby Zhou wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/73898/
> -----------------------------------------------------------
> 
> (Updated March 18, 2022, 5:59 a.m.)
> 
> 
> Review request for ranger, Bhavik Bavishi, Abhay Kulkarni, Madhan Neethiraj, 
> and Pradeep Agrawal.
> 
> 
> Bugs: RANGER-2362
>     https://issues.apache.org/jira/browse/RANGER-2362
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> RANGER-2362
> 
> 
> Here is a simple demo code for discussion.
> 
> Hard-codeed:
> we limit 3 failures per 30 minutes. A successful login will reset the counter.
> 
> 
> BTW: I think the code of RangerAuthenticationProvider is a bit anti-pattern.
> 
> 1. We new RangerAuthenticationProvider at each time user login. It is 
> unreasonable, it should be a bean.
> 
> see RangerKRBAuthenticationFilter.java and RangerSSOAuthenticationFilter.java
> 
> 2. We new Jdbc/AD/Ldap/Pam authentication provider in 
> RangerAuthenticationProvider at each time user login.
> 
> 3. The member 'private LdapAuthenticator authenticator' seems useless
> 
> 4. The RangerAuthenticationProvider seem should be replaced with 
> ProviderManager or something like spring configuration.
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/biz/SessionMgr.java 
> 6b002cff994dd431a83ef46f10ee839fb83dafbb 
>   security-admin/src/main/java/org/apache/ranger/db/XXAuthSessionDao.java 
> b0270e9d45aa5b5543735318eea4e22683cbfece 
>   
> security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java
>  8f7abbe7df3d0344c7b5b1af89f7322d82a0d238 
>   
> security-admin/src/main/java/org/apache/ranger/security/listener/SpringEventListener.java
>  af5622a5f756db931a7173ad01d8c4162d5ee05a 
> 
> 
> Diff: https://reviews.apache.org/r/73898/diff/2/
> 
> 
> Testing
> -------
> 
> Self tested
> 
> 
> Thanks,
> 
> Kirby Zhou
> 
>

Reply via email to