software.amazon.awscdk.services.elasticloadbalancingv2.actions.package-info Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of elasticloadbalancingv2-actions Show documentation
Show all versions of elasticloadbalancingv2-actions Show documentation
Integration actions for AWS ElasticLoadBalancingV2
/**
* Actions for AWS Elastic Load Balancing V2
*
* ---
*
*
*
*
*
*
*
* This package contains integration actions for ELBv2. See the README of the @aws-cdk/aws-elasticloadbalancingv2
library.
*
*
Cognito
*
* ELB allows for requests to be authenticated against a Cognito user pool using
* the AuthenticateCognitoAction
. For details on the setup's requirements,
* read Prepare to use Amazon
* Cognito.
* Here's an example:
*
*
* import software.amazon.awscdk.services.cognito.*;
* import software.amazon.awscdk.services.ec2.*;
* import software.amazon.awscdk.services.elasticloadbalancingv2.*;
* import software.amazon.awscdk.core.App;
* import software.amazon.awscdk.core.CfnOutput;
* import software.amazon.awscdk.core.Stack;
* import software.constructs.Construct;
* import software.amazon.awscdk.services.elasticloadbalancingv2.actions.*;
*
* CognitoStack extends Stack {CognitoStack(ApplicationLoadBalancer lb = ApplicationLoadBalancer.Builder.create(this, "LB")
* .vpc(vpc)
* .internetFacing(true)
* .build();
*
* UserPool userPool = new UserPool(this, "UserPool");
* UserPoolClient userPoolClient = UserPoolClient.Builder.create(this, "Client")
* .userPool(userPool)
*
* // Required minimal configuration for use with an ELB
* .generateSecret(true)
* .authFlows(AuthFlow.builder()
* .userPassword(true)
* .build())
* .oAuth(OAuthSettings.builder()
* .flows(OAuthFlows.builder()
* .authorizationCodeGrant(true)
* .build())
* .scopes(List.of(OAuthScope.EMAIL))
* .callbackUrls(List.of(String.format("https://%s/oauth2/idpresponse", lb.getLoadBalancerDnsName())))
* .build())
* .build();
* CfnUserPoolClient cfnClient = (CfnUserPoolClient)userPoolClient.getNode().getDefaultChild();
* cfnClient.addPropertyOverride("RefreshTokenValidity", 1);
* cfnClient.addPropertyOverride("SupportedIdentityProviders", List.of("COGNITO"));
*
* UserPoolDomain userPoolDomain = UserPoolDomain.Builder.create(this, "Domain")
* .userPool(userPool)
* .cognitoDomain(CognitoDomainOptions.builder()
* .domainPrefix("test-cdk-prefix")
* .build())
* .build();
*
* lb.addListener("Listener", BaseApplicationListenerProps.builder()
* .port(443)
* .certificates(List.of(certificate))
* .defaultAction(AuthenticateCognitoAction.Builder.create()
* .userPool(userPool)
* .userPoolClient(userPoolClient)
* .userPoolDomain(userPoolDomain)
* .next(ListenerAction.fixedResponse(200, FixedResponseOptions.builder()
* .contentType("text/plain")
* .messageBody("Authenticated")
* .build()))
* .build())
* .build());
*
* CfnOutput.Builder.create(this, "DNS")
* .value(lb.getLoadBalancerDnsName())
* .build();
*
* App app = new App();
* new CognitoStack(app, "integ-cognito");
* app.synth();
*
*
*
*
* NOTE: this example seems incomplete, I was not able to get the redirect back to the
* Load Balancer after authentication working. Would love some pointers on what a full working
* setup actually looks like!
*
*
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Stable)
package software.amazon.awscdk.services.elasticloadbalancingv2.actions;
© 2015 - 2025 Weber Informatics LLC | Privacy Policy