Example Jenkin Groovy Pipeline Script for Building Python Projects with Git Events and Push to Artifactory
Introduction In this post, we will see a sample Jenkin Pipeline Groovy script…
April 20, 2022
I was trying to integrate Okta with Spring, and when I deploy the code. I got following error:
org.opensaml.common.binding.decoding.BaseSAMLMessageDecoder] SAML message intended destination endpoint did not match the recipient endpointAnd, the error mentioned the two URLs only differe by https. One was with http, and other was with https.
I was working with docker containers for my spring app, and was deploying it on kubernetes, behind a Ingress load balancer.
My spring app pod was running on http, and setup SSL (https) on Ingress load balancer.
I’m not mentioning all beans defined. Just mentioning two beans that needed a fix.
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
<constructor-arg>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
<property name="entityId" value="${saml.audience.url}"/>
<property name="extendedMetadata">
<bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
<property name="idpDiscoveryEnabled" value="false"/>
</bean>
</property>
</bean>
</constructor-arg>
</bean>
<bean id="contextProvider" class="org.springframework.security.saml.context.SAMLContextProviderImpl"/>Where value of saml.audience.url was:
saml.audience.url=https://<MyApp>.com/api/saml/audienceI needed to correct above two beans.
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
<constructor-arg>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
<property name="entityId" value="${saml.audience.url}"/>
<property name="entityBaseURL" value="${saml.entity.base.url}"/>
<property name="extendedMetadata">
<bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
<property name="idpDiscoveryEnabled" value="false"/>
</bean>
</property>
</bean>
</constructor-arg>
</bean>
<bean id="contextProvider" class="org.springframework.security.saml.context.SAMLContextProviderLB">
<property name="scheme" value="https"/>
<property name="serverName" value="${saml.server.name}"/>
<property name="serverPort" value="443"/>
<property name="includeServerPortInRequestURL" value="false"/>
<property name="contextPath" value="${saml.context.path}"/>
</bean>Notice two things:
contextProvider bean of class SAMLContextProviderLBentityBaseURL in metadataGeneratorFilter beanLets have a look at their values:
saml.metadata.url: "https://XYZ.okta.com/app/<IDP_ID>/sso/saml/metadata"
saml.audience.url: "https://<MyApp>.com/api/saml/audience"
saml.entity.base.url: "https://<MyAPp>.com/api"
saml.server.name: "<MyApp>.com"
saml.context.path: "/api"Note, its very important to set saml.context.path with a slash in beginning.
Now, build your app and run. It ran smoothly without any issue.
Hope it helps. Thanks for reading.
Introduction In this post, we will see a sample Jenkin Pipeline Groovy script…
Introduction There might be a situation when you are doing some changes in the…
Introduction To give some context, I have two python files. (Both in same folder…
Introduction In this guide, We will learn on how to create some handy command…
Introduction There are some cases, where I need another git repository while…
hook_cron() suggests to put tasks that executes in shorter time or non-resource…
Introduction In this post we will see following: How to schedule a job on cron…
Introduction There are some cases, where I need another git repository while…
Introduction In this post, we will see how to fetch multiple credentials and…
Introduction I have an automation script, that I want to run on different…
Introduction I had to write a CICD system for one of our project. I had to…
Introduction Java log4j has many ways to initialize and append the desired…