diff --git a/springcloud/user-service/build.gradle b/springcloud/user-service/build.gradle index c2ec34ad..52e999fa 100644 --- a/springcloud/user-service/build.gradle +++ b/springcloud/user-service/build.gradle @@ -25,6 +25,8 @@ ext { dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation group: 'org.modelmapper', name: 'modelmapper', version: '2.4.4' diff --git a/springcloud/user-service/src/main/java/com/example/userservice/UserServiceApplication.java b/springcloud/user-service/src/main/java/com/example/userservice/UserServiceApplication.java index 72b1d1b1..62a152cb 100644 --- a/springcloud/user-service/src/main/java/com/example/userservice/UserServiceApplication.java +++ b/springcloud/user-service/src/main/java/com/example/userservice/UserServiceApplication.java @@ -3,6 +3,8 @@ package com.example.userservice; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.context.annotation.Bean; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; @SpringBootApplication @EnableDiscoveryClient @@ -12,4 +14,8 @@ public class UserServiceApplication { SpringApplication.run(UserServiceApplication.class, args); } + @Bean + public BCryptPasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } } diff --git a/springcloud/user-service/src/main/java/com/example/userservice/security/WebSecurity.java b/springcloud/user-service/src/main/java/com/example/userservice/security/WebSecurity.java new file mode 100644 index 00000000..0a593eca --- /dev/null +++ b/springcloud/user-service/src/main/java/com/example/userservice/security/WebSecurity.java @@ -0,0 +1,24 @@ +package com.example.userservice.security; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@Configuration +@EnableWebSecurity +public class WebSecurity extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(AuthenticationManagerBuilder auth) throws Exception { + super.configure(auth); + } + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf().disable().headers().frameOptions().disable(); + + http.authorizeRequests().antMatchers("/users/**").permitAll(); + } +} diff --git a/springcloud/user-service/src/main/java/com/example/userservice/service/UserServiceImpl.java b/springcloud/user-service/src/main/java/com/example/userservice/service/UserServiceImpl.java index c406ded4..6b5dc9e2 100644 --- a/springcloud/user-service/src/main/java/com/example/userservice/service/UserServiceImpl.java +++ b/springcloud/user-service/src/main/java/com/example/userservice/service/UserServiceImpl.java @@ -6,6 +6,7 @@ import com.example.userservice.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.modelmapper.ModelMapper; import org.modelmapper.convention.MatchingStrategies; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import java.util.UUID; @@ -15,6 +16,7 @@ import java.util.UUID; public class UserServiceImpl implements UserService { private final UserRepository userRepository; + private final BCryptPasswordEncoder passwordEncoder; @Override public void createUser(UserDto userDto) { @@ -23,7 +25,7 @@ public class UserServiceImpl implements UserService { ModelMapper mapper = new ModelMapper(); mapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT); UserEntity userEntity = mapper.map(userDto, UserEntity.class); - userEntity.setEncryptedPwd("encrypted_password"); + userEntity.setEncryptedPwd(passwordEncoder.encode(userDto.getPwd())); userRepository.save(userEntity); }