Thank you for your prompt reply! I have solved the problem.However,I orrur a new problem recently. As LXC is fashion,and cloudstack 4.2 support LXC hypervisor.So,I want to try add host with LXC hypervisor to cloudstack4.2.I work as the guide says,edit file: /etc/cloudstack/agent/agent.properties And Set the Agent to run in LXC mode: hypervisor.type=lxc However,It doesn't work!Can you provide any clude?
2013/11/7 Sebastien Goasguen <run...@gmail.com> > > On Nov 7, 2013, at 2:15 AM, Du Jun <dj199...@gmail.com> wrote: > > > Hi, > > I have both apikey and secretkey,and I use the following code to > > generate signature: > > > > package test; > > import javax.crypto.Mac; > > import javax.crypto.spec.SecretKeySpec; > > import org.apache.commons.codec.binary.Base64; > > > > public class Sign { > > public static void main(String args[]) throws Exception{ > > String > > > apikey="zr_w86-A-2TsaDzgEUbJZ1PNICWv8L4H_ywHcIwgHX186nAbpHVn4c-FLuAbRjjzVt9r890HE-me_lNDc7yxMw"; > > String request=("apikey="+apikey+"&command=listZones").toLowerCase(); > > String > > > secret="w4ZW_kQeEtmfbLOeBz6Pj39iHUdqlpnfYd62o7bSn3PK7uLElQHE0nCLLRU8i3fu72-vC1JxzmvuEEMxt6WwVQ"; > > Mac mac = Mac.getInstance("HmacSHA1"); > > SecretKeySpec keySpec = new > > SecretKeySpec(secret.getBytes("UTF-8"),"HmacSHA1"); > > mac.init(keySpec); > > mac.update(request.getBytes()); > > byte[] encryptedBytes = mac.doFinal(); > > System.out.println(Base64.encodeBase64String(encryptedBytes)); //result > > } > > } > > > > I think my signature is correct.Then I generate complete URL: > > > http://172.17.4.104:8080/client/api?command=listZones&apiKey=zr_w86-A-2TsaDzgEUbJZ1PNICWv8L4H_ywHcIwgHX186nAbpHVn4c-FLuAbRjjzVt9r890HE-me_lNDc7yxMw&signature=jS94Qv63W1h9QGS23zPg3kMIU7o > > > > I think it's 'apikey' lowercase > > if that's not the issue, then check your url encoding of all the strings⦠> > See: > https://github.com/runseb/cloudstack-books/blob/master/en/developer.markdown > > I wrote an example in python. > > > > However,I get the error message as show below: > > <listzonesresponse cloud-stack-version="4.0.2.20130501180711"> > > <errorcode>401</errorcode> > > <errortext>unable to verify user credentials</errortext> > > </listzonesresponse> > > > > I just don't know why?Any reply will be appreciated! > > > > ----------------------------- > > Best regards, > > > > Frank > >