- Timestamp:
- 02/10/26 18:31:21 (5 months ago)
- Branches:
- master
- Children:
- 6fa5831
- Parents:
- ff01f66
- Location:
- backend
- Files:
-
- 20 added
- 4 edited
-
pom.xml (modified) (1 diff)
-
src/main/java/com/trekr/backend/config/SecurityConfig.java (modified) (4 diffs)
-
src/main/java/com/trekr/backend/controller/InvestingController.java (added)
-
src/main/java/com/trekr/backend/controller/TrainingController.java (added)
-
src/main/java/com/trekr/backend/dto/invest/AssetDto.java (added)
-
src/main/java/com/trekr/backend/dto/invest/CreateAssetRequest.java (added)
-
src/main/java/com/trekr/backend/dto/invest/InvestingAssetsResponse.java (added)
-
src/main/java/com/trekr/backend/dto/invest/TrackingStatusResponse.java (added)
-
src/main/java/com/trekr/backend/dto/training/CreateTrainingSessionRequest.java (added)
-
src/main/java/com/trekr/backend/dto/training/TrackingStatusResponse.java (added)
-
src/main/java/com/trekr/backend/dto/training/TrainingProfileResponse.java (added)
-
src/main/java/com/trekr/backend/dto/training/TrainingSessionDto.java (added)
-
src/main/java/com/trekr/backend/dto/training/TrainingSessionsResponse.java (added)
-
src/main/java/com/trekr/backend/dto/training/TrainingStartRequest.java (added)
-
src/main/java/com/trekr/backend/dto/training/WorkoutTypeDto.java (added)
-
src/main/java/com/trekr/backend/repository/AssetRepository.java (added)
-
src/main/java/com/trekr/backend/repository/InvestorUserRepository.java (added)
-
src/main/java/com/trekr/backend/repository/TrainingSessionRepository.java (added)
-
src/main/java/com/trekr/backend/repository/TrainingUserRepository.java (added)
-
src/main/java/com/trekr/backend/security/JwtAuthenticationFilter.java (added)
-
src/main/java/com/trekr/backend/security/UserPrincipal.java (modified) (3 diffs)
-
src/main/java/com/trekr/backend/service/InvestingService.java (added)
-
src/main/java/com/trekr/backend/service/JwtService.java (modified) (2 diffs)
-
src/main/java/com/trekr/backend/service/TrainingService.java (added)
Legend:
- Unmodified
- Added
- Removed
-
backend/pom.xml
rff01f66 r8c01a1f 51 51 <groupId>org.springframework.boot</groupId> 52 52 <artifactId>spring-boot-starter-webmvc</artifactId> 53 </dependency> 54 55 <dependency> 56 <groupId>com.fasterxml.jackson.core</groupId> 57 <artifactId>jackson-databind</artifactId> 53 58 </dependency> 54 59 <dependency> -
backend/src/main/java/com/trekr/backend/config/SecurityConfig.java
rff01f66 r8c01a1f 1 1 package com.trekr.backend.config; 2 2 3 import com.trekr.backend.security.JwtAuthenticationFilter; 3 4 import org.springframework.context.annotation.Bean; 4 5 import org.springframework.context.annotation.Configuration; … … 7 8 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; 8 9 import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; 10 import org.springframework.security.config.http.SessionCreationPolicy; 9 11 import org.springframework.security.crypto.password.PasswordEncoder; 10 12 import org.springframework.security.web.SecurityFilterChain; 13 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; 11 14 import org.springframework.web.cors.CorsConfiguration; 12 15 import org.springframework.web.cors.CorsConfigurationSource; … … 19 22 public class SecurityConfig { 20 23 24 private final JwtAuthenticationFilter jwtAuthenticationFilter; 25 26 public SecurityConfig(JwtAuthenticationFilter jwtAuthenticationFilter) { 27 this.jwtAuthenticationFilter = jwtAuthenticationFilter; 28 } 29 21 30 @Bean 22 31 public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { … … 24 33 .csrf(AbstractHttpConfigurer::disable) 25 34 .cors(Customizer.withDefaults()) 35 .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) 36 .httpBasic(AbstractHttpConfigurer::disable) 37 .formLogin(AbstractHttpConfigurer::disable) 26 38 .authorizeHttpRequests(auth -> auth 27 39 .requestMatchers("/api/auth/**").permitAll() 28 40 .anyRequest().authenticated()); 41 42 http.addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); 29 43 return http.build(); 30 44 } -
backend/src/main/java/com/trekr/backend/security/UserPrincipal.java
rff01f66 r8c01a1f 1 1 package com.trekr.backend.security; 2 3 import lombok.Getter;4 2 5 3 import java.io.Serializable; … … 9 7 * Controllers can inject this or get it from SecurityContextHolder. 10 8 */ 11 @Getter12 9 public class UserPrincipal implements Serializable { 13 10 private static final long serialVersionUID = 1L; … … 22 19 this.email = email; 23 20 } 21 22 public Long getUserId() { 23 return userId; 24 } 25 26 public String getUsername() { 27 return username; 28 } 29 30 public String getEmail() { 31 return email; 32 } 24 33 } -
backend/src/main/java/com/trekr/backend/service/JwtService.java
rff01f66 r8c01a1f 1 1 package com.trekr.backend.service; 2 2 3 import com.trekr.backend.security.UserPrincipal; 3 4 import io.jsonwebtoken.Jwts; 5 import io.jsonwebtoken.JwtException; 6 import io.jsonwebtoken.Claims; 4 7 import io.jsonwebtoken.security.Keys; 5 8 import org.springframework.beans.factory.annotation.Value; … … 34 37 .compact(); 35 38 } 39 40 public boolean isTokenValid(String token) { 41 try { 42 parseClaims(token); 43 return true; 44 } catch (JwtException | IllegalArgumentException ex) { 45 return false; 46 } 47 } 48 49 public UserPrincipal parseUserPrincipal(String token) { 50 Claims claims = parseClaims(token); 51 Long userId = Long.valueOf(claims.getSubject()); 52 String username = (String) claims.get("username"); 53 String email = (String) claims.get("email"); 54 return new UserPrincipal(userId, username, email); 55 } 56 57 private Claims parseClaims(String token) { 58 return Jwts.parser() 59 .verifyWith(signingKey) 60 .build() 61 .parseSignedClaims(token) 62 .getPayload(); 63 } 36 64 }
Note:
See TracChangeset
for help on using the changeset viewer.
