Changeset 8ca35dc for src/main/java/com/example/rezevirajmasa/demo/config
- Timestamp:
- 01/19/25 23:18:37 (4 months ago)
- Branches:
- main
- Children:
- f5b256e
- Parents:
- db39d9e
- Location:
- src/main/java/com/example/rezevirajmasa/demo/config
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/main/java/com/example/rezevirajmasa/demo/config/SecurityConfig.java
rdb39d9e r8ca35dc 7 7 import org.springframework.http.HttpMethod; 8 8 import org.springframework.security.authentication.AuthenticationManager; 9 import org.springframework.security.config.Customizer; 9 10 import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 10 11 import org.springframework.security.config.annotation.web.builders.HttpSecurity; … … 15 16 import org.springframework.security.core.userdetails.UserDetailsService; 16 17 import org.springframework.security.web.SecurityFilterChain; 18 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 17 19 import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; 20 import org.springframework.security.web.util.matcher.AntPathRequestMatcher; 18 21 import org.springframework.web.servlet.config.annotation.CorsRegistry; 22 import org.springframework.context.annotation.Bean; 23 import org.springframework.context.annotation.Configuration; 24 import org.springframework.security.config.annotation.web.builders.HttpSecurity; 25 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 26 import org.springframework.security.web.SecurityFilterChain; 19 27 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 20 28 … … 40 48 public void addCorsMappings(CorsRegistry registry) { 41 49 registry.addMapping("/**") 50 .allowedOrigins("http://localhost:3000") 51 .allowedMethods("GET", "POST", "PUT", "DELETE") 52 .allowedHeaders("*") 42 53 .allowCredentials(true) 43 .allowedOrigins("http://localhost:3000") // Allow requests from this origin 44 .allowedMethods("GET", "POST", "PUT", "DELETE") // Allow these HTTP methods 45 .allowedHeaders("*") 46 .maxAge(3600L); // Allow all headers 54 .maxAge(3600L); 47 55 } 48 56 49 57 // @Bean 50 // public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { 51 // 58 // public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { 52 59 // http 60 // .exceptionHandling(exception -> exception.authenticationEntryPoint(customerAuthenticationEntryPoint)) 61 // .addFilterBefore(new JwtAuthFilter(userAuthProvider), BasicAuthenticationFilter.class) 53 62 // .csrf(AbstractHttpConfigurer::disable) 54 // . authorizeHttpRequests( (requests) -> requests55 // .requestMatchers(AntPathRequestMatcher.antMatcher("/"), AntPathRequestMatcher.antMatcher("/restaurants"))56 // . permitAll()57 // . anyRequest()58 // . hasAnyRole("ADMIN", "USER")63 // .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) 64 // .authorizeHttpRequests(requests -> requests 65 // .requestMatchers(HttpMethod.POST, "/api/login", "/api/register").permitAll() 66 // .requestMatchers("/", "/home").authenticated() // Restrict `/` to authenticated users 67 // .anyRequest().authenticated() 59 68 // ) 60 // .formLogin((form) -> form 61 // .permitAll() 62 // .failureUrl("/login?error=BadCredentials") 63 // .defaultSuccessUrl("/restaurants", true) 64 // ) 65 // .logout((logout) -> logout 69 // .logout(logout -> logout 66 70 // .logoutUrl("/logout") 67 71 // .clearAuthentication(true) 68 72 // .invalidateHttpSession(true) 69 73 // .deleteCookies("JSESSIONID") 70 // .logoutSuccessUrl("/ ")74 // .logoutSuccessUrl("/api/login") // Redirect to login page after logout 71 75 // ); 72 76 // … … 83 87 .authorizeHttpRequests((requests) -> requests 84 88 .requestMatchers(HttpMethod.POST, "/api/login", "/api/register").permitAll() 85 .anyRequest().authenticated() 86 ); 89 .anyRequest().authenticated()); 87 90 return http.build(); 88 91 } 92 89 93 @Bean 90 94 public AuthenticationManager authManager(HttpSecurity http) throws Exception { … … 95 99 } 96 100 } 101 // 102 //import com.example.rezevirajmasa.demo.web.filters.JwtAuthFilter; 103 //import org.springframework.context.annotation.Bean; 104 //import org.springframework.context.annotation.Configuration; 105 //import org.springframework.security.authentication.AuthenticationManager; 106 //import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; 107 //import org.springframework.security.config.annotation.web.builders.HttpSecurity; 108 //import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 109 //import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; 110 //import org.springframework.security.config.http.SessionCreationPolicy; 111 //import org.springframework.security.core.userdetails.UserDetailsService; 112 //import org.springframework.security.web.SecurityFilterChain; 113 //import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 114 // 115 //@Configuration 116 //@EnableWebSecurity 117 //public class SecurityConfig { 118 // 119 // private final UserDetailsService userDetailsService; 120 //// private final UserAuthProvider userAuthProvider; 121 // private final JwtAuthFilter jwtAuthFilter; 122 // 123 // public SecurityConfig(UserDetailsService userDetailsService) { 124 // this.userDetailsService = userDetailsService; 125 //// this.userAuthProvider = userAuthProvider; 126 // this.jwtAuthFilter = new JwtAuthFilter(userAuthProvider); 127 // } 128 // 129 // @Bean 130 // public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { 131 // http 132 // .csrf(AbstractHttpConfigurer::disable) 133 // .sessionManagement(sess -> sess.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) 134 // .authorizeHttpRequests((requests) -> requests 135 // .requestMatchers("/api/login", "/api/register").permitAll() 136 // .anyRequest().authenticated()) 137 // .addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class); 138 // 139 // return http.build(); 140 // } 141 // 142 // @Bean 143 // public AuthenticationManager authenticationManager(HttpSecurity http) throws Exception { 144 // AuthenticationManagerBuilder authenticationManagerBuilder = http.getSharedObject(AuthenticationManagerBuilder.class); 145 // authenticationManagerBuilder.userDetailsService(userDetailsService); 146 // return authenticationManagerBuilder.build(); 147 // } 148 //} -
src/main/java/com/example/rezevirajmasa/demo/config/UserAuthProvider.java
rdb39d9e r8ca35dc 7 7 import com.example.rezevirajmasa.demo.dto.UserDto; 8 8 import com.example.rezevirajmasa.demo.service.UserService; 9 import io.jsonwebtoken.Claims; 10 import io.jsonwebtoken.Jwts; 9 11 import jakarta.annotation.PostConstruct; 10 12 import lombok.RequiredArgsConstructor; … … 12 14 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; 13 15 import org.springframework.security.core.Authentication; 16 import org.springframework.security.core.userdetails.UserDetails; 14 17 import org.springframework.stereotype.Component; 15 18 16 import java.util.Base64; 17 import java.util.Collections; 18 import java.util.Date; 19 import java.util.*; 20 import java.util.function.Function; 19 21 20 22 @RequiredArgsConstructor … … 29 31 protected void init() { 30 32 secretKey = Base64.getEncoder().encodeToString(secretKey.getBytes()); 33 } 34 35 public String generateToken(UserDetails userDetails){ 36 Map<String, Object> claims = new HashMap<>(); 37 return createToken(userDetails.getUsername()); 31 38 } 32 39 … … 50 57 return new UsernamePasswordAuthenticationToken(user, null, Collections.emptyList()); 51 58 } 59 60 public String extractUsername(String token) { 61 return extractClaim(token, Claims::getSubject); 62 } 63 64 public Date extractExpiration(String token) { 65 return extractClaim(token, Claims::getExpiration); 66 } 67 68 public <T> T extractClaim(String token, Function<Claims, T> claimsResolver) { 69 final Claims claims = extractAllClaims(token); 70 return claimsResolver.apply(claims); 71 } 72 73 private Claims extractAllClaims(String token) { 74 return Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody(); 75 } 76 77 private Boolean isTokenExpired(String token) { 78 return extractExpiration(token).before(new Date()); 79 } 52 80 }
Note:
See TracChangeset
for help on using the changeset viewer.