9 changed files with 185 additions and 51 deletions
Unified View
Diff Options
-
53Shopify-Cart/src/main/java/com/shopify/cart/SecurityConfig.java
-
1Shopify-Cart/src/main/java/com/shopify/cart/ShopifyCartApplication.java
-
66Shopify-Cart/src/main/java/com/shopify/cart/controller/ProductController.java
-
38Shopify-Cart/src/main/java/com/shopify/cart/controller/UserController.java
-
37Shopify-Cart/src/main/java/com/shopify/cart/model/User.java
-
6Shopify-Cart/src/main/java/com/shopify/cart/repository/ProductRepository.java
-
4Shopify-Cart/src/main/java/com/shopify/cart/repository/UserRepository.java
-
25Shopify-Cart/src/main/java/com/shopify/cart/service/MyUserDetailsService.java
-
6Shopify-Cart/src/main/resources/application.properties
@ -0,0 +1,53 @@ |
|||||
|
package com.shopify.cart; |
||||
|
|
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.context.annotation.Bean; |
||||
|
import org.springframework.context.annotation.Configuration; |
||||
|
import org.springframework.context.annotation.Primary; |
||||
|
import org.springframework.security.authentication.dao.DaoAuthenticationProvider; |
||||
|
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; |
||||
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; |
||||
|
import org.springframework.security.crypto.password.PasswordEncoder; |
||||
|
|
||||
|
import com.shopify.cart.service.MyUserDetailsService; |
||||
|
|
||||
|
@Configuration |
||||
|
@EnableWebSecurity |
||||
|
public class SecurityConfig extends WebSecurityConfigurerAdapter{ |
||||
|
|
||||
|
@Autowired |
||||
|
private MyUserDetailsService myUserDetailsService; |
||||
|
|
||||
|
@Override |
||||
|
protected void configure(HttpSecurity http) throws Exception { |
||||
|
http.authorizeRequests() |
||||
|
.antMatchers("/sign-up").permitAll() |
||||
|
.antMatchers("/login").authenticated() |
||||
|
.and() |
||||
|
.httpBasic(); |
||||
|
http.cors(); |
||||
|
http.csrf().disable(); |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
protected void configure(AuthenticationManagerBuilder auth) throws Exception { |
||||
|
auth.authenticationProvider(getAuthenticator()); |
||||
|
} |
||||
|
|
||||
|
private DaoAuthenticationProvider getAuthenticator() { |
||||
|
DaoAuthenticationProvider dao = new DaoAuthenticationProvider(); |
||||
|
dao.setUserDetailsService(myUserDetailsService); |
||||
|
dao.setPasswordEncoder(getPasswordEncoder()); |
||||
|
return dao; |
||||
|
} |
||||
|
|
||||
|
@Primary |
||||
|
@Bean |
||||
|
public PasswordEncoder getPasswordEncoder() { |
||||
|
return new BCryptPasswordEncoder(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -0,0 +1,25 @@ |
|||||
|
package com.shopify.cart.service; |
||||
|
|
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.security.core.userdetails.UserDetails; |
||||
|
import org.springframework.security.core.userdetails.UserDetailsService; |
||||
|
import org.springframework.security.core.userdetails.UsernameNotFoundException; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
|
||||
|
import com.shopify.cart.model.User; |
||||
|
import com.shopify.cart.repository.UserRepository; |
||||
|
|
||||
|
@Service |
||||
|
public class MyUserDetailsService implements UserDetailsService { |
||||
|
|
||||
|
@Autowired |
||||
|
private UserRepository userRepository; |
||||
|
|
||||
|
@Override |
||||
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { |
||||
|
User user = userRepository.getByUsername(username); |
||||
|
return user; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue