[ https://issues.apache.org/jira/browse/CLOUDSTACK-9099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15039748#comment-15039748 ]
ASF GitHub Bot commented on CLOUDSTACK-9099: -------------------------------------------- Github user jburwell commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1152#discussion_r46649429 --- Diff: api/src/org/apache/cloudstack/api/command/admin/user/ListKeysCmd.java --- @@ -0,0 +1,72 @@ +// Licensed to the Apache Software Foundation (ASF) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The ASF licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package org.apache.cloudstack.api.command.admin.user; + + +import com.cloud.user.Account; +import com.cloud.user.User; +import org.apache.cloudstack.api.APICommand; +import org.apache.cloudstack.api.ApiConstants; +import org.apache.cloudstack.api.BaseCmd; +import org.apache.cloudstack.api.Parameter; +import org.apache.cloudstack.api.response.RegisterResponse; +import org.apache.cloudstack.api.response.UserResponse; + +import java.util.logging.Logger; + +@APICommand(name = "listUserKeys", + description = "This command allows the user to query the seceret and API keys for the account", + responseObject = RegisterResponse.class, + requestHasSensitiveInfo = false, + responseHasSensitiveInfo = true) + +public class ListKeysCmd extends BaseCmd{ + + @Parameter(name= ApiConstants.ID, type = CommandType.UUID, entityType = UserResponse.class, required = true, description = "ID of the user whose keys are required") + private Long id; + + public static final Logger s_logger = Logger.getLogger(RegisterCmd.class.getName()); + public static final String s_name = "listuserkeysresponse"; + + public Long getID(){ + return id; + } + + public String getCommandName(){ + return s_name; + } + + public long getEntityOwnerId(){ + User user = _entityMgr.findById(User.class, getID()); + if(user != null){ + return user.getAccountId(); + } + else return Account.ACCOUNT_ID_SYSTEM; + } + public void execute(){ + String[] keys = _accountService.getKeys(this); + RegisterResponse response = new RegisterResponse(); + if(keys != null){ --- End diff -- Add an check before setting the keys to check that ``keys`` has a length = 2 to avoid an ``ArrayIndexOutOfBoundsException``. If the length is not equal to 2, throw an ``IllegalStateException``. > SecretKey is returned from the APIs > ----------------------------------- > > Key: CLOUDSTACK-9099 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-9099 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Reporter: Kshitij Kansal > Assignee: Kshitij Kansal > > The sercreKey parameter is returned from the following APIs: > createAccount > createUser > disableAccount > disableUser > enableAccount > enableUser > listAccounts > listUsers > lockAccount > lockUser > registerUserKeys > updateAccount > updateUser -- This message was sent by Atlassian JIRA (v6.3.4#6332)