securite token jwt
This commit is contained in:
parent
c464ed495b
commit
f164000cc8
19 changed files with 719 additions and 10 deletions
69
src/main/java/fr/organizee/service/MembreServiceImpl.java
Normal file
69
src/main/java/fr/organizee/service/MembreServiceImpl.java
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
package fr.organizee.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.authentication.AuthenticationManager;
|
||||
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||
import org.springframework.security.core.AuthenticationException;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import fr.organizee.exception.ExistingUsernameException;
|
||||
import fr.organizee.exception.InvalidCredentialsException;
|
||||
import fr.organizee.model.Membre;
|
||||
import fr.organizee.repository.MembreRepository;
|
||||
import fr.organizee.security.JwtTokenProvider;
|
||||
|
||||
@Service
|
||||
public class MembreServiceImpl implements MembreService {
|
||||
|
||||
@Autowired
|
||||
private MembreRepository membreRepository; // permet communication avec la BD
|
||||
|
||||
@Autowired
|
||||
private BCryptPasswordEncoder passwordEncoder; // permet l'encodage du mot de passe
|
||||
|
||||
@Autowired
|
||||
private JwtTokenProvider jwtTokenProvider; // permet la fourniture du Jeton (Token)
|
||||
|
||||
@Autowired
|
||||
private AuthenticationManager authenticationManager; // gestionnaire d'authentification
|
||||
|
||||
|
||||
/**
|
||||
* Permet de se connecter en encodant le mot de passe avec génération du token.
|
||||
*/
|
||||
@Override
|
||||
public String signin(String email, String password) throws InvalidCredentialsException {
|
||||
try {
|
||||
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(email, password));
|
||||
return jwtTokenProvider.createToken(email, membreRepository.findByEmail(email).get().getRoleList());
|
||||
} catch (AuthenticationException e) {
|
||||
throw new InvalidCredentialsException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String signup(Membre membre) throws ExistingUsernameException {
|
||||
if (!membreRepository.existsByEmail(membre.getEmail())) {
|
||||
Membre membreToSave = new Membre(membre.getEmail(), passwordEncoder.encode(membre.getPassword()), membre.getRoleList());
|
||||
membreRepository.save(membreToSave);
|
||||
return jwtTokenProvider.createToken(membre.getEmail(), membre.getRoleList());
|
||||
} else {
|
||||
throw new ExistingUsernameException();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Membre> findAllUsers() {
|
||||
return membreRepository.findAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<Membre> findUserByEmail(String email) {
|
||||
return membreRepository.findByEmail(email);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue