IdentityTVM在Amazon iOS SDK示例中响应错误

IdentityTVM在Amazon iOS SDK示例中响应错误,ios,amazon-web-services,amazon-ec2,amazon-s3,Ios,Amazon Web Services,Amazon Ec2,Amazon S3,我正在开发一个iOS应用程序来使用Amazon云服务(S3服务) 由于我需要对用户进行身份验证,因此按照中提供的步骤在AWS Elastic BeanStalk中部署了TokenVendingMachine 但当我试图通过TVM登录时,出现了一个错误“签名不匹配” 请参阅BeanStalk部分的日志 an 29, 2014 6:15:38 AM com.amazonaws.tvm.Utilities getEndPoint INFO: Endpoint : <endpoint url&g

我正在开发一个iOS应用程序来使用Amazon云服务(S3服务)

由于我需要对用户进行身份验证,因此按照中提供的步骤在AWS Elastic BeanStalk中部署了TokenVendingMachine

但当我试图通过TVM登录时,出现了一个错误“签名不匹配”

请参阅BeanStalk部分的日志

 an 29, 2014 6:15:38 AM com.amazonaws.tvm.Utilities getEndPoint
INFO: Endpoint : <endpoint url>
Jan 29, 2014 6:15:38 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: username : <username>
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: timestamp : 2014-01-29T06%3A15%3A38Z
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: uid : 38abccd49ff9f8ffe6c84c466f83ecae
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.LoginServlet processRequest
INFO: endpoint : synopsislibrary.elasticbeanstalk.com
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.IdentityTokenVendingMachine validateLoginRequest
FINE: Timestamp [ 2014-01-29T06:15:38Z ] is valid
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.Utilities sign
SEVERE: Exception during sign
java.lang.NullPointerException
    at com.amazonaws.tvm.Utilities.sign(Utilities.java:73)
    at com.amazonaws.tvm.custom.UserAuthentication.authenticateUserSignature(UserAuthentication.java:178)
    at com.amazonaws.tvm.identity.IdentityTokenVendingMachine.validateLoginRequest(IdentityTokenVendingMachine.java:174)
    at com.amazonaws.tvm.identity.LoginServlet.processRequest(LoginServlet.java:51)
    at com.amazonaws.tvm.RootServlet.doGet(RootServlet.java:38)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:679)
Jan 29, 2014 6:15:39 AM com.amazonaws.tvm.identity.IdentityTokenVendingMachine validateLoginRequest
WARNING: Client signature : e57edd8acbcbbfde0809575acbb5b644ee3713c861276937e35aeee2629129e3 doesnot match with server generated signature .Setting Http status code 401
an 2014年12月29日上午6:15:38 com.amazonaws.tvm.getEndPoint
信息:端点:
2014年1月29日上午6:15:38 com.amazonaws.tvm.identity.LoginServlet processRequest
信息:用户名:
2014年1月29日上午6:15:39 com.amazonaws.tvm.identity.LoginServlet processRequest
信息:时间戳:2014-01-29T06%3A15%3A38Z
2014年1月29日上午6:15:39 com.amazonaws.tvm.identity.LoginServlet processRequest
信息:uid:38abccd49ff9f8ffe6c84c466f83ecae
2014年1月29日上午6:15:39 com.amazonaws.tvm.identity.LoginServlet processRequest
信息:端点:synopsislibrary.elasticbeanstalk.com
2014年1月29日上午6:15:39 com.amazonaws.tvm.identity.IdentityTokenVendingMachine验证登录请求
罚款:时间戳[2014-01-29T06:15:38Z]有效
2014年1月29日上午6:15:39 com.amazonaws.tvm.Utilities sign
严重:签名过程中出现异常
java.lang.NullPointerException
位于com.amazonaws.tvm.Utilities.sign(Utilities.java:73)
在com.amazonaws.tvm.custom.UserAuthentication.authenticateUserSignature(UserAuthentication.java:178)上
在com.amazonaws.tvm.identity.IdentityTokenVendingMachine.validateLoginRequest上(IdentityTokenVendingMachine.java:174)
位于com.amazonaws.tvm.identity.LoginServlet.processRequest(LoginServlet.java:51)
位于com.amazonaws.tvm.RootServlet.doGet(RootServlet.java:38)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
位于org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
运行(Thread.java:679)
2014年1月29日上午6:15:39 com.amazonaws.tvm.identity.IdentityTokenVendingMachine验证登录请求
警告:客户端签名:e57edd8acbcbbfde0809575acbb5b644ee3713c861276937e35aeee2629129e3与服务器生成的签名不匹配。正在设置Http状态代码401
我需要澄清几件事

  • 我们是否需要对与IdentityTVM模板应用程序关联的WAR文件进行任何修改?(假设需要在TokenVendingMachinePolicy.json文件中进行修改,请给出建议?)

  • IAM用户策略和TVM策略之间是否存在任何关系?在弹性豆茎中创建TVM时,我们是否应该特别注意这些部分

  • 请帮忙


    提前谢谢

    有几个地方你可以看看:
    • 创建新帐户时,请避免使用诸如@、、等特殊字符。示例代码不会清理用户名,并且在处理特殊字符时可能会出现问题
    • 确保输入的用户名/密码组合与创建的用户名/密码组合相同
    • 这简化了TVM部署过程。值得一试

    回答第2点:是的,TVM策略需要是IAM策略的一个子集。务必确保您的IAM和TVM策略限制了应用程序所需的服务和资源。