我需要将JWT令牌传递给Java中的lambda函数。
如何将JWT令牌传递给可以通过ALB调用的Java Lambda函数?
答案 0 :(得分:0)
JWT令牌可以作为流的一部分或在处理程序方法中的自定义对象进行传递。我使用了输入流,然后将输入流解析为json并从事件主体中提取令牌。 在这里,ALB只是一个网关,因此不管我们使用什么作为参数,它都不会发挥广泛的作用。
下面是示例代码:
public class LambdaFunctionHandler implements RequestStreamHandler {
JWTSecurityContext secContext;
LambdaLogger logger;
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
logger = context.getLogger();
logger.log("Inside lambda handler");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
JSONObject response = new JSONObject();
JSONParser parser = new JSONParser();
boolean valid = false;
try {
JSONObject event = (JSONObject) parser.parse(reader);
logger.log("Recieved event "+event);
String eventBodyString = (String) event.get("body");
JSONObject eventBody = (JSONObject) parser.parse(eventBodyString) ;
String token = (String) eventBody.get("authtoken");