Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
docpublic:systemes:ssocas:cas6install [2021/05/31 13:33]
adminjp
docpublic:systemes:ssocas:cas6install [2022/12/14 22:25] (current)
adminjp [CAS6 template overlay]
Line 295: Line 295:
 on commence par recuperer le template overlay de CAS on commence par recuperer le template overlay de CAS
  
-cf https://apereo.github.io/cas/6.3.x/installation/WAR-Overlay-Installation.html pour des explication sur les Overlays+cf https://apereo.github.io/cas/6.6.x/installation/WAR-Overlay-Installation.html pour des explication sur les Overlays
  
  
Line 674: Line 674:
 May 22 11:27:55 ldap slapd[2086]: conn=1161 op=0 RESULT tag=97 err=0 text= May 22 11:27:55 ldap slapd[2086]: conn=1161 op=0 RESULT tag=97 err=0 text=
 </code> </code>
 +
 +
 +==== attributes ====
 +
 +  * https://fawnoos.com/blog/ + https://fawnoos.com/tags/?t=Attribute%20Resolution
 +  * https://fawnoos.com/2019/03/15/cas61x-attribute-repositories/
 +  * https://stackoverflow.com/questions/61050686/how-to-get-ldap-user-attributes-with-spnego-and-cas
  
  
 ==== Registering Applications ==== ==== Registering Applications ====
  
-les appplications clientes qui doivent utiliser notre serveur CAS doivent etre declarée a priori . cela peut se faire au travers d'uj 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élarons dans cas.prpoerties le chemin d'acces a ce fichier json+nous déclarons dans cas.prpoerties le chemin d'acces a ce fichier json
  
 <code> <code>
Line 720: Line 727:
 </code> </code>
  
 +pour les regex plus de details sur 
  
 +  * https://apereo.github.io/cas/6.3.x/services/Configuring-Service-Matching-Strategy.html
 +  * https://regex101.com/
  
 ===== taches disponibles ===== ===== taches disponibles =====
Line 776: Line 786:
   * 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/
 +
 +
 +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 .
  
 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
