[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-8796?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14730518#comment-14730518
 ] 

ASF GitHub Bot commented on CLOUDSTACK-8796:
--------------------------------------------

Github user karuturi commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/755#discussion_r38731619
  
    --- Diff: 
plugins/user-authenticators/ldap/src/org/apache/cloudstack/ldap/LdapAuthenticator.java
 ---
    @@ -52,21 +58,71 @@ public LdapAuthenticator(final LdapManager ldapManager, 
final UserAccountDao use
                 return new Pair<Boolean, ActionOnFailedAuthentication>(false, 
null);
             }
     
    -        final UserAccount user = _userAccountDao.getUserAccount(username, 
domainId);
    +        boolean result = false;
    +        ActionOnFailedAuthentication action = null;
     
    -        if (user == null) {
    -            s_logger.debug("Unable to find user with " + username + " in 
domain " + domainId);
    -            return new Pair<Boolean, ActionOnFailedAuthentication>(false, 
null);
    -        } else if (_ldapManager.isLdapEnabled()) {
    -            boolean result = _ldapManager.canAuthenticate(username, 
password);
    -            ActionOnFailedAuthentication action = null;
    -            if (result == false) {
    +        if (_ldapManager.isLdapEnabled()) {
    +            final UserAccount user = 
_userAccountDao.getUserAccount(username, domainId);
    +            LdapTrustMapVO ldapTrustMapVO = 
_ldapManager.getDomainLinkedToLdap(domainId);
    +            if(ldapTrustMapVO != null) {
    +                try {
    +                    LdapUser ldapUser = _ldapManager.getUser(username, 
ldapTrustMapVO.getType().toString(), ldapTrustMapVO.getName());
    +                    if(!ldapUser.isDisabled()) {
    +                        result = 
_ldapManager.canAuthenticate(ldapUser.getPrincipal(), password);
    +                        if(result) {
    +                            if(user == null) {
    +                                // import user to cloudstack
    +                                createCloudStackUserAccount(ldapUser, 
domainId, ldapTrustMapVO.getAccountType());
    --- End diff --
    
    There is no bug here. Its how the current authenticators work. the api 
output will be improved based on the outcome of CLOUDSTACK-8796


> the api calll linkdomaintoldap should fail if admin is given and an account 
> isnt created
> ----------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-8796
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8796
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>    Affects Versions: 4.6.0
>            Reporter: Rajani Karuturi
>
> The api call doesnt fail if it cannot created the admin account supplied in 
> the api. It completes the domain linking and will not return admin in 
> response. a successful call would return admin in the response and a failed 
> doesnt. 
> This may need to be changed to fail the api if admin is given and an account 
> cannot be created.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to