我在用;
- 日蚀朱诺
- ADT-22.3.0
- aws-android-sdk-1.7.0
为了使用 AWS Token Vending 机器代码,我使用了来自以下链接的 android 示例代码;http://aws.amazon.com/code/4598681430241367
我的 Identity TVM 模块部署在 Glassfish 服务器 4.0 上
尝试与 Identity TVM 示例通信时,我的适用于 android 的 AmazonS3PersonalFileStore 示例;它的错误
11-24 15:16:54.886: W/AmazonTVMClient(2262): Request to Token Vending Machine failed with Code: [404] Message: [Unable to reach resource at [http://ip.ip.ip.ip:8080/tvm/login?uid=59434cd89b7ff4b72695fbe55dc06e10&username=useruser×tamp=2013-11-24T15%3A16%3A54.149Z&signature=fca134941ac0f1432568b1590057a64c1a537934d0f7c94b380c9fb23758bbd8]]
服务器端显示错误;
[2013-11-24T15:17:00.095+0000] [glassfish 4.0] [WARNING] [] [TokenVendingMachineLogger] [tid: _ThreadID=19 _ThreadName=http-listener-1(2)] [timeMillis: 1385306220095] [levelValue: 900] [[
Client signature : fca134941ac0f1432568b1590057a64c1a537934d0f7c94b380c9fb23758bbd8 doesnot match with server generated signature .Setting Http status code 401]]
[2013-11-24T15:17:00.097+0000] [glassfish 4.0] [SEVERE] [] [TokenVendingMachineLogger] [tid: _ThreadID=19 _ThreadName=http-listener-1(2)] [timeMillis: 1385306220097] [levelValue: 1000] [[Error validating login request for username : useruser]]`
如果有人可以帮助给予积分来解决它;我也希望没有什么特别需要做的事情来适应 Identity TVM 代码在 glassfish 上运行?
编辑
当我在 ElasticBeanstalk 上部署 IdentityTVM.war(随下载提供的开箱即用)时 - 它运行良好。我认为问题在于我修改代码以在 glassfish 上工作的方式。我正在关注 TVM 代码的更改;
- com.amazonaws.tvm.Configuration:使用我的 TVMUser(在 IAM 中创建)凭证(AWS_ACCESS_KEY_ID、AWS_SECRET_KEY、APP_NAME)对三个项目进行硬编码
TokenVendingMachinePolicy.json:将我的策略更改如下;
{"Statement": [ {"Effect":"Allow","Action":["s3:PutObject","s3:GetObject","s3:DeleteObject"],"Resource":"arn:aws:s3:::MyBUCKET/__USERNAME__/*"}, {"Effect":"Allow","Action":"s3:ListBucket","Resource":"arn:aws:s3:::MyBUCKET","Condition":{"StringLike":{"s3:prefix":"__USERNAME__/"}}}, {"Effect":"Deny","Action":["iam:*", "sts:*", "sdb:*"],"Resource":"*"}]}
我是否遵循正确的步骤来修改 IdentityTVM 以部署 glassfish?我必须使用 glassfish,因为我们的架构有一个基于它的集群环境。