Line 931: Line 944:
 [root@ssocas6 cas-overlay-template]#chown tomcat /opt/tomcat/webapps/cas.war [root@ssocas6 cas-overlay-template]#chown tomcat /opt/tomcat/webapps/cas.war
 </code> </code>
 +
 +Pour le text qui apparait dans la page , il s'agit de reference vers le systeme d'internationalisation des messages qu'on retrouve dans messages.properties et messages_fr.properties (_de, _it etc pour les autres langues) 
 +
 +on extrait le fr 
 +
 +<code>
 +[root@ssocas6 cas-overlay-template]# ls /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources/
 +Copied file /opt/test-6.3-cas-overlay-template/cas-overlay-template/build/cas-resources/messages_fr.properties to src/main/resources/messages_fr.properties
 +</code>
 +
 +
 +=== lie 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 
 +
 +<code>
 +#./gradlew getResource -PresourceName=pmlinks
 +> 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
 +
 +[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>
 +
 +c'est donc le message screen.pm.button.forgotpwd  , on positionne la valeurd'URL pour notre etablissements
 +
 +<code>
 +[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>
 +</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>
 +
 +
 +===== health monitor ====
 +
 +si besoin d'avoir des info sur la status du service, on peux activer le module visoible sous le endpoint : /actuator
 +
 +/status est deprecated au profit de /actuator/health
 +
 +https://apereo.github.io/cas/6.3.x/monitoring/Monitoring-Statistics.html
 +
 +===== SAML =====
 +
 +  * https://apereo.github.io/cas/6.3.x/installation/Configuring-SAML2-Authentication.html
 +  * https://apereo.github.io/2019/01/18/cas61-saml2-idp-incommon/
  
  
Line 960: Line 1029:
  
 Welcome to Gradle 6.3! Welcome to Gradle 6.3!
 +
 +</code>
 +
 +===== Update dans la branche =====
 +
 +nous sommes en cas 6.3.2 et souhaitons passer sur la derniere version de la branche 6.3.x (ce jour 6.3.7) 
 +
 +cela  corrige le pb log4j , cf https://www.cert.ssi.gouv.fr/alerte/CERTFR-2021-ALE-022/
 +
 +La reponse du dev de CAS : https://apereo.github.io/2021/12/11/log4j-vuln/
 +
 +
 +==== update par git ====
 +
 +==== etat des lieux ====
 +
 +=== version actuelle ===
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# grep cas.version gradle.properties 
 +cas.version=6.3.2
 +</code>
 +
 +=== etat de notre arborescence git ===
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git status
 +Sur la branche 6.3
 +Votre branche est à jour avec 'origin/6.3'.
 +
 +Modifications qui ne seront pas validées :
 +  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)
 +  (utilisez "git restore <fichier>..." pour annuler les modifications dans le répertoire de travail)
 + modifié :         build.gradle
 + modifié :         etc/cas/config/cas.properties
 + modifié :         etc/cas/config/log4j2.xml
 + modifié :         gradle.properties
 + modifié :         src/main/webapp/WEB-INF/web.xml
 +</code>
 +
 +=> on a modifié des fichiers de parametrage non commité , il faut d'abord mettre ça a jour
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml
 +
 +[root@cas6dev cas-overlay-template]# git commit -a -m "add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml JP " 
 +Committer: root <root@cas6dev.domain.fr>
 +5 files changed, 51 insertions(+), 5 deletions(-)
 +</code>
 +
 +
 +=== etat des branches ===
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git branch -a 
 +* 6.3
 +  remotes/origin/4.1
 +  remotes/origin/4.2
 +  remotes/origin/5.0.x
 +  remotes/origin/5.1
 +  remotes/origin/5.2
 +  remotes/origin/5.3
 +  remotes/origin/6.0
 +  remotes/origin/6.1
 +  remotes/origin/6.2
 +  remotes/origin/6.3
 +  remotes/origin/HEAD -> origin/master
 +....
 +</code>
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git pull
 +warning: Tirer sans spécifier comment réconcilier les branches divergentes
 +est découragé. Vous pouvez éliminer ce message en lançant une des
 +commandes suivantes avant votre prochain tirage :
 +
 +  git config pull.rebase false  # fusion (stratégie par défaut)
 +  git config pull.rebase true   # rebasage
 +  git config pull.ff only       # avance rapide seulement
 +
 +Vous pouvez remplacer "git config" par "git config --global" pour que
 +ce soit l'option par défaut pour tous les dépôts. Vous pouvez aussi
 +passer --rebase, --no-rebase ou --ff-only sur la ligne de commande pour
 +remplacer à l'invocation la valeur par défaut configurée.
 +
 +remote: Enumerating objects: 248, done.
 +remote: Counting objects: 100% (248/248), done.
 +remote: Compressing objects: 100% (141/141), done.
 +remote: Total 248 (delta 86), reused 213 (delta 56), pack-reused 0
 +Réception d'objets: 100% (248/248), 1.36 Mio | 4.93 Mio/s, fait.
 +Résolution des deltas: 100% (86/86), complété avec 5 objets locaux.
 +Depuis https://github.com/apereo/cas-overlay-template
 + + 995813b...e33879a 6.3           -> origin/6.3  (mise à jour forcée)
 + * [nouvelle branche] 6.4           -> origin/6.4
 +   2d981ee..d9d2770  graal         -> origin/graal
 + * [nouvelle branche] graal-starter -> origin/graal-starter
 + + 652546e...1ae808c master        -> origin/master  (mise à jour forcée)
 +fatal: refus de fusionner des historiques sans relation
 +</code>
 +
 +on a un soucis fusion des versions
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git status
 +Sur la branche 6.3
 +Votre branche et 'origin/6.3' ont divergé,
 +et ont 390 et 2 commits différents chacune respectivement.
 +  (utilisez "git pull" pour fusionner la branche distante dans la vôtre)
 +</code>
 +
 +notre branche locale a divergé avec la remote (origin/6.3) 
 +
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git pull
 +warning: Tirer sans spécifier comment réconcilier les branches divergentes
 +est découragé. Vous pouvez éliminer ce message en lançant une des
 +commandes suivantes avant votre prochain tirage :
 +
 +  git config pull.rebase false  # fusion (stratégie par défaut)
 +  git config pull.rebase true   # rebasage
 +  git config pull.ff only       # avance rapide seulement
 +
 +Vous pouvez remplacer "git config" par "git config --global" pour que
 +ce soit l'option par défaut pour tous les dépôts. Vous pouvez aussi
 +passer --rebase, --no-rebase ou --ff-only sur la ligne de commande pour
 +remplacer à l'invocation la valeur par défaut configurée.
 +
 +fatal: refus de fusionner des historiques sans relation
 +</code>
 +
 +premiere tentative de rebase sur la derniere version 
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git pull --rebase 
 +Fusion automatique de gradle.properties
 +CONFLIT (contenu) : Conflit de fusion dans gradle.properties
 +Fusion automatique de etc/cas/config/log4j2.xml
 +CONFLIT (contenu) : Conflit de fusion dans etc/cas/config/log4j2.xml
 +Fusion automatique de etc/cas/config/cas.properties
 +CONFLIT (contenu) : Conflit de fusion dans etc/cas/config/cas.properties
 +Fusion automatique de build.gradle
 +CONFLIT (contenu) : Conflit de fusion dans build.gradle
 +error: impossible d'appliquer 36afdb9... add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml JP
 +Resolve all conflicts manually, mark them as resolved with
 +"git add/rm <conflicted_files>", then run "git rebase --continue".
 +You can instead skip this commit: run "git rebase --skip".
 +To abort and get back to the state before "git rebase", run "git rebase --abort".
 +impossible d'appliquer 36afdb9... add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml JP
 +</code>
 +
 +on doit corriger manuellement les fichiers en conflit (ceux qu'on a modifier pour notre parametrage local) , ici  build.gradle dans un premier temps  
 +
 +<code>
 +           }
 +            projectsToAdd.each {implementation it}
 +        }
 +    }
 +<<<<<<< HEAD
 +
 +
 +
 +
 +
 +
 +    developmentOnly "org.springframework.boot:spring-boot-devtools"
 +=======
 +    // CAS dependencies/modules may be listed here statically...
 +    implementation "org.apereo.cas:cas-server-webapp-init:${casServerVersion}"
 +    // ADD support-ldap json DISI 
 +    implementation "org.apereo.cas:cas-server-support-ldap:${project.'cas.version'}"
 +    implementation "org.apereo.cas:cas-server-support-json-service-registry:${casServerVersion}"
 +    // ADD Monitoring & Status https://fawnoos.com/2020/11/09/cas63-gettingstarted-overlay/#user-interface-customizations
 +    //implementation "org.apereo.cas:cas-server-core-monitor:${casServerVersion}"
 +
 +>>>>>>> 36afdb9... add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml JP
 +}
 +</code>
 +
 +on retire les commentaires du conflit (<<<<HEAD ==== >>>>> ) et au passage remplace la variable ${casServerVersion} par project.'cas.version' , car casServerVersion n'est plus definit (def1) 
 +
 +
 +corriger aussi les autres fichiers en conflit 
 +
 +<code>
 +root@cas6dev cas-overlay-template]# git status
 +rebasage interactif en cours ; sur e33879a
 +Dernière commande effectuée (1 commande effectuée) :
 +   pick 36afdb9 add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties src/main/webapp/WEB-INF/web.xml JP
 +Aucune commande restante.
 +Vous êtes en train de rebaser la branche '6.3' sur 'e33879a'.
 +  (réglez les conflits puis lancez "git rebase --continue")
 +  (utilisez "git rebase --skip" pour sauter ce patch)
 +  (utilisez "git rebase --abort" pour extraire la branche d'origine)
 +
 +Modifications qui seront validées :
 +  (utilisez "git restore --staged <fichier>..." pour désindexer)
 + modifié :         src/main/webapp/WEB-INF/web.xml
 +
 +Chemins non fusionnés :
 +  (utilisez "git restore --staged <fichier>..." pour désindexer)
 +  (utilisez "git add <fichier>..." pour marquer comme résolu)
 + modifié des deux côtés :  build.gradle
 + modifié des deux côtés :  etc/cas/config/cas.properties
 + modifié des deux côtés :  etc/cas/config/log4j2.xml
 + modifié des deux côtés :  gradle.properties
 +</code>
 +
 +=== merger / edit conflit ===
 +
 +on corrige les conflits de tous les fichiers énoncés ci-dessus
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# vim etc/cas/config/cas.properties
 +[root@cas6dev cas-overlay-template]# vim etc/cas/config/log4j2.xml
 +[root@cas6dev cas-overlay-template]# vim gradle.properties
 +[root@cas6dev cas-overlay-template]# git add build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties
 +[root@cas6dev cas-overlay-template]# git commit -a -m "merged build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties JP"
 +[HEAD détachée 088681c] merged build.gradle etc/cas/config/cas.properties etc/cas/config/log4j2.xml gradle.properties JP
 + Committer: root <root@cas6dev.domain.fr>
 +
 +
 + 5 files changed, 55 insertions(+), 9 deletions(-)
 +</code>
 +
 +maintenant que tout est mergé/corrigé on continue le git rebase
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# git rebase --continue
 +Rebasage et mise à jour de refs/heads/6.3 avec succès.
 +</code>
 +
 +
 +==== rebuild ====
 +
 +d'abord on arrete tomcat pour avoir le maximum de RAM dispos pour le JVM du process gradle
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# systemctl stop tomcat.service 
 +</code>
 +
 +on peux reconstruire le projet sur cette nouvelle version maintenant
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# ./gradlew clean build --no-daemon
 +
 +To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.3.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
 +Daemon will be stopped at the end of the build 
 +
 +Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
 +
 +You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
 +
 +See https://docs.gradle.org/7.3.1/userguide/command_line_interface.html#sec:command_line_warnings
 +
 +BUILD SUCCESSFUL in 1m 31s
 +12 actionable tasks: 12 executed
 +[root@cas6dev cas-overlay-template]# pwd
 +/opt/6.3-update-guiEB-cas-overlay-template/cas-overlay-template
 +         
 +[root@cas6dev cas-overlay-template]# cp /opt/6.3-update-guiEB-cas-overlay-template/cas-overlay-template/build/libs/cas.war /opt/tomcat/webapps/
 +cp : voulez-vous écraser '/opt/tomcat/webapps/cas.war' ? y
 +</code>
 +
 +=== restart tomcat ===
 +
 +on redemare tomcat 
 +
 +<code>
 +[root@cas6dev cas-overlay-template]# systemctl start tomcat.service 
 +[root@cas6dev cas-overlay-template]# tail -f /opt/tomcat/logs/catalina.out 
 +
 +        ____  _____ ____  _____ ___     ____    _    ____  
 +    / \  |  _ \| ____|  _ \| ____/ _ \   / ___|  / \  / ___| 
 +   / _ \ | |_) |  _| | |_) |  _|| | | | | |     / _ \ \___ \ 
 +  / ___ \|  __/| |___|  _ <| |__| |_| | | |___ / ___ \ ___) |
 + /_/   \_\_|   |_____|_| \_\_____\___/   \____/_/   \_\____/ 
 +                                                             
 +
 +CAS Version: 6.3.7
 +CAS Branch: 6.3.x
 +CAS Commit Id: 7fd72bfc3b295ffea9c9a518a082ff701aa97afa
 +CAS Build Date/Time: 2021-12-11T22:13:16Z
 +Spring Boot Version: 2.3.7.RELEASE
 +Spring Version: 5.2.12.RELEASE
 +Java Home: /usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el8_4.x86_64
 +Java Vendor: Red Hat, Inc.
 +Java Version: 11.0.12
 +JVM Free Memory: 348 MB
 +JVM Maximum Memory: 910 MB
 +JVM Total Memory: 623 MB
 +
 +</code>
 +
 +On est up2date pour CAS ! .
 +
 +
 +===== update tomcat =====
 +
 +depuis le passage en rhel/centos/vz..; 8 il n'y a plus de tomcat packagé au profit de Jboss . Ici nous avons donc une version tar.gz de tomcat , qu'il faut donc updater manuellement 
 +
 +====  download et de-tar ====
 +<code>
 +[root@cas6dev opt]# wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
 +[root@cas6dev opt]# tar xvfz apache-tomcat-9.0.56.tar.gz
 +[root@cas6dev opt]# chown -R tomcat:tomcat apache-tomcat-9.0.56
 +
 +[root@cas6dev opt]# cd apache-tomcat-9.0.56
 +</code>
 +
 +==== edit config files ====
 +
 +il faut retablir la configuration dans les fichiers configurés 
 +
 +  - conf/server.xml        # activer le connector AJP en 8009 pour notre frontal apache-httpd
 +  - conf/tomcat-users.xml  # configuerer des role/users si manager utilisé
 +  - webapps/manager/META-INF/context.xml  # definir le controle d'acces IP au manager
 +
 +==== cas.war dans webapps ====
 +
 +on remet la cas.war dans le webapps du la nouvelle version tomcat pour redeploiement automatique au lancement de tomcat 
 +
 +<code>
 +[root@cas6dev opt]# cp /opt/6.3-updated-cas-overlay-template/cas-overlay-template/build/libs/cas.war /opt/apache-tomcat-9.0.56/webapps/
 +</code>
 +
 +==== lien tomcat et restart ====
 +
 +on arrete tomcat, repositionne le lien /opt/tomcat vers notre nouvelle version et on relance tomcat
 +
 +<code>
 +[root@cas6dev opt]# systemctl stop tomcat.service 
 +[root@cas6dev opt]# rm tomcat
 +rm : supprimer 'tomcat' du type lien symbolique ? y
 +[root@cas6dev opt]# ln -s apache-tomcat-9.0.56 tomcat 
 +[root@cas6dev opt]# systemctl start tomcat 
 +[root@cas6dev opt]# tail -f tomcat/logs/catalina.out 
 +...
 +    / \  |  _ \| ____|  _ \| ____/ _ \   / ___|  / \  / ___| 
 +   / _ \ | |_) |  _| | |_) |  _|| | | | | |     / _ \ \___ \ 
 +  / ___ \|  __/| |___|  _ <| |__| |_| | | |___ / ___ \ ___) |
 + /_/   \_\_|   |_____|_| \_\_____\___/   \____/_/   \_\____/ 
 +                                                             
 +
 +CAS Version: 6.3.7
 +CAS Branch: 6.3.x
 +..
 +------------------------------------------------------------
 +Apache Tomcat Version: Apache Tomcat/9.0.56
 +------------------------------------------------------------
  
 </code> </code>
docpublic/systemes/ssocas/cas6install.1622468018.txt.gz · Last modified: 2021/05/31 13:33 by adminjp
[unknown link type]Back to top
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0