From 6274a83b953cc15b3bcf0182e961e308b362ea50 Mon Sep 17 00:00:00 2001 From: dizda13 Date: Tue, 16 May 2017 20:58:20 +0200 Subject: [PATCH] auth pass hash --- .../src/main/java/ba/steleks/UsersConfig.java | 17 +++++++++ .../controller/AuthenticationController.java | 36 ++++++++++++++++++ .../java/ba/steleks/model/AuthRequest.java | 38 +++++++++++++++++++ .../repository/UsersJpaRepository.java | 2 +- 4 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 users/src/main/java/ba/steleks/UsersConfig.java create mode 100644 users/src/main/java/ba/steleks/controller/AuthenticationController.java create mode 100644 users/src/main/java/ba/steleks/model/AuthRequest.java diff --git a/users/src/main/java/ba/steleks/UsersConfig.java b/users/src/main/java/ba/steleks/UsersConfig.java new file mode 100644 index 0000000..e24f9fe --- /dev/null +++ b/users/src/main/java/ba/steleks/UsersConfig.java @@ -0,0 +1,17 @@ +package ba.steleks; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; + +/** + * Created by admin on 13/05/2017. + */ +@Configuration +public class UsersConfig { + @Bean + public PasswordEncoder providePasswordEncoder(){ + return new BCryptPasswordEncoder(); + } +} diff --git a/users/src/main/java/ba/steleks/controller/AuthenticationController.java b/users/src/main/java/ba/steleks/controller/AuthenticationController.java new file mode 100644 index 0000000..6cb4d72 --- /dev/null +++ b/users/src/main/java/ba/steleks/controller/AuthenticationController.java @@ -0,0 +1,36 @@ +package ba.steleks.controller; + +import ba.steleks.model.AuthRequest; +import ba.steleks.repository.UsersJpaRepository; +import org.bouncycastle.crypto.tls.HashAlgorithm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + + + +/** + * Created by admin on 13/05/2017. + */ +@RestController +public class AuthenticationController { + + private UsersJpaRepository usersJpaRepository; + private PasswordEncoder passwordEncoder; + + @Autowired + public AuthenticationController(UsersJpaRepository usersJpaRepository, PasswordEncoder passwordEncoder) { + this.passwordEncoder=passwordEncoder; + this.usersJpaRepository = usersJpaRepository; + } + + @RequestMapping(path = "/accesstoken" , method = RequestMethod.POST) + public String generateToken(@RequestBody AuthRequest body){ + return passwordEncoder.matches(body.getPassword(),usersJpaRepository.findByUsername(body.getUsername()).getPasswordHash()) ? "true" : "false"; + + } + +} diff --git a/users/src/main/java/ba/steleks/model/AuthRequest.java b/users/src/main/java/ba/steleks/model/AuthRequest.java new file mode 100644 index 0000000..ef447b8 --- /dev/null +++ b/users/src/main/java/ba/steleks/model/AuthRequest.java @@ -0,0 +1,38 @@ +package ba.steleks.model; + + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +/** + * Created by admin on 13/05/2017. + */ + +public class AuthRequest { + private String username; + private String password; + + public AuthRequest() { + } + + public AuthRequest(String username, String password) { + this.username = username; + this.password = password; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + +} diff --git a/users/src/main/java/ba/steleks/repository/UsersJpaRepository.java b/users/src/main/java/ba/steleks/repository/UsersJpaRepository.java index a2516b6..c7917ac 100644 --- a/users/src/main/java/ba/steleks/repository/UsersJpaRepository.java +++ b/users/src/main/java/ba/steleks/repository/UsersJpaRepository.java @@ -8,6 +8,6 @@ import ba.steleks.model.User; import org.springframework.data.repository.PagingAndSortingRepository; public interface UsersJpaRepository extends PagingAndSortingRepository { - + User findByUsername(String username); }