9 changed files with 185 additions and 51 deletions
Split 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