Views

The views are found inside the CAS web application in the WEB-INF\lib\cas-server-support-thymeleaf-<cas.version>.jar in the templates folder. Add any views that require customization to the src/main/resources/templates folder in the CAS overlay project.
Any files found in that module can be overridden by putting them in the same location under src/main/resources in the CAS overlay project. The Gradle build script for the overlay has tasks that help get resources from the CAS web application to the correct location in the CAS overlay.

Templates

The following user interface templates are available and recognized by CAS for various modules and features:

Category Name Full Path
acceptto casAccepttoRegistrationView.html /src/main/resources/templates/acceptto/casAccepttoRegistrationView.html
acct-mgmt casAccountSignupView.html /src/main/resources/templates/acct-mgmt/casAccountSignupView.html
acct-mgmt casAccountSignupViewComplete.html /src/main/resources/templates/acct-mgmt/casAccountSignupViewComplete.html
acct-mgmt casAccountSignupViewCompleted.html /src/main/resources/templates/acct-mgmt/casAccountSignupViewCompleted.html
acct-mgmt casAccountSignupViewSentInfo.html /src/main/resources/templates/acct-mgmt/casAccountSignupViewSentInfo.html
adaptive-authn casRiskAuthenticationBlockedView.html /src/main/resources/templates/adaptive-authn/casRiskAuthenticationBlockedView.html
admin casAdminLoginView.html /src/main/resources/templates/admin/casAdminLoginView.html
aup casAcceptableUsagePolicyView.html /src/main/resources/templates/aup/casAcceptableUsagePolicyView.html
authy casAuthyLoginView.html /src/main/resources/templates/authy/casAuthyLoginView.html
consent casConsentView.html /src/main/resources/templates/consent/casConsentView.html
delegated-authn casDelegatedAuthnErrorView.html /src/main/resources/templates/delegated-authn/casDelegatedAuthnErrorView.html
delegated-authn casDelegatedAuthnStopWebflow.html /src/main/resources/templates/delegated-authn/casDelegatedAuthnStopWebflow.html
delegated-authn casDynamicDiscoveryView.html /src/main/resources/templates/delegated-authn/casDynamicDiscoveryView.html
duo-security casDuoLoginView.html /src/main/resources/templates/duo-security/casDuoLoginView.html
error error.html /src/main/resources/templates/error.html
error 400.html /src/main/resources/templates/error/400.html
error 401.html /src/main/resources/templates/error/401.html
error 403.html /src/main/resources/templates/error/403.html
error 404.html /src/main/resources/templates/error/404.html
error 405.html /src/main/resources/templates/error/405.html
error 423.html /src/main/resources/templates/error/423.html
error casServiceErrorView.html /src/main/resources/templates/error/casServiceErrorView.html
error casWebflowConfigErrorView.html /src/main/resources/templates/error/casWebflowConfigErrorView.html
forgot-username casForgotUsernameSendInfoView.html /src/main/resources/templates/forgot-username/casForgotUsernameSendInfoView.html
forgot-username casForgotUsernameSentInfoView.html /src/main/resources/templates/forgot-username/casForgotUsernameSentInfoView.html
fragments accepttoQRCode.html /src/main/resources/templates/fragments/accepttoQRCode.html
fragments footer.html /src/main/resources/templates/fragments/footer.html
fragments header.html /src/main/resources/templates/fragments/header.html
fragments loginProviders.html /src/main/resources/templates/fragments/loginProviders.html
fragments loginform.html /src/main/resources/templates/fragments/loginform.html
fragments loginsidebar.html /src/main/resources/templates/fragments/loginsidebar.html
fragments material.html /src/main/resources/templates/fragments/material.html
fragments pmlinks.html /src/main/resources/templates/fragments/pmlinks.html
fragments pwdupdateform.html /src/main/resources/templates/fragments/pwdupdateform.html
fragments qrAuthentication.html /src/main/resources/templates/fragments/qrAuthentication.html
fragments recaptcha.html /src/main/resources/templates/fragments/recaptcha.html
fragments scripts.html /src/main/resources/templates/fragments/scripts.html
fragments serviceui.html /src/main/resources/templates/fragments/serviceui.html
fragments submitbutton.html /src/main/resources/templates/fragments/submitbutton.html
fragments webAuthnLogin.html /src/main/resources/templates/fragments/webAuthnLogin.html
gauth casGoogleAuthenticatorConfirmRegistrationView.html /src/main/resources/templates/gauth/casGoogleAuthenticatorConfirmRegistrationView.html
gauth casGoogleAuthenticatorLoginView.html /src/main/resources/templates/gauth/casGoogleAuthenticatorLoginView.html
gauth casGoogleAuthenticatorRegistrationView.html /src/main/resources/templates/gauth/casGoogleAuthenticatorRegistrationView.html
gua casGuaDisplayUserGraphicsView.html /src/main/resources/templates/gua/casGuaDisplayUserGraphicsView.html
gua casGuaGetUserIdView.html /src/main/resources/templates/gua/casGuaGetUserIdView.html
interrupt casInterruptView.html /src/main/resources/templates/interrupt/casInterruptView.html
inwebo casInweboBrowserAuthnView.html /src/main/resources/templates/inwebo/casInweboBrowserAuthnView.html
inwebo casInweboCheckResultView.html /src/main/resources/templates/inwebo/casInweboCheckResultView.html
inwebo casInweboErrorView.html /src/main/resources/templates/inwebo/casInweboErrorView.html
inwebo casInweboSelectAuthnView.html /src/main/resources/templates/inwebo/casInweboSelectAuthnView.html
layout layout.html /src/main/resources/templates/layout.html
login-error casAccountDisabledView.html /src/main/resources/templates/login-error/casAccountDisabledView.html
login-error casAccountLockedView.html /src/main/resources/templates/login-error/casAccountLockedView.html
login-error casAuthenticationBlockedView.html /src/main/resources/templates/login-error/casAuthenticationBlockedView.html
login-error casBadHoursView.html /src/main/resources/templates/login-error/casBadHoursView.html
login-error casBadWorkstationView.html /src/main/resources/templates/login-error/casBadWorkstationView.html
login-error casExpiredPassView.html /src/main/resources/templates/login-error/casExpiredPassView.html
login-error casMustChangePassView.html /src/main/resources/templates/login-error/casMustChangePassView.html
login casConfirmView.html /src/main/resources/templates/login/casConfirmView.html
login casGenericSuccessView.html /src/main/resources/templates/login/casGenericSuccessView.html
login casLoginMessageView.html /src/main/resources/templates/login/casLoginMessageView.html
login casLoginView.html /src/main/resources/templates/login/casLoginView.html
logout casConfirmLogoutView.html /src/main/resources/templates/logout/casConfirmLogoutView.html
logout casLogoutView.html /src/main/resources/templates/logout/casLogoutView.html
logout casPropagateLogoutView.html /src/main/resources/templates/logout/casPropagateLogoutView.html
mfa-trusted-devices casMfaRegisterDeviceView.html /src/main/resources/templates/mfa-trusted-devices/casMfaRegisterDeviceView.html
mfa casCompositeMfaProviderSelectionView.html /src/main/resources/templates/mfa/casCompositeMfaProviderSelectionView.html
mfa casMfaDeniedView.html /src/main/resources/templates/mfa/casMfaDeniedView.html
mfa casMfaUnavailableView.html /src/main/resources/templates/mfa/casMfaUnavailableView.html
password-reset casPasswordUpdateSuccessView.html /src/main/resources/templates/password-reset/casPasswordUpdateSuccessView.html
password-reset casResetPasswordErrorView.html /src/main/resources/templates/password-reset/casResetPasswordErrorView.html
password-reset casResetPasswordSendInstructionsView.html /src/main/resources/templates/password-reset/casResetPasswordSendInstructionsView.html
password-reset casResetPasswordSentInstructionsView.html /src/main/resources/templates/password-reset/casResetPasswordSentInstructionsView.html
password-reset casResetPasswordVerifyQuestionsView.html /src/main/resources/templates/password-reset/casResetPasswordVerifyQuestionsView.html
passwordless casPasswordlessDisplayView.html /src/main/resources/templates/passwordless/casPasswordlessDisplayView.html
passwordless casPasswordlessGetUserIdView.html /src/main/resources/templates/passwordless/casPasswordlessGetUserIdView.html
protocol casProxyFailureView.html /src/main/resources/templates/protocol/2.0/casProxyFailureView.html
protocol casProxySuccessView.html /src/main/resources/templates/protocol/2.0/casProxySuccessView.html
protocol casServiceValidationFailure.html /src/main/resources/templates/protocol/2.0/casServiceValidationFailure.html
protocol casServiceValidationSuccess.html /src/main/resources/templates/protocol/2.0/casServiceValidationSuccess.html
protocol casServiceValidationFailure.html /src/main/resources/templates/protocol/3.0/casServiceValidationFailure.html
protocol casServiceValidationSuccess.html /src/main/resources/templates/protocol/3.0/casServiceValidationSuccess.html
protocol casPostResponseView.html /src/main/resources/templates/protocol/casPostResponseView.html
protocol confirm.html /src/main/resources/templates/protocol/oauth/confirm.html
protocol deviceCodeApproval.html /src/main/resources/templates/protocol/oauth/deviceCodeApproval.html
protocol deviceCodeApproved.html /src/main/resources/templates/protocol/oauth/deviceCodeApproved.html
protocol sessionStaleMismatchError.html /src/main/resources/templates/protocol/oauth/sessionStaleMismatchError.html
protocol confirm.html /src/main/resources/templates/protocol/oidc/confirm.html
protocol casOpenIdAssociationSuccessView.html /src/main/resources/templates/protocol/openid/casOpenIdAssociationSuccessView.html
protocol casOpenIdServiceFailureView.html /src/main/resources/templates/protocol/openid/casOpenIdServiceFailureView.html
protocol casOpenIdServiceSuccessView.html /src/main/resources/templates/protocol/openid/casOpenIdServiceSuccessView.html
protocol user.html /src/main/resources/templates/protocol/openid/user.html
radius casRadiusLoginView.html /src/main/resources/templates/radius/casRadiusLoginView.html
saml2-discovery casSamlIdPDiscoveryView.html /src/main/resources/templates/saml2-discovery/casSamlIdPDiscoveryView.html
simple-mfa casSimpleMfaLoginView.html /src/main/resources/templates/simple-mfa/casSimpleMfaLoginView.html
storage casSessionStorageReadView.html /src/main/resources/templates/storage/casSessionStorageReadView.html
storage casSessionStorageWriteView.html /src/main/resources/templates/storage/casSessionStorageWriteView.html
surrogate casSurrogateAuthnListView.html /src/main/resources/templates/surrogate/casSurrogateAuthnListView.html
swivel casSwivelLoginView.html /src/main/resources/templates/swivel/casSwivelLoginView.html
u2f casU2fLoginView.html /src/main/resources/templates/u2f/casU2fLoginView.html
u2f casU2fRegistrationView.html /src/main/resources/templates/u2f/casU2fRegistrationView.html
webauthn casWebAuthnLoginView.html /src/main/resources/templates/webauthn/casWebAuthnLoginView.html
webauthn casWebAuthnRegistrationView.html /src/main/resources/templates/webauthn/casWebAuthnRegistrationView.html
wsfed casWsFedStopWebflow.html /src/main/resources/templates/wsfed/casWsFedStopWebflow.html
yubikey casYubiKeyLoginView.html /src/main/resources/templates/yubikey/casYubiKeyLoginView.html
yubikey casYubiKeyRegistrationView.html /src/main/resources/templates/yubikey/casYubiKeyRegistrationView.html

Configuration

The following settings and properties are available from the CAS configuration catalog:

The configuration settings listed below are tagged as Required in the CAS configuration metadata. This flag indicates that the presence of the setting may be needed to activate or affect the behavior of the CAS feature and generally should be reviewed, possibly owned and adjusted. If the setting is assigned a default value, you do not need to strictly put the setting in your copy of the configuration, but should review it nonetheless to make sure it matches your deployment expectations.

The configuration settings listed below are tagged as Optional in the CAS configuration metadata. This flag indicates that the presence of the setting is not immediately necessary in the end-user CAS configuration, because a default value is assigned or the activation of the feature is not conditionally controlled by the setting value.

  • cas.view.template-prefixes=
  • Comma separated paths to where CAS templates may be found. Example might be classpath:templates,file:/templates.

    org.apereo.cas.configuration.model.core.web.view.ViewProperties.