|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th width="200px"><h6>[:rewind: Exo Précédent](/Exo18-JMS/1%5D-Installation)</h6></th>
|
|
|
<th colspan="4" width="600px"><h1 align="center">19 - Spring - Security - P1</h1></th>
|
|
|
<th width="200px"><h6 align="right">[Exo Suivant :fast_forward:](/Exo19-Security-P2/1%5D-Code-Java)</h6></th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td> </td>
|
|
|
<td align="center">[:one:](/Exo19-Security-P1/1%5D-Code-Java)<br/>Code Java</td>
|
|
|
<td align="center">[:two:](/Exo19-Security-P1/2%5D-XML)<br/>XML</td>
|
|
|
<td align="center">:white_check_mark:<br/>Configuration</td>
|
|
|
<td align="center">[:four:](/Exo19-Security-P1/4%5D-Spring-Boot)<br/>Spring Boot</td>
|
|
|
<td> </td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
|
|
|
<tfoot>
|
|
|
<tr align="right">
|
|
|
<td colspan="6">
|
|
|
<h6>:copyright: 2019 - <a href="mailto:admin@ferretrenaud.fr">FERRET Renaud</a></h6>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tfoot>
|
|
|
</table>
|
|
|
|
|
|
***
|
|
|
|
|
|
# Via classe de configuration
|
|
|
|
|
|
## Organisation des fichiers
|
|
|
Dans cette approche, tout le paramétrage est porté par vos classes de configuration Spring.
|
|
|
|
|
|
Notez qu'il n'y a rien à faire dans le fichier `src\main\webapp\WEB-INF\web.xml`
|
|
|
|
|
|
### SpringSecurityInitializer
|
|
|
Regardez la première classe `src\main\java\com\banque\spring\SpringSecurityInitializer.java`
|
|
|
* son rôle est de gérer le filter de Spring Security
|
|
|
* elle héritera de [org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer](https://docs.spring.io/spring-security/site/docs/4.2.11.RELEASE/apidocs/org/springframework/security/web/context/AbstractSecurityWebApplicationInitializer.html)
|
|
|
|
|
|
```java
|
|
|
public class SpringSecurityInitializer extends AbstractSecurityWebApplicationInitializer {
|
|
|
public SpringSecurityInitializer() {
|
|
|
super();
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
### SpringSecurityConfiguration
|
|
|
Modifiez la seconde classe `src\main\java\com\banque\spring\SpringSecurityConfiguration.java`.
|
|
|
* Elle portera l'annotation [@Configuration](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Configuration.html) et l'annotation [@EnableWebSecurity](https://docs.spring.io/spring-security/site/docs/4.2.11.RELEASE/apidocs/org/springframework/security/config/annotation/web/configuration/EnableWebSecurity.html)
|
|
|
* Elle héritera de [org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter](https://docs.spring.io/spring-security/site/docs/4.2.11.RELEASE/apidocs/org/springframework/security/config/annotation/web/configuration/WebSecurityConfigurerAdapter.html)
|
|
|
|
|
|
C'est elle qui doit faire respecter nos règles de sécurité.
|
|
|
* Ajoutez y une méthode afin d'y déclarer la gestion de notre *authentication-manager*. On fera usage d'un [InMemoryUserDetailsManagerConfigurer](https://docs.spring.io/spring-security/site/docs/4.2.11.RELEASE/apidocs/org/springframework/security/config/annotation/authentication/configurers/provisioning/InMemoryUserDetailsManagerConfigurer.html)
|
|
|
* Surchargez la méthode *configure* afin d'y garantir la bonne sécurité des éléments */*, *menu.jsp*, */user/pageA.jsp*, */adm/pageB.jsp*
|
|
|
|
|
|
### SpringConfigurationWeb
|
|
|
Dans la classe `src\main\java\com\banque\spring\SpringConfigurationWeb.java`
|
|
|
* on s'occupe d'activer la configuration du Spring MVC (pour notre contrôleur REST)
|
|
|
* elle s'occupera aussi de scanner les beans Spring (service et contrôleur ici)
|
|
|
|
|
|
### SpringBanqueInitializer
|
|
|
Dans la classe `src\main\java\com\banque\spring\SpringBanqueInitializer.java`
|
|
|
* on s'occupe d'activer l'ensemble des configurations
|
|
|
|
|
|
|
|
|
|
|
|
# Lancement de l'application
|
|
|
Vous pouvez déployer votre projet sur un serveur JEE (v8 minimum de Tomcat).
|
|
|
|
|
|
Allez dans la *view* *Servers*
|
|
|
|
|
|

|
|
|
|
|
|
Cliquez dessus et sélectionnez la version du Tomcat :
|
|
|
|
|
|

|
|
|
|
|
|
Puis sélectionnez votre projet à déployer dedans (bouton *Add*)
|
|
|
|
|
|
Faites un clic droit sur votre *Server*, puis *Start*
|
|
|
|
|
|
Lisez ce que vous raconte la console. Allez sur l'URL : http://localhost:8080/en01.spring.security.configuration/
|
|
|
|
|
|
***
|
|
|
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
<th width="200px"><h6>[:rewind: Exo Précédent](/Exo18-JMS/1%5D-Installation)</h6></th>
|
|
|
<th colspan="4" width="600px"><h1 align="center">19 - Spring - Security - P1</h1></th>
|
|
|
<th width="200px"><h6 align="right">[Exo Suivant :fast_forward:](/Exo19-Security-P2/1%5D-Code-Java)</h6></th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td> </td>
|
|
|
<td align="center">[:one:](/Exo19-Security-P1/1%5D-Code-Java)<br/>Code Java</td>
|
|
|
<td align="center">[:two:](/Exo19-Security-P1/2%5D-XML)<br/>XML</td>
|
|
|
<td align="center">:white_check_mark:<br/>Configuration</td>
|
|
|
<td align="center">[:four:](/Exo19-Security-P1/4%5D-Spring-Boot)<br/>Spring Boot</td>
|
|
|
<td> </td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
|
|
|
<tfoot>
|
|
|
<tr align="right">
|
|
|
<td colspan="6">
|
|
|
<h6>:copyright: 2019 - <a href="mailto:admin@ferretrenaud.fr">FERRET Renaud</a></h6>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tfoot>
|
|
|
</table> |