2014-01-29 46 views
0

我正在開發iOS應用程序以使用Amazon雲服務(S3服務)。IdentityTVM在Amazon iOS SDK示例中響應錯誤

因爲我需要對用戶進行認證,部署TokenVendingMachine在AWS彈性青苗按在Token Vending Machine for Identity Registration - Sample Java Web Application

提供的步驟,但是,當IAM試圖通過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 

我需要澄清一些事情

  1. 難道我們需要與IdentityTVM模板應用程序相關的WAR文件的任何修改? (假設需要修改TokenVendingMachinePolicy.json文件,請指教?)

  2. IAM用戶策略和TVM策略之間是否有任何關係,我們是否應該在彈性beanstalk中創建TVM時特別注意這些部分?

請幫忙。

在此先感謝。

+2

回答第2點:是的,TVM政策需要成爲IAM政策的一個子集。確保您的IAM和TVM策略都限制您的應用程序所需的服務和資源,這一點非常重要。 –

回答

0

有一對夫婦的地方,你可以看看:

  • 當你創建一個新帳戶,避免使用特殊字符,如@,等等。示例代碼不過濾用戶名,並可能有一個?處理特殊字符的問題。
  • 確保您輸入了與您創建的用戶名/密碼組合相同的用戶名/密碼組合。
  • 這個blog post簡化了TVM的部署過程。值得一試。