Aquest how-to va dirigit a tots aquells usuaris que vulguin fer l’actualització a Canigó 3.2 de la seva aplicació Canigó 3.4.
Els passos descrits en aquest document apliquen a la versió 3.4 del Framework Canigó.
El mes de Març del 2019 s’ha publicat la versió 3.4 del Framework Canigó. Aquesta versió és una versió LTS, i es recomana actualitzar les aplicacions Canigó a aquesta versió per tal de tenir un suport continuat així com la màxima estabilitat que proporciona una versió LTS.
L’objectiu d’aquest Howto és mostrar els procediments necessaris per a realitzar l’actualització d’una aplicació realitzada amb Canigó 3.2. El punt de partida d’aquest Howto és una aplicació creada amb el plugin de Canigó per Eclipse.
A la matriu de compatibilitats es poden veure les versions dels mòduls i components de Canigó de les versions 3.2.x i 3.4.x. S’han d’actualitzar els intervals dels mòduls utilitzats per a migrar a Canigó 3.4.
La versió parent de Spring boot és la 2.1.8.RELEASE, per tant, per una aplicació amb Spring boot el parent quedaria:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
La versió de spring loeaded és la 1.2.8.RELEASE
Després de canviar les versions dels mòduls decrits a la secció anterior, és necessari realitzar els següents canvis:
@Query("select p from Person p where p.lastname = ?")
List<Person> findByLastname(String lastname);
a:
@Query("select p from Person p where p.lastname = ?1")
List<Person> findByLastname(String lastname);
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
System.setProperty("spring.main.allow-bean-definition-overriding", String.valueOf(true));
<security:authentication-provider>
<security:password-encoder hash="plaintext"/>
<security:user-service properties="classpath:config/props/security.users.properties"/>
</security:authentication-provider>
</security:authentication-manager>
a:
<security:authentication-manager>
<security:authentication-provider>
<security:password-encoder ref="passwordEncoder" />
<security:user-service properties="classpath:config/props/security.users.properties"/>
</security:authentication-provider>
</security:authentication-manager>
<bean id="passwordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder" factory-method="getInstance" />
O fer un update dels passwords afegint “{noop}” davant dels passwords, aixi per exemple si per l’usuari “user” tenia el password al fitxer de text “password” es necessari canviar-ho per “{noop}password”
No es recomana utilitzar la seguretat per fitxer en entorns productius
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource"/>
</security:authentication-provider>
</security:authentication-manager>
Es necessari canviar-ho per:
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource"/>
<security:password-encoder ref="passwordEncoder" />
</security:authentication-provider>
</security:authentication-manager>
<bean id="passwordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder"
factory-method="getInstance" />
O fer un update dels passwords afeint “{noop}” davant dels passwords, aixi per exemple si per l’usuari “user” tenia el password a BD “password” es necessari canviar-ho per “{noop}password”
Es recomana utilitzar els “password.encoders” BCryptPasswordEncoder, Pbkdf2PasswordEncoder o SCryptPasswordEncoder