160 Commits

Author SHA1 Message Date
jomo
15a4f17560 add rate limit option for sessionserver
any outgoing requests to the sessionserver
that would exceed the configured rate limit are skipped
to prevent being blocked by CloudFront

if a texture hash is cached but outdated, the cache ttl will be bumped
as if the request succeeded, in order to lower requests in the near future
2020-03-29 07:43:23 +02:00
jomo
c975cc793b remove cleaner.js 2020-03-24 18:49:42 +01:00
jomo
168457dfd9 update to node 12 2020-03-21 01:50:50 +01:00
jomo
1816b18b12 update deps 2018-02-16 18:45:56 +01:00
jomo
dff58c66e7 drop support for usernames
Mojang has disabled their legacy skins API:
https://twitter.com/MojangSupport/status/964511258601865216

With their API rate limits, it's now practially impossible
for us to support usernames.

Fixes #142. The default parameter allows using:

- UUID
- URL
- MHF_Alex
- MHF_Steve
- Alex
- Steve

Contrary to UUIDs, using alex/steve doesn't redirect
and instead provides the skin from a locally stored file.
2018-02-16 18:01:41 +01:00
jomo
a25e01922e fix cape test
jeb_ no longer has a cape:

{
  "id": "853c80ef3c3749fdaa49938b674adae6",
  "name": "jeb_",
  "properties": [
    {
      "name": "textures",
      "value": "eyJ0aW1lc3RhbXAiOjE0OTk5MDMzNDY3NTQsInByb2ZpbGVJZCI6Ijg1M2M4MGVmM2MzNzQ5ZmRhYTQ5OTM4YjY3NGFkYWU2IiwicHJvZmlsZU5hbWUiOiJqZWJfIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2E4NDZiODI5NjM5MjRjYjEzMjExMTIyNDg5MjYzOTQxZDE0MDM2ODlmOTAxNTExMjBkNTIzNGJlNGE3M2ZiIn19fQ=="
    }
  ]
}

{
  "timestamp": 1499903346754,
  "profileId": "853c80ef3c3749fdaa49938b674adae6",
  "profileName": "jeb_",
  "textures": {
    "SKIN": {
      "url": "http://textures.minecraft.net/texture/a846b82963924cb13211122489263941d1403689f90151120d5234be4a73fb"
    }
  }
}
2017-07-13 12:49:09 +02:00
jomo
c02d3d33e9 don't respond with 304 on error when debugging is enabled 2016-11-07 04:08:19 +01:00
jomo
6f1c414a4a accept ESOCKETTIMEDOUT as possible timeout error
seems to be a race condition which one is thrown (?)
2016-11-04 16:48:13 +01:00
jomo
f7b8fd4e8c fix rate-limiting tests
Mojang is now rate-limiting calls to their sessionserver case-insensitive.

