Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
docpublic:systemes:ssocas:cas7install [2024/06/06 17:13] adminjp [1er login test] |
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> |
| |
| |
==== 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> |
| |