{"record":{"id":"1951fe20936a6e5d","repo":"apereo/cas","slug":"shibboleth-idp-url-is-not-specified-external-auth","errorCode":null,"errorMessage":"Shibboleth IdP url is not specified; External authentication requests by the IdP will not be recognized","messagePattern":"Shibboleth IdP url is not specified; External authentication requests by the IdP will not be recognized","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"support/cas-server-support-shibboleth/src/main/java/org/apereo/cas/config/CasShibbolethIdPAutoConfiguration.java","lineNumber":64,"sourceCode":"        final ServiceFactory<WebApplicationService> webApplicationServiceFactory) {\n        return new ShibbolethIdPEntityIdAuthenticationServiceSelectionStrategy(\n            servicesManager,\n            webApplicationServiceFactory,\n            casProperties.getAuthn().getShibIdp().getServerUrl(),\n            registeredServiceAccessStrategyEnforcer);\n    }\n\n    @Bean\n    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)\n    public AuthenticationServiceSelectionStrategyConfigurer shibbolethIdPAuthenticationServiceSelectionStrategyConfigurer(\n        @Qualifier(\"shibbolethIdPEntityIdAuthenticationServiceSelectionStrategy\")\n        final AuthenticationServiceSelectionStrategy shibbolethIdPEntityIdAuthenticationServiceSelectionStrategy,\n        final CasConfigurationProperties casProperties) {\n        return plan -> {\n            if (StringUtils.isNotBlank(casProperties.getAuthn().getShibIdp().getServerUrl())) {\n                plan.registerStrategy(shibbolethIdPEntityIdAuthenticationServiceSelectionStrategy);\n            } else {\n                LOGGER.warn(\"Shibboleth IdP url is not specified; External authentication requests by the IdP will not be recognized\");\n            }\n        };\n    }\n\n}\n","sourceCodeStart":46,"sourceCodeEnd":70,"githubUrl":"https://github.com/apereo/cas/blob/e7288fc434b4f4505b8452e1a57e8fb3111bb863/support/cas-server-support-shibboleth/src/main/java/org/apereo/cas/config/CasShibbolethIdPAutoConfiguration.java#L46-L70","documentation":"CasShibbolethIdPAutoConfiguration registers the Shibboleth IdP entity-id service selection strategy only when cas.authn.shib-idp.server-url is set. When that property is blank, the configuration logs this warning and skips registration, meaning inbound authentication requests proxied from the external Shibboleth IdP will not be recognized and matched to services.","triggerScenarios":"Deploying the CAS Shibboleth support module without setting cas.authn.shib-idp.server-url in the configuration, then attempting external IdP-driven authentication flows.","commonSituations":"Forgetting the shib-idp block in application.properties/yml when integrating CAS with an external Shibboleth IdP; property present in a different profile (dev vs prod) not active at runtime; property name typo so the value stays null.","solutions":["Set cas.authn.shib-idp.server-url to the base URL of the Shibboleth IdP (e.g. https://idp.example.org/idp)","Confirm the property is in the active Spring profile's configuration file","Restart the CAS server after adding the property so the auto-configuration re-registers the strategy","Verify with startup logs that the warning no longer appears and the selection strategy is registered"],"exampleFix":"// before (application.properties)\n# cas.authn.shib-idp.server-url not set\n// after\ncas.authn.shib-idp.server-url=https://idp.example.org/idp","handlingStrategy":"validation","validationCode":"// Fail fast at deployment if the property is absent\nString url = env.getProperty(\"cas.authn.shib-idp.server-url\");\nif (url == null || url.isBlank())\n    throw new IllegalStateException(\"cas.authn.shib-idp.server-url must be set when Shibboleth support is enabled\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Include cas.authn.shib-idp.server-url in every profile that enables Shibboleth support","Grep startup logs for this warning in smoke tests","Keep shib-idp settings in one shared config include to avoid profile drift"],"tags":["configuration","shibboleth","sso","missing-property"],"backgroundTag":"missing-required-config-field","analyzedSha":"e7288fc434b4f4505b8452e1a57e8fb3111bb863","analyzedAt":"2026-09-08T15:39:16.015Z","contentChangedAt":"2026-09-08T15:39:16.015Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}