This fix skips network-based tests for an upper-cased UUID which are previously
run with the same lower-cased UUID
2016-11-03 21:52:00 +01:00
jomo
f0b73b34d1 test code style: add trailing commas 2016-11-03 21:26:35 +01:00
jomo
1d9176711f get rid of some test log spam 2016-11-03 21:25:13 +01:00
jomo
688a34029c wait for redis connection before running tests 2016-11-03 21:19:28 +01:00
jomo
cbe2b25835 add test for empty username 2016-11-03 21:14:32 +01:00
jomo
6594200500 Mojang updated all capes, fix tests 2016-02-07 21:06:06 +01:00
jomo
183e8cfa9c fix tests for f088c27012c0c49ad47538373d083311dccaf7d9 2016-02-03 03:00:03 +01:00
jomo
29fa734148 remove 'public' part from Cache-Control, not required 2016-01-23 06:26:41 +01:00
jomo
4f667cc99f remove transparency from avatar, fixes #129 2016-01-20 23:44:33 +01:00
jomo
e7242ce773 respond 304 on server error, fixes #135 2016-01-20 01:50:30 +01:00
jomo
74ba828701 add test for uuid -> username skin type update 2016-01-20 01:17:36 +01:00
jomo
1144b6755a always use crc32 for etag, much more reliable than mojang skin hash
had to make quite a few changes to tests to prevent them from failing
also, etag is now only sent with a 200 response, as defined in RFC7232
2015-12-16 00:47:51 +01:00
jomo
caeb9a52fe verbose logging on travis 2015-12-15 21:09:13 +01:00
jomo
5cb20b1105 add more crc values to tests 2015-12-14 01:59:32 +01:00
jomo
7d02138c1e solve merge conflicts 2015-12-14 01:51:49 +01:00
jomo
3c21a59c94 add support for slim renders, fixes #125, adjust tests 2015-12-13 14:08:59 +01:00
jomo
fb0c70d648 return HTTPERROR on 429 or 5xx, fixes #151
otherwise 429 or 5xx would be overwriting cached value with null for $config minutes
2015-10-21 01:02:57 +02:00
jomo
d307aec221 rename helm to overlay, fixes #127 2015-10-18 15:11:17 +02:00
jomo
b0f50cbed0 print base64 encoded body if CRC does not match 2015-10-13 00:51:03 +02:00
jomo
8b2ccf3368 add new CRC checksums
updated OS X + cairo, so obviously the checksums change, right? right??
2015-10-13 00:50:25 +02:00
jomo
7714e0e0ef add case sensitive default URL tests, so 06caf589abfc4f7a552714558ac5f78abddeeabb won't happen again 2015-09-30 21:06:16 +02:00
jomo
ecfec6a407 use MHF_Steve and MHF_Alex instead of steve and alex in default parameter
See #142 (not fixed by this commit!)
Basically, this just adds mhf_steve and mhf_alex as special cases for the default parameter only
2015-09-30 00:38:32 +02:00
jomo
c8d74d47be avoid reserved property names (+ test), fixes #145 2015-09-25 19:24:56 +02:00
jomo
a15cb20144 TooManyRequestsException shouldn't actually throw an error
all other errors thrown here are network issues, this is not.
2015-09-20 21:43:12 +02:00
jomo
9cdca6acda don't throw strings 2015-09-20 21:28:43 +02:00
jomo
6a630f23b9 add new test CRCs for @6d12ed6 2015-09-06 00:47:17 +02:00
jomo
3a61e15abf various networking.js improvements
- cleaned up some messy if/else code, replaced with nicely readable switch/case
- catch JSON.parse errors
2015-08-31 00:10:35 +02:00
jomo
755cc74170 don't update file dates
this was originally implemented because we wanted to delete the oldest images on disk
where 'oldest' means not *used* for the longest time

that's not useful and was never actually implemented, so we don't need this
2015-08-30 04:48:50 +02:00
jomo
607dcaf6e5 use status -2 for 404s
human_status (response.js) defines code -2 as 'user error'. 404 is definitely a user error, so using that makes sense.
eventually we should change the whole status code thing with #120
2015-07-17 10:09:34 +02:00
Jake
b1cdf61e4b Change invalid request path to be a 404 rather than 422, implement status id in response module 2015-07-16 17:48:48 -05:00
Jake
7e8c65fb33 Add tests for invalid URL paths, closes #123 2015-07-16 17:31:20 -05:00
jomo
72840433cb use proper URL encoding in tests 2015-06-25 21:55:23 +02:00
jomo
d56b10955e add tests for uuid defaults, #115 2015-06-25 21:46:14 +02:00
jomo
8c022e5cb6 'useranme' 2015-06-25 21:34:15 +02:00
jomo
f9b7ffb5b7 fix redirection test 2015-06-25 21:33:47 +02:00
jomo
34f94bf9b5 get rid of redundant config names #124 2015-06-25 21:19:50 +02:00
Jake
a2e0edc491 Namespace and move config to root directory, closes #124 2015-06-25 13:12:08 -05:00
Jake
d2ab7b87ad Fix tests with new default code 2015-06-24 15:08:05 -05:00
Jake
8c39d0c017 Add support for userIds as defaults, ccloses #115 2015-06-24 01:23:22 -05:00
jomo
288657107e actually store the skin in store_skin, fixes #108; pipe skins & capes through lwip before saving, fixes #121 2015-05-28 01:32:29 +02:00
jomo
679e72759a fix test for TooManyRequests 2015-05-28 01:05:24 +02:00
jomo
0ec97e9ba1 add alternative checksum for mojang capes 2015-05-28 00:52:26 +02:00