Je suis nouveau à Java et j'essaye d'écrire la première application web avec Spring framework (j'ai de l'expérience avec django/python et sinatra/ruby). J'ai besoin de mettre en place un système d'authentification utilisateur et je n'ai aucune idée de la meilleure façon de le faire correctement. Dois-je utiliser Spring Security pour cela? Ou il y a d'autres façons?Java Spring moyen de mettre en œuvre l'authentification des utilisateurs
Répondre
Depuis que vous démarrez une nouvelle application, je vous encourage fortement à utiliser Spring Boot. Cela vous enlèvera beaucoup de votre douleur initiale dans la configuration des différents aspects du printemps. En ce qui concerne la sécurité, vous devriez aller avec Spring Security qui est bien sûr facile à configurer avec Spring Boot.
Après this guide, d'une simple configuration Spring Security qui utilise l'authentification mémoire ressemblerait à ceci:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
Comme vous pouvez le voir, la première méthode est utilisée pour configurer les parties de l'application doivent être fixés et comment, tandis que la seconde méthode configure comment les utilisateurs seront authentifiés.
Une façon courante de fournir un moyen personnalisé pour authentifier les utilisateurs, est de fournir une coutume UserDetailsService
mise en œuvre comme cela se fait here
Un moyen très facile de configurer l'authentification lorsque vous avez déjà configuré un DataSource
et les informations d'identification utilisateur sont il stocké, est le suivant:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated();
http
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth
.jdbcAuthentication()
.dataSource(dataSource)
.withUser("user").password("password").roles("USER").and()
.withUser("admin").password("password").roles("USER", "ADMIN").and()
.withDefaultSchema();
}
}
Here est la référence complète du printemps de sécurité. Aussi here est la partie de la sécurité de la documentation Spring Boot. Au départ, il peut sembler que la sécurité de printemps est compliquée, mais une fois que vous l'aurez compris, vous apprécierez son ensemble de fonctionnalités et sa personnalisation. Une note finale, quand il s'agit de choses comme la sécurité qui sont courantes dans de nombreuses applications, il n'est pas nécessaire de réinventer la roue! Aller avec la sécurité de printemps (ou peut-être Apache Shiro)
- 1. Meilleure façon de mettre en œuvre la vérification des utilisateurs
- 2. Mettre en œuvre la gestion des utilisateurs « locale » sur GAE
- 3. Comment mettre en œuvre AOP avec Spring
- 4. mettre en œuvre des structures de données en java
- 5. Comment mettre en œuvre la pagination en utilisant Spring MVC3
- 6. mettre en œuvre SQL comme sélectionnez Java
- 7. Mettre en œuvre Peterson Lock dans Java
- 8. Quels contrôleurs mettre en œuvre
- 9. Structures de données en Java pour mettre en œuvre
- 10. Android onTouchListener, moyen plus facile à mettre en œuvre
- 11. Mettre en œuvre des relations de soi
- 12. Comment mettre en œuvre un graphique de cluster en java
- 13. Comment mettre en œuvre snooze
- 14. Google App Engine: moyen commun de mettre en œuvre des requêtes API/ajax en session?
- 15. Mettre en œuvre ModuleManagerInterface
- 16. mettre en œuvre des lecteurs rss php
- 17. Java - Interface de retour sans mettre en œuvre une classe
- 18. Mettre en œuvre un à plusieurs carte en Java
- 19. Comment mettre en œuvre aiml en utilisant java
- 20. mettre en œuvre un fournisseur paresseux en Java
- 21. Comment mettre en œuvre Graphique adjacence Liste en Java
- 22. comment mettre en œuvre le verrouillage du dossier en java
- 23. Comment mettre en œuvre Java méthodes d'interface en C
- 24. Mettre en œuvre des sorties dans une aventure de texte
- 25. Mettre en œuvre des éléments collants dans la maçonnerie Isotope
- 26. Est-il possible d'appeler getPrincipal() SecurityContexHolder dans une servlet sans mettre en œuvre Spring Framework?
- 27. Existe-t-il un meilleur moyen de mettre en œuvre des validateurs d'entreprise «personnalisés»?
- 28. Making/Mettre en œuvre un Iterator pour arraylists- Java
- 29. mettre en œuvre la fonction java dans C#
- 30. java mettre en œuvre comparer sur deux éléments
Merci pour une réponse si détaillée! :) – Paul
Votre accueil !!! – geoand