aws / serverless-java-container

A Java wrapper to run Spring, Spring Boot, Jersey, and other apps inside AWS Lambda.
https://aws.amazon.com/serverless/
Apache License 2.0
1.49k stars 551 forks source link

Getting 302 Found when i invoke from alb but from api gateway its returning response properly #423

Open shashikalagt opened 3 years ago

shashikalagt commented 3 years ago

To help us debug your issue fill in the basic information below using the options provided

Serverless Java Container version: 1.6

Implementations: Spring Boot 2

Framework version: SpringBoot 2.2.1.RELEASE

Frontend service: ALB

Deployment method: Console

Scenario

currently spring boot app running in eks need to to deploy to lambda as containeter, image, the image is deployed suceessfully, when i invoke from api gateway test console, getting exepected results, but when i configure alb and lambda as the target, getting 302 Found, using custom doamin name

Expected behavior

It has to return the same response how api gateway returns

Actual behavior

302 Found

Steps to reproduce

as its official can't provide

Full log output

2021-08-30 10:28:58.413 INFO 6 --- [ main] c.a.s.p.internal.LambdaContainerHandler : 127.0.0.1 null- null [30/08/2021:10:28:58Z] "POST /dataloader/xxx/start/job null" 302 - "-" "PostmanRuntime/7.28.4" combined

Server: awselb/2.0 Date: Mon, 30 Aug 2021 10:28:58 GMT Content-Type: application/octet-stream Content-Length: 0 Location: https://xxxx/dataloader/xxx/start/job?synchronous=true Connection: keep-alive

logs
deki commented 3 years ago

Hi @shashikalagt, please add more details and fill out the issue template so that we are able to help you. Thanks!

shashikalagt commented 3 years ago

i have updated the details

shashikalagt commented 3 years ago

Hi @shashikalagt, please add more details and fill out the issue template so that we are able to help you. Thanks!

The issue is resolved, when i disable requireSecure in oAuth config

http.cors().and().authorizeRequests() .antMatchers(matcher) .permitAll().and().authorizeRequests().antMatchers("/**").authenticated().and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) ;//.and().requiresChannel().anyRequest().requiresSecure();

shashikalagt commented 3 years ago

I have referred this link and disabled the above line for workround, please suggest what we need to do in case security conext https://community.pivotal.io/s/article/spring-boot-app-keeps-returning-http-status-code-302?language=en_US

deki commented 3 years ago

Thanks for updating the issue with your findings. Take a look if the x-forwarded headers are correctly transmitted.

You can modify the configuration as documented: https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.webserver.use-behind-a-proxy-server