summaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/blog/web/security/SecurityConfig.java
diff options
context:
space:
mode:
authorrealtradam <[email protected]>2024-07-13 04:23:01 -0400
committerrealtradam <[email protected]>2024-07-13 04:23:01 -0400
commit2f91d2067e7da107a83225f063216c0c6dd7b7cc (patch)
treeec01de8f39b22c010e653f397de5f74d040259b2 /src/main/java/com/blog/web/security/SecurityConfig.java
parentff63bacc647a20c59ce642a4d6b647c3a4290418 (diff)
downloadspring-blog-2f91d2067e7da107a83225f063216c0c6dd7b7cc.tar.gz
spring-blog-2f91d2067e7da107a83225f063216c0c6dd7b7cc.zip
complete registration and login
Diffstat (limited to 'src/main/java/com/blog/web/security/SecurityConfig.java')
-rw-r--r--src/main/java/com/blog/web/security/SecurityConfig.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/blog/web/security/SecurityConfig.java b/src/main/java/com/blog/web/security/SecurityConfig.java
index 1471d0f..49b3402 100644
--- a/src/main/java/com/blog/web/security/SecurityConfig.java
+++ b/src/main/java/com/blog/web/security/SecurityConfig.java
@@ -2,9 +2,12 @@ package com.blog.web.security;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@@ -12,13 +15,24 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@EnableWebSecurity
@EnableMethodSecurity(securedEnabled = true)
public class SecurityConfig {
+ private CustomUserDetailsService userDetailsService;
+
+ public SecurityConfig(CustomUserDetailsService userDetailsService) {
+ this.userDetailsService = userDetailsService;
+ }
+
+ @Bean
+ public static PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
// disabling csrf leaves us vulnerable, in a real production app do not do this
http.csrf(c -> c.disable())
.cors(c -> c.disable())
.authorizeHttpRequests( auths -> auths
- .requestMatchers("/login", "/register", "/articles", "/css/**", "/js/**")
+ .anyRequest()
.permitAll()
)
.formLogin(form -> form
@@ -35,4 +49,8 @@ public class SecurityConfig {
.logoutSuccessUrl("/articles"));
return http.build();
}
+
+ public void configure(AuthenticationManagerBuilder builder) throws Exception {
+ builder.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
+ }
}