{"record":{"id":"6253769d4b749d59","repo":"apereo/cas","slug":"no-radius-address-is-defined-radius-support-will","errorCode":null,"errorMessage":"No RADIUS address is defined. RADIUS support will be disabled.","messagePattern":"No RADIUS address is defined\\. RADIUS support will be disabled\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"support/cas-server-support-radius/src/main/java/org/apereo/cas/config/CasRadiusAutoConfiguration.java","lineNumber":192,"sourceCode":"\n    @ConditionalOnMissingBean(name = \"radiusAuthenticationEventExecutionPlanConfigurer\")\n    @Bean\n    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)\n    public AuthenticationEventExecutionPlanConfigurer radiusAuthenticationEventExecutionPlanConfigurer(\n        final ConfigurableApplicationContext applicationContext,\n        final CasConfigurationProperties casProperties,\n        @Qualifier(\"radiusAuthenticationHandler\")\n        final AuthenticationHandler radiusAuthenticationHandler,\n        @Qualifier(PrincipalResolver.BEAN_NAME_PRINCIPAL_RESOLVER)\n        final PrincipalResolver defaultPrincipalResolver) {\n        return BeanSupplier.of(AuthenticationEventExecutionPlanConfigurer.class)\n            .when(CONDITION.given(applicationContext.getEnvironment()))\n            .supply(() -> plan -> {\n                val ips = getClientIps(casProperties.getAuthn().getRadius().getClient());\n                if (!ips.isEmpty()) {\n                    plan.registerAuthenticationHandlerWithPrincipalResolver(radiusAuthenticationHandler, defaultPrincipalResolver);\n                } else {\n                    LOGGER.warn(\"No RADIUS address is defined. RADIUS support will be disabled.\");\n                }\n            })\n            .otherwiseProxy()\n            .get();\n    }\n\n    @ConditionalOnMissingBean(name = \"radiusPasswordPolicyConfiguration\")\n    @Bean\n    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)\n    public PasswordPolicyContext radiusPasswordPolicyConfiguration() {\n        return new PasswordPolicyContext();\n    }\n\n    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)\n    @Bean\n    @ConditionalOnMissingBean(name = \"radiusAccessChallengedMultifactorAuthenticationTrigger\")\n    public MultifactorAuthenticationTrigger radiusAccessChallengedMultifactorAuthenticationTrigger(\n        final CasConfigurationProperties casProperties,","sourceCodeStart":174,"sourceCodeEnd":210,"githubUrl":"https://github.com/apereo/cas/blob/e7288fc434b4f4505b8452e1a57e8fb3111bb863/support/cas-server-support-radius/src/main/java/org/apereo/cas/config/CasRadiusAutoConfiguration.java#L174-L210","documentation":"The RADIUS auto-configuration registers the RADIUS authentication handler only when client IP addresses are configured. When getClientIps returns empty (no cas.authn.radius.client server addresses defined), it logs this warning and registers nothing, disabling RADIUS authentication entirely.","triggerScenarios":"cas.authn.radius.client has no server entries (empty list of IP/host:port addresses) while the RADIUS support module is active, so the plan configurer has no addresses to build clients from.","commonSituations":"RADIUS dependency added but properties never set; properties under the wrong prefix (authn.radius vs radius); YAML list indentation errors producing an empty list; using an env var that resolves to empty.","solutions":["Define at least one RADIUS server address, e.g. cas.authn.radius.client.server[0].address=radius.example.org:1812.","Verify the properties namespace is cas.authn.radius.client.* and the YAML list is correctly indented.","Confirm the environment/secret substitution for the address variable actually resolves to a value.","If RADIUS is not needed, remove the module/dependency instead of leaving it half-configured."],"exampleFix":"# before\ncas.authn.radius.client: {}\n# after\ncas.authn.radius.client.server[0].address=10.0.0.5:1812\ncas.authn.radius.client.shared-secret=xxxxxxxx","handlingStrategy":"validation","validationCode":"if not config.get('cas.authn.radius.client.server'):\n    raise ValueError('cas.authn.radius.client.server[*].address must be defined for RADIUS support')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep RADIUS module dependency and its properties added/removed together","Grep startup logs for 'No RADIUS address is defined' in CI smoke tests","Avoid empty env-var substitutions feeding the address list"],"tags":["radius","configuration","missing-address"],"backgroundTag":"missing-required-config","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"}