| Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
docpublic:systemes:ssocas:cas7install [2024/06/06 17:10] adminjp [tomcat log CAS war] |
docpublic:systemes:ssocas:cas7install [2024/06/16 09:06] (current) adminjp [Registering Applications] |
| |
| <code> | <code> |
| [root@cas7d cas-overlay-template]# cp /opt/cas-src/cas-overlay-template/build/libs/cas.war /opt/tomcat/webapps/ | [root@cas7 cas-overlay-template]# cp /opt/cas-src/cas-overlay-template/build/libs/cas.war /opt/tomcat/webapps/ |
| |
| [root@cas7d cas-overlay-template]# systemctl start tomcat.service | [root@cas7 cas-overlay-template]# systemctl start tomcat.service |
| |
| [root@cas7 cas-overlay-template]# ls -ltr /opt/tomcat/webapps/ | [root@cas7 cas-overlay-template]# ls -ltr /opt/tomcat/webapps/ |
| |
| <code> | <code> |
| [root@cas6 ~]# cat /etc/httpd/conf.d/cas.conf | [root@cas7 ~]# cat /etc/httpd/conf.d/cas7.conf |
| ProxyRequests off | #ProxyRequests off |
| ProxyPass /cas ajp://127.0.0.1:8009/idp retry=0 | ProxyPass /cas ajp://127.0.0.1:8009/cas |
| ProxyPassReverse /cas ajp://127.0.0.1:8009/idp | ProxyPassReverse /cas ajp://127.0.0.1:8009/cas |
| ProxyPass /manager ajp://127.0.0.1:8009/manager | ProxyPass /manager ajp://127.0.0.1:8009/manager |
| ProxyPassReverse /manager ajp://127.0.0.1:8009/manager | ProxyPassReverse /manager ajp://127.0.0.1:8009/manager |
| | |
| </code> | </code> |
| |
| depuis un navigateur accedons a notre service CAS : https://ssocas6.domain.fr/cas/login | depuis un navigateur accedons a notre service CAS : https://ssocas6.domain.fr/cas/login |
| |
| | {{:docpublic:systemes:ssocas:cas7-initial-login-view-2024-06-06_19-11-45.png?400|}} |
| {{:docpublic:systemes:ssocas:ssocas6-1stlogin-form-2021-05-22.png?600|}} | |
| |
| une fois le login/password saisie, on aboutit sur une page d'affichage des attributs, ce qui valide le process d'authentifcation et de recuperation d'information depuis notre annuaire ldap. | une fois le login/password saisie, on aboutit sur une page d'affichage des attributs, ce qui valide le process d'authentifcation et de recuperation d'information depuis notre annuaire ldap. |
| |
| ==== Registering Applications ==== | ==== Registering Applications ==== |
| | |
| | * https://jasigcas.readthedocs.io/en/latest/cas-server-documentation/installation/JSON-Service-Management.html |
| | |
| |
| les appplications clientes autorisées à utiliser notre serveur CAS doivent etre declarée au préalable . cela peut se faire au travers d'un simple fichier de type json . | les appplications clientes autorisées à utiliser notre serveur CAS doivent etre declarée au préalable . cela peut se faire au travers d'un simple fichier de type json . |
| |
| nous déclarons dans cas.prpoerties le chemin d'acces a ce fichier json | nous déclarons dans cas.properties le chemin d'acces a ce fichier json |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# tail -2 etc/cas/config/cas.properties | [root@cas7 cas-overlay-template]# grep -b1 service etc/cas/config/cas.properties |
| ### Registering Applications | 846-### Registering Applications |
| cas.serviceRegistry.json.location: file:/etc/cas/services | 876:cas.serviceRegistry.json.location: file:/etc/cas/services |
| </code> | </code> |
| |
| Il est recommandé de nommer les nouveaux fichiers JSON comme ceci: "serviceName-serviceNumericId.json" | Il est recommandé de nommer les nouveaux fichiers JSON comme ceci: "serviceName-serviceNumericId.json", et de bien reprendre le nom serviceName dans l'attribut "name" |
| |
| Pour créer l'ID nous utilisons la commande date +%s | Pour créer l'ID nous utilisons la commande date +%s |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# mkdir /etc/cas/services | [root@cas7 cas-overlay-template]# mkdir /etc/cas/services |
| [root@ssocas6 cas-overlay-template]# cd /etc/cas/services | [root@cas7 cas-overlay-template]# cd /etc/cas/services |
| [root@ssocas6 services]# touch disi_wikis-`date +%s`.json | [root@cas7 services]# touch disi_star_domain-`date +%s`.json |
| [root@ssocas6 services]# vim disi_wikis-1621678622.json | [root@cas7 services]# vim disi_star_domain-1718526946.json |
| </code> | </code> |
| |
| on peux ensuite ajouter d'autres services (ici un 3eme cf logs CAS [1]) , le serveur CAS lit regulierement le directory /etc/cas/services pour les charger dynamiquement sans necessité de restart de tomcat/cas . | le contenu de la définition de services a autoriser, dans cet exemple RegEx sur tout un domain |
| | |
| | <code> |
| | [root@cas7 services]# cat disi_star_domain-1718526946.json |
| | { |
| | "@class" : "org.apereo.cas.services.CasRegisteredService", |
| | "serviceId" : "https://.*.domain.fr/.*", |
| | "name" : "disi_star_domain", |
| | "id" : 1718526946, |
| | "evaluationOrder" : 40616, |
| | "matchingStrategy": { |
| | "@class": "org.apereo.cas.services.FullRegexRegisteredServiceMatchingStrategy" |
| | } |
| | "proxyPolicy" : { |
| | "@class" : "org.apereo.cas.services.RegexMatchingRegisteredServiceProxyPolicy", |
| | "pattern" : "https?:\/\/.*.domain.fr\/.*" |
| | } |
| | "attributeReleasePolicy" : { |
| | "@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy" |
| | } |
| | |
| | } |
| | </code> |
| | |
| | |
| | on peut ensuite ajouter d'autres services (ici un 3eme cf logs CAS [1]) , le serveur CAS lit regulierement le directory /etc/cas/services pour les charger dynamiquement sans necessité de restart de tomcat/cas . |
| |
| <code> | <code> |
| [root@ssocas6 services]#cat dsi_ws_domain1-fr-1622207781.json | [root@ssocas6 services]#cat dsi_ws_domain1-fr-1622207781.json |
| { | { |
| "@class" : "org.apereo.cas.services.RegexRegisteredService", | "@class" : "org.apereo.cas.services.CasRegisteredService", |
| "serviceId" : "^https://.*.domain1.fr/.*", | "serviceId" : "^https://.*.domain1.fr/.*", |
| "name" : "Dsi_ws-tem-tsp-eu", | "name" : "Dsi_ws-tem-tsp-eu", |
| [1] | [1] |
| <code> | <code> |
| 2021-05-28 14:18:03,506 INFO [org.apereo.cas.services.AbstractServicesManager] - <Loaded [3] service(s) from [JsonServiceRegistry].> | 2024-06-16 10:56:43,076 INFO [org.apereo.cas.services.mgmt.AbstractServicesManager] - <Loaded [2] service(s) from [JsonServiceRegistry].> |
| </code> | </code> |
| |
| * https://fawnoos.com/2020/05/17/cas62x-reloadable-html-views/ | * https://fawnoos.com/2020/05/17/cas62x-reloadable-html-views/ |
| * https://fawnoos.com/2021/02/16/cas63-ui-themes/ | * https://fawnoos.com/2021/02/16/cas63-ui-themes/ |
| | * https://apereo.github.io/cas/7.0.x/ux/User-Interface-Customization.html |
| |
| |
| depuis 5.X on est passé de JSP a tymeleaf , on peux visualiser le resultat directmeent en html sans avoir besoin d'un serveur pour interpreter . | depuis 5.X on est passé de JSP a tymeleaf , on peut visualiser le resultat directement en html sans avoir besoin d'un serveur pour interpreter . |
| |
| pour personaliser des pages, il faut d'abord les extraires de l'overlay distribué afin de les mettres dans notre environement de personalisations locales | pour personaliser des pages, il faut d'abord les extraires de l'overlay distribué afin de les mettres dans notre environement de personalisations locales |
| |
| pour ce faire nous allons utiliser la tache gradle listTemplateViews afin de lister l'ensembles des fichiers (css, html, png ..) qui compose la view du formulaire : | pour ce faire nous allons utiliser la tache //gradle listTemplateViews// afin de lister l'ensemble des fichiers (css, html, png ..) qui composent la view du formulaire : |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# ./gradlew listTemplateViews | more | [root@cas7 cas-overlay-template]# ./gradlew listTemplateViews | more |
| Starting a Gradle Daemon (subsequent builds will be faster) | Starting a Gradle Daemon, 1 busy Daemon could not be reused, use --status for details |
| > Task :bootBuildInfo | Configuration on demand is an incubating feature. |
| > Task :generateLombokConfig UP-TO-DATE | > Task :generateEffectiveLombokConfig UP-TO-DATE |
| > Task :compileJava NO-SOURCE | > Task :compileJava UP-TO-DATE |
| | > Task :validateConfiguration NO-SOURCE |
| > Task :processResources UP-TO-DATE | > Task :processResources UP-TO-DATE |
| > Task :classes | > Task :classes UP-TO-DATE |
| > Task :extractCasBootWarOverlay UP-TO-DATE | > Task :extractCasBootWarOverlay UP-TO-DATE |
| > Task :bootWar | > Task :resolveMainClassName UP-TO-DATE |
| | > Task :bootWar UP-TO-DATE |
| > Task :war SKIPPED | > Task :war SKIPPED |
| > Task :assemble | > Task :assemble UP-TO-DATE |
| | > Task :generateTestEffectiveLombokConfig UP-TO-DATE |
| > Task :compileTestJava NO-SOURCE | > Task :compileTestJava NO-SOURCE |
| > Task :processTestResources NO-SOURCE | > Task :processTestResources NO-SOURCE |
| > Task :test NO-SOURCE | > Task :test NO-SOURCE |
| > Task :check UP-TO-DATE | > Task :check UP-TO-DATE |
| > Task :build | > Task :build UP-TO-DATE |
| |
| > Task :explodeWarOnly | > Task :unzipWAR |
| Exploded WAR into /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas | Unzipped WAR into /opt/cas-src/cas-overlay-template/build/app |
| |
| > Task :explodeWar | > Task :unzip |
| Exploded WAR resources into /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources | Exploded WAR resources into /opt/cas-src/cas-overlay-template/build/cas-resources |
| | |
| | > Task :listTemplateViews |
| | |
| | BUILD SUCCESSFUL in 12s |
| | 10 actionable tasks: 3 executed, 7 up-to-date |
| | [root@cas7d cas-overlay-template]# ls /opt/cas-src/cas-overlay-template/build/cas-resources |
| | application.properties git.properties messages_de.properties messages_it.properties messages.properties messages_sl.properties messages_vi.properties services |
| | application.yml log4j2.xml messages_es.properties messages_ja.properties messages_pt_BR.properties messages_sv.properties messages_zh_CN.properties spring.properties |
| | bootstrap.properties messages_ar.properties messages_fa.properties messages_mk.properties messages_pt_PT.properties messages_tr.properties messages_zh_TW.properties static |
| | bootstrap.yml messages_ca.properties messages_fr.properties messages_nl.properties messages_ru.properties messages_uk.properties META-INF templates |
| | cas-theme-default.properties messages_cs.properties messages_hr.properties messages_pl.properties messages_sk.properties messages_ur.properties org truststore.jks |
| | |
| | |
| | |
| | |
| | </code> |
| | |
| | |
| | List des ressources / fichier modifiables |
| | |
| | <code> |
| | [root@cas7 cas-overlay-template]# ./gradlew listTemplateViews |
| | Configuration on demand is an incubating feature. |
| |
| > Task :listTemplateViews | > Task :listTemplateViews |
| /templates/casAcceptableUsagePolicyView.html | /templates/acct-mgmt/casAccountSignupView.html |
| /templates/casAccepttoRegistrationView.html | /templates/acct-mgmt/casAccountSignupViewComplete.html |
| /templates/casAccountDisabledView.html | /templates/acct-mgmt/casAccountSignupViewCompleted.html |
| /templates/casAccountLockedView.html | /templates/acct-mgmt/casAccountSignupViewSentInfo.html |
| /templates/casAdminLoginView.html | /templates/acct/casMyAccountProfile.html |
| /templates/casAuthenticationBlockedView.html | /templates/adaptive-authn/casRiskAuthenticationBlockedView.html |
| /templates/casAuthyLoginView.html | /templates/adaptive-authn/casRiskAuthenticationVerifiedView.html |
| /templates/casBadHoursView.html | /templates/admin/casAdminLoginView.html |
| /templates/casBadWorkstationView.html | /templates/aup/casAcceptableUsagePolicyView.html |
| /templates/casCompositeMfaProviderSelectionView.html | /templates/consent/casConsentView.html |
| /templates/casConfirmLogoutView.html | /templates/delegated-authn/casDelegatedAuthnErrorView.html |
| /templates/casConfirmView.html | /templates/delegated-authn/casDelegatedAuthnSelectionView.html |
| /templates/casConsentView.html | /templates/delegated-authn/casDelegatedAuthnStopWebflow.html |
| /templates/casDelegatedAuthnErrorView.html | /templates/delegated-authn/casDynamicDiscoveryView.html |
| /templates/casDuoLoginView.html | |
| /templates/casExpiredPassView.html | |
| /templates/casForgotUsernameSendInfoView.html | |
| /templates/casForgotUsernameSentInfoView.html | |
| /templates/casGenericSuccessView.html | |
| /templates/casGoogleAuthenticatorConfirmRegistrationView.html | |
| /templates/casGoogleAuthenticatorLoginView.html | |
| /templates/casGoogleAuthenticatorRegistrationView.html | |
| /templates/casGuaDisplayUserGraphicsView.html | |
| /templates/casGuaGetUserIdView.html | |
| /templates/casInterruptView.html | |
| /templates/casLoginMessageView.html | |
| /templates/casLoginView.html | |
| /templates/casLogoutView.html | |
| /templates/casMfaDeniedView.html | |
| /templates/casMfaRegisterDeviceView.html | |
| /templates/casMfaUnavailableView.html | |
| /templates/casMustChangePassView.html | |
| /templates/casPac4jStopWebflow.html | |
| /templates/casPasswordUpdateSuccessView.html | |
| /templates/casPasswordlessDisplayView.html | |
| /templates/casPasswordlessGetUserIdView.html | |
| /templates/casPropagateLogoutView.html | |
| /templates/casRadiusLoginView.html | |
| /templates/casResetPasswordErrorView.html | |
| /templates/casResetPasswordSendInstructionsView.html | |
| /templates/casResetPasswordSentInstructionsView.html | |
| /templates/casResetPasswordVerifyQuestionsView.html | |
| /templates/casRiskAuthenticationBlockedView.html | |
| /templates/casSamlIdPDiscoveryView.html | |
| /templates/casServiceErrorView.html | |
| /templates/casSimpleMfaLoginView.html | |
| /templates/casSurrogateAuthnListView.html | |
| /templates/casSwivelLoginView.html | |
| /templates/casU2fLoginView.html | |
| /templates/casU2fRegistrationView.html | |
| /templates/casWebAuthnLoginView.html | |
| /templates/casWebAuthnRegistrationView.html | |
| /templates/casWsFedStopWebflow.html | |
| /templates/casYubiKeyLoginView.html | |
| /templates/casYubiKeyRegistrationView.html | |
| /templates/error.html | /templates/error.html |
| | /templates/error/400.html |
| /templates/error/401.html | /templates/error/401.html |
| /templates/error/403.html | /templates/error/403.html |
| /templates/error/405.html | /templates/error/405.html |
| /templates/error/423.html | /templates/error/423.html |
| /templates/fragments/accepttoQRCode.html | /templates/error/casServiceErrorView.html |
| | /templates/error/casUnauthorizedServiceRedirectView.html |
| | /templates/error/casWebflowConfigErrorView.html |
| | /templates/forgot-username/casForgotUsernameSendInfoView.html |
| | /templates/forgot-username/casForgotUsernameSentInfoView.html |
| | /templates/fragments/accountprofileapplications.html |
| | /templates/fragments/accountprofileattributes.html |
| | /templates/fragments/accountprofileauditlog.html |
| | /templates/fragments/accountprofileconsent.html |
| | /templates/fragments/accountprofilemfadevices.html |
| | /templates/fragments/accountprofilenavigation.html |
| | /templates/fragments/accountprofileoverview.html |
| | /templates/fragments/accountprofilesecurityquestions.html |
| | /templates/fragments/accountprofilesessions.html |
| | /templates/fragments/accountprofiletrusteddevices.html |
| /templates/fragments/footer.html | /templates/fragments/footer.html |
| | /templates/fragments/googleanalytics.html |
| /templates/fragments/header.html | /templates/fragments/header.html |
| | /templates/fragments/includes.html |
| /templates/fragments/loginProviders.html | /templates/fragments/loginProviders.html |
| | /templates/fragments/logindrawer.html |
| /templates/fragments/loginform.html | /templates/fragments/loginform.html |
| /templates/fragments/loginsidebar.html | /templates/fragments/loginsidebar.html |
| /templates/fragments/serviceui.html | /templates/fragments/serviceui.html |
| /templates/fragments/submitbutton.html | /templates/fragments/submitbutton.html |
| | /templates/fragments/unlockaccount.html |
| /templates/fragments/webAuthnLogin.html | /templates/fragments/webAuthnLogin.html |
| | /templates/gauth/casGoogleAuthenticatorConfirmRegistrationView.html |
| | /templates/gauth/casGoogleAuthenticatorLoginView.html |
| | /templates/gauth/casGoogleAuthenticatorRegistrationView.html |
| | /templates/gua/casGuaDisplayUserGraphicsView.html |
| | /templates/gua/casGuaGetUserIdView.html |
| | /templates/interrupt/casInterruptView.html |
| | /templates/inwebo/casInweboCheckResultView.html |
| | /templates/inwebo/casInweboErrorView.html |
| | /templates/inwebo/casInweboMAAuthnView.html |
| | /templates/inwebo/casInweboSelectAuthnView.html |
| | /templates/inwebo/casInweboVAAuthnView.html |
| /templates/layout.html | /templates/layout.html |
| /templates/protocol/2.0/casProxyFailureView.html | /templates/login-error/casAccountDisabledView.html |
| /templates/protocol/2.0/casProxySuccessView.html | /templates/login-error/casAccountLockedView.html |
| /templates/protocol/2.0/casServiceValidationFailure.html | /templates/login-error/casAccountUnlockedView.html |
| /templates/protocol/2.0/casServiceValidationSuccess.html | /templates/login-error/casAuthenticationBlockedView.html |
| /templates/protocol/3.0/casServiceValidationFailure.html | /templates/login-error/casBadHoursView.html |
| /templates/protocol/3.0/casServiceValidationSuccess.html | /templates/login-error/casBadWorkstationView.html |
| | /templates/login-error/casExpiredPassView.html |
| | /templates/login-error/casMustChangePassView.html |
| | /templates/login/casConfirmView.html |
| | /templates/login/casGenericSuccessView.html |
| | /templates/login/casLoginMessageView.html |
| | /templates/login/casLoginView.html |
| | /templates/logout/casConfirmLogoutView.html |
| | /templates/logout/casLogoutView.html |
| | /templates/logout/casPropagateLogoutView.html |
| | /templates/mfa-trusted-devices/casMfaRegisterDeviceView.html |
| | /templates/mfa/casCompositeMfaProviderSelectionView.html |
| | /templates/mfa/casMfaDeniedView.html |
| | /templates/mfa/casMfaUnavailableView.html |
| | /templates/password-reset/casPasswordUpdateSuccessView.html |
| | /templates/password-reset/casResetPasswordErrorView.html |
| | /templates/password-reset/casResetPasswordSendInstructionsView.html |
| | /templates/password-reset/casResetPasswordSentInstructionsView.html |
| | /templates/password-reset/casResetPasswordVerifyQuestionsView.html |
| | /templates/password-reset/casWeakPasswordDetectedView.html |
| | /templates/passwordless/casPasswordlessDisplayView.html |
| | /templates/passwordless/casPasswordlessGetUserIdView.html |
| /templates/protocol/casPostResponseView.html | /templates/protocol/casPostResponseView.html |
| /templates/protocol/oauth/confirm.html | /templates/protocol/oauth/confirm.html |
| /templates/protocol/oauth/sessionStaleMismatchError.html | /templates/protocol/oauth/sessionStaleMismatchError.html |
| /templates/protocol/oidc/confirm.html | /templates/protocol/oidc/confirm.html |
| /templates/protocol/openid/casOpenIdAssociationSuccessView.html | /templates/radius/casRadiusLoginView.html |
| /templates/protocol/openid/casOpenIdServiceFailureView.html | /templates/saml2-discovery/casSamlIdPDiscoveryView.html |
| /templates/protocol/openid/casOpenIdServiceSuccessView.html | /templates/saml2-idp/casSamlIdPErrorView.html |
| /templates/protocol/openid/user.html | /templates/simple-mfa/casSimpleMfaLoginView.html |
| | /templates/simple-mfa/casSimpleMfaSelectEmailsView.html |
| | /templates/storage/casSessionStorageReadView.html |
| | /templates/storage/casSessionStorageWriteView.html |
| | /templates/surrogate/casSurrogateAuthnListView.html |
| | /templates/surrogate/casSurrogateAuthnWildcardView.html |
| | /templates/webauthn/casWebAuthnLoginView.html |
| | /templates/webauthn/casWebAuthnRegistrationView.html |
| | /templates/wsfed/casWsFedStopWebflow.html |
| | /templates/yubikey/casYubiKeyLoginView.html |
| | /templates/yubikey/casYubiKeyRegistrationView.html |
| | |
| | BUILD SUCCESSFUL in 3s |
| | 10 actionable tasks: 1 executed, 9 up-to-date |
| </code> | </code> |
| |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# ./gradlew getResource -PresourceName=casLoginView.html | [root@cas7 cas-overlay-template]# ./gradlew getResource -PresourceName=casLoginView.html --no-daemon |
| | To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.8/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. |
| | Daemon will be stopped at the end of the build |
| | Configuration on demand is an incubating feature. |
| | |
| | > Task :unzipWAR |
| | Unzipped WAR into /opt/cas-src/cas-overlay-template/build/app |
| |
| > Task :getResource | > Task :getResource |
| Copied file /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources/templates/casLoginView.html to src/main/resources/templates/casLoginView.html | Copied file /opt/cas-src/cas-overlay-template/build/cas-resources/templates/login/casLoginView.html to /opt/cas-src/cas-overlay-template/src/main/resources/templates/login/casLoginView.html |
| </code> | |
| | BUILD SUCCESSFUL in 13s |
| | 10 actionable tasks: 5 executed, 5 up-to-date |
| | |
| | [root@cas7 cas-overlay-template]# ls -l /opt/cas-src/cas-overlay-template/src/main/resources/templates/login/ |
| | -rw-r--r-- 1 root root 1955 Jun 6 19:34 casLoginView.html |
| |
| on va egalement prendre header.html (extrait vers src/main/resources/templates/fragments/header.html) pour y changer le logo | on va egalement prendre header.html (extrait vers src/main/resources/templates/fragments/header.html) pour y changer le logo |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# grep logo src/main/resources/templates/fragments/header.html | [root@cas7 cas-overlay-template]# ./gradlew getResource -PresourceName=header.html --no-daemon |
| <img class="cas-logo" | To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.8/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. |
| th:src="@{${#strings.defaultString(#themes.code('cas.logo.file'), '/images/our-logo.png')}}" /> | Daemon will be stopped at the end of the build |
| | Configuration on demand is an incubating feature. |
| | |
| | > Task :getResource |
| | Copied file /opt/cas-src/cas-overlay-template/build/cas-resources/templates/fragments/header.html to /opt/cas-src/cas-overlay-template/src/main/resources/templates/fragments/header.html |
| | |
| | BUILD SUCCESSFUL in 9s |
| | 10 actionable tasks: 1 executed, 9 up-to-date |
| | [root@cas7d cas-overlay-template]# grep logo /opt/cas-src/cas-overlay-template/src/main/resources/templates/fragments/header.html |
| | <img id="cas-logo" class="cas-logo" |
| | th:src="@{${#strings.defaultString(#themes.code('cas.logo.file'), '/images/cas-logo.png')}}" |
| | |
| </code> | </code> |
| |
| on peux aussi extraire le cas.logo.png afin de disposer de l'arborescence locale depo des images et y copier notre fichier image / logo | on peut aussi extraire le cas.logo.png afin de disposer de l'arborescence locale depo des images et y copier notre fichier image / logo |
| |
| <code> | <code> |
| [root@ssocas6 cas-overlay-template]# cp /root/our-logo.png src/main/resources/static/images/ | [root@cas7 cas-overlay-template]# ./gradlew getResource -PresourceName=cas-logo.png --no-daemon |
| | > Task :getResource |
| | Copied file /opt/cas-src/cas-overlay-template/build/cas-resources/static/images/cas-logo.png to /opt/cas-src/cas-overlay-template/src/main/resources/static/images/cas-logo.png |
| </code> | </code> |
| | |
| | il est possible de recuperer le logo depuis une autre version/machine et de le recopier dans les sources de cette version sous src/main/resources/static/images |
| | |
| | <code> |
| | [root@cas6 resources]# scp static/images/logo_IMTBS-TSP_198x80.png root@cas7d.int-evry.fr:/opt/cas-src/cas-overlay-template/src/main/resources/static/images |
| | root@cas7.domain.fr's password: |
| | logo_IMTBS-TSP_198x80.png |
| | </code> |
| | |
| | restera a appeler ce fichier dans le cas.css |
| | |
| | ==== CSS ==== |
| | |
| | pour les gouts et les couleurs, extraire et modifier //cas.css// |
| | |
| | <code> |
| | [root@cas7 cas-overlay-template]# ./gradlew getResource -PresourceName=cas.css --no-daemon |
| | To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/8.8/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation. |
| | Daemon will be stopped at the end of the build |
| | Configuration on demand is an incubating feature. |
| | |
| | > Task :unzipWAR |
| | Unzipped WAR into /opt/cas-src/cas-overlay-template/build/app |
| | |
| | > Task :getResource |
| | Copied file /opt/cas-src/cas-overlay-template/build/cas-resources/static/css/cas.css to /opt/cas-src/cas-overlay-template/src/main/resources/static/css/cas.css |
| | |
| | BUILD SUCCESSFUL in 13s |
| | 10 actionable tasks: 5 executed, 5 up-to-date |
| | |
| | </code> |
| | |
| | on change par exemple le logo |
| | |
| | <code> |
| | [root@cas7 resources]# diff templates/fragments/header.html.dist templates/fragments/header.html |
| | 35c35 |
| | < th:src="@{${#strings.defaultString(#themes.code('cas.logo.file'), '/images/cas-logo.png')}}" |
| | --- |
| | > th:src="@{${#strings.defaultString(#themes.code('cas.logo.file'), '/images/logo_IMTBS-TSP_198x80.png')}}" |
| | </code> |
| | |
| | |
| | |
| |
| enfin on redeploie le tout (il est possible de faire usage ./gradlew bootRun pour changer les views a chaud) | enfin on redeploie le tout (il est possible de faire usage ./gradlew bootRun pour changer les views a chaud) |
| |
| |
| === lie vers l'URL de changement de password === | ==== lien vers l'URL de changement de password ==== |
| |
| il est definit via le password Manamegement link => fragment pmlink a extraire pour trouver le bon lienvers le messages.propeties a modifier | il est definit via le password Manamegement link => fragment pmlink a extraire pour trouver le bon lienvers le messages.propeties a modifier |
| |
| <code> | <code> |
| #./gradlew getResource -PresourceName=pmlinks | [root@cas7 cas-overlay-template]# ./gradlew getResource -PresourceName=pmlinks --no-daemon |
| > Task :getResource | > Task :getResource |
| Copied file /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources/templates/fragments/pmlinks.html to src/main/resources/templates/fragments/pmlinks.html | Copied file /opt/cas-src/cas-overlay-template/build/cas-resources/templates/fragments/pmlinks.html to /opt/cas-src/cas-overlay-template/src/main/resources/templates/fragments/pmlinks.html |
| | |
| [root@ssocas6d cas-overlay-template]# grep pwd.example.org src/main/resources/templates/fragments/pmlinks.html | |
| <span th:utext="#{screen.pm.button.forgotpwd('https://pwd.example.org')}">Forgot your password?</span> | |
| |
| </code> | </code> |
| [root@ssocas6dev cas-overlay-template]# grep screen.pm.button.forgotpwd src/main/resources/messages_fr.properties | [root@ssocas6dev cas-overlay-template]# grep screen.pm.button.forgotpwd src/main/resources/messages_fr.properties |
| screen.pm.button.forgotpwd=<a href="https://credreset.domain.fr/">Mot de passe oublié ?</a> | screen.pm.button.forgotpwd=<a href="https://credreset.domain.fr/">Mot de passe oublié ?</a> |
| </code> | |
| |
| === CSS === | |
| |
| pour les gouts et les couleurs, cas.css | |
| |
| <code> | |
| ./gradlew getResource -PresourceName=cas.css | |
| > Task :getResource | |
| Copied file /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources/static/css/cas.css to src/main/resources/static/css/cas.css | |
| </code> | </code> |
| |