diff --git a/section1/springsecsection1/src/main/java/com/eazybytes/springsecsection1/EazyBankBackendApplication.java b/section1/springsecsection1/src/main/java/com/eazybytes/springsecsection1/EazyBankBackendApplication.java
index 8b7041c..aacb159 100644
--- a/section1/springsecsection1/src/main/java/com/eazybytes/springsecsection1/EazyBankBackendApplication.java
+++ b/section1/springsecsection1/src/main/java/com/eazybytes/springsecsection1/EazyBankBackendApplication.java
@@ -7,7 +7,7 @@
@SpringBootApplication
// @ComponentScan("com.eazybytes.springsecsection1.controller")
public class EazyBankBackendApplication {
-
+ //Initial Commit
public static void main(String[] args) {
SpringApplication.run(EazyBankBackendApplication.class, args);
}
diff --git a/section2/springsecsection2/pom.xml b/section2/springsecsection2/pom.xml
index bc2be46..e5157e8 100644
--- a/section2/springsecsection2/pom.xml
+++ b/section2/springsecsection2/pom.xml
@@ -14,7 +14,7 @@
springsecsection2
Demo project for Spring Boot and Spring Security
- 21
+ 17
diff --git a/section2/springsecsection2/src/main/java/com/eazybytes/config/ProjectSecurityConfig.java b/section2/springsecsection2/src/main/java/com/eazybytes/config/ProjectSecurityConfig.java
index 9f987a9..92fce4b 100644
--- a/section2/springsecsection2/src/main/java/com/eazybytes/config/ProjectSecurityConfig.java
+++ b/section2/springsecsection2/src/main/java/com/eazybytes/config/ProjectSecurityConfig.java
@@ -2,8 +2,20 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.password.CompromisedPasswordChecker;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.factory.PasswordEncoderFactories;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.provisioning.InMemoryUserDetailsManager;
+import org.springframework.security.provisioning.UserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;
+import org.springframework.security.web.authentication.password.HaveIBeenPwnedRestApiPasswordChecker;
+
+import java.util.Properties;
import static org.springframework.security.config.Customizer.withDefaults;
@@ -15,11 +27,30 @@ SecurityFilterChain defaultSecurityFilterChain(HttpSecurity http) throws Excepti
/*http.authorizeHttpRequests((requests) -> requests.anyRequest().permitAll());*/
/*http.authorizeHttpRequests((requests) -> requests.anyRequest().denyAll());*/
http.authorizeHttpRequests((requests) -> requests
- .requestMatchers("/myAccount", "/myBalance", "/myLoans", "/myCards").authenticated()
+ .requestMatchers("/login", "/myAccount", "/myBalance", "/myLoans", "/myCards").authenticated()
.requestMatchers("/notices", "/contact", "/error").permitAll());
http.formLogin(withDefaults());
http.httpBasic(withDefaults());
+ //http.formLogin(AbstractHttpConfigurer::disable);
+ //http.httpBasic(AbstractHttpConfigurer::disable);
return http.build();
}
+ @Bean
+ public UserDetailsService userDetailsService() {
+ UserDetails user = User.withUsername("user").password("{bcrypt}$2a$12$tvuWBmpxQtFpJmXbrpPsc.mBYqKGD8gA8H/0PY.6GqQMYqRFonU1a").authorities("read").build();
+ UserDetails admin = User.withUsername("admin").password("{bcrypt}$2a$12$h4zkrTtDoa5eDIXhWekMOuNeqcADiDze2EfAgnCQpEKajwZejI7PS").authorities("admin").build();
+ return new InMemoryUserDetailsManager(user, admin);
+ }
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return PasswordEncoderFactories.createDelegatingPasswordEncoder();
+ }
+
+ @Bean
+ public CompromisedPasswordChecker compromisedPasswordChecker() {
+ return new HaveIBeenPwnedRestApiPasswordChecker();
+ }
+
}
diff --git a/section2/springsecsection2/src/main/resources/application.properties b/section2/springsecsection2/src/main/resources/application.properties
index 5dddd35..1785d24 100644
--- a/section2/springsecsection2/src/main/resources/application.properties
+++ b/section2/springsecsection2/src/main/resources/application.properties
@@ -1,6 +1,6 @@
spring.application.name=${SPRING_APP_NAME:eazybankbackend}
-spring.security.user.name=${SECURITY_USERNAME:eazybytes}
-spring.security.user.password=${SECURITY_PASSWORD:12345}
+#spring.security.user.name=${SECURITY_USERNAME:admin}
+#spring.security.user.password=${SECURITY_PASSWORD:admin}
logging.level.org.springframework.security=${SPRING_SECURITY_LOG_LEVEL:TRACE}
logging.pattern.console = ${LOGPATTERN_CONSOLE:%green(%d{HH:mm:ss.SSS}) %blue(%-5level) %red([%thread]) %yellow(%logger{15}) - %msg%n}