@Replaces(DefaultLocalFunctionRegistry.class) public class AnnotatedFunctionRouteBuilder extends DefaultRouteBuilder
@Replaces(DefaultCompositeDiscoveryClient.class) public class CachingCompositeDiscoveryClient extends CompositeDiscoveryClient {
@Replaces(bean = BearerTokenRenderer.class) public class CustomBearerTokenRenderer extends BearerTokenRenderer { @Override public AccessRefreshToken render(UserDetails userDetails, Integer expiresIn, String accessToken, String refreshToken) { if (userDetails instanceof InsuranceAgentDetails) { return new CustomBearerAccessRefreshToken( userDetails.getUsername(), userDetails.getRoles(), expiresIn, accessToken, refreshToken, ((InsuranceAgentDetails) userDetails).getAvatarUrl() ); } return new BearerAccessRefreshToken( userDetails.getUsername(), userDetails.getRoles(), expiresIn, accessToken, refreshToken); } }
@Singleton @Replaces(bean = JWTClaimsSetGenerator.class) public class InsuranceAgentJWTClaimsSetGenerator extends JWTClaimsSetGenerator { public InsuranceAgentJWTClaimsSetGenerator(TokenConfiguration tokenConfiguration, @Nullable JwtIdGenerator jwtIdGenerator, @Nullable ClaimsAudienceProvider claimsAudienceProvider, @Nullable ApplicationConfiguration applicationConfiguration) { super(tokenConfiguration, jwtIdGenerator, claimsAudienceProvider, applicationConfiguration); } @Override protected void populateWithUserDetails(JWTClaimsSet.Builder builder, UserDetails userDetails) { super.populateWithUserDetails(builder, userDetails); if (userDetails instanceof InsuranceAgentDetails) { builder.claim("avatar", ((InsuranceAgentDetails) userDetails).getAvatarUrl()); } } }
@Singleton @Requires(classes = NettyHttpRequest.class) @Requires(beans = HttpServerConfiguration.class) @Replaces(DefaultChannelResolver.class) @Primary public class MicronautNettyChannelResolver implements ChannelResolver {