From 6fef491bc9c9c1e5625b75c416db369d8758d5da Mon Sep 17 00:00:00 2001 From: Florinda Date: Wed, 9 Oct 2024 11:26:23 +0200 Subject: [PATCH] updates for common library --- pom.xml | 6 ++ .../controllers/ScenarioController.java | 2 +- .../com/olympus/hermione/models/Scenario.java | 23 ----- .../hermione/models/ScenarioExecution.java | 1 + .../hermione/models/ScenarioInputs.java | 15 ---- .../olympus/hermione/models/ScenarioStep.java | 21 ----- .../models/ScenarioStepAttribute.java | 14 --- .../repository/ScenarioRepository.java | 2 +- .../hermione/security/config/CorsConfig.java | 22 ----- .../security/config/SecurityConfig.java | 87 ------------------- .../security/controllers/AuthController.java | 86 ------------------ .../security/dto/AuthenticationRequest.java | 18 ---- .../security/dto/AuthenticationResponse.java | 19 ---- .../security/dto/FetchUserResponse.java | 16 ---- .../hermione/security/entity/Role.java | 6 -- .../hermione/security/entity/User.java | 41 --------- .../security/filter/JwtTokenFilter.java | 54 ------------ .../security/repository/UserRepository.java | 15 ---- .../services/CustomUserDetailsService.java | 35 -------- .../utility/JwtAuthenticationEntryPoint.java | 30 ------- .../security/utility/JwtTokenProvider.java | 87 ------------------- .../services/ScenarioExecutionService.java | 4 +- .../hermione/stepSolvers/StepSolver.java | 2 +- src/main/resources/application.properties | 4 +- 24 files changed, 15 insertions(+), 595 deletions(-) delete mode 100644 src/main/java/com/olympus/hermione/models/Scenario.java delete mode 100644 src/main/java/com/olympus/hermione/models/ScenarioInputs.java delete mode 100644 src/main/java/com/olympus/hermione/models/ScenarioStep.java delete mode 100644 src/main/java/com/olympus/hermione/models/ScenarioStepAttribute.java delete mode 100644 src/main/java/com/olympus/hermione/security/config/CorsConfig.java delete mode 100644 src/main/java/com/olympus/hermione/security/config/SecurityConfig.java delete mode 100644 src/main/java/com/olympus/hermione/security/controllers/AuthController.java delete mode 100644 src/main/java/com/olympus/hermione/security/dto/AuthenticationRequest.java delete mode 100644 src/main/java/com/olympus/hermione/security/dto/AuthenticationResponse.java delete mode 100644 src/main/java/com/olympus/hermione/security/dto/FetchUserResponse.java delete mode 100644 src/main/java/com/olympus/hermione/security/entity/Role.java delete mode 100644 src/main/java/com/olympus/hermione/security/entity/User.java delete mode 100644 src/main/java/com/olympus/hermione/security/filter/JwtTokenFilter.java delete mode 100644 src/main/java/com/olympus/hermione/security/repository/UserRepository.java delete mode 100644 src/main/java/com/olympus/hermione/security/services/CustomUserDetailsService.java delete mode 100644 src/main/java/com/olympus/hermione/security/utility/JwtAuthenticationEntryPoint.java delete mode 100644 src/main/java/com/olympus/hermione/security/utility/JwtTokenProvider.java diff --git a/pom.xml b/pom.xml index 8657c2d..c136ddd 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,12 @@ 1.0.0-SNAPSHOT + + + com.olympus + olympus-common + 1.0 + org.springframework.boot spring-boot-starter-data-mongodb diff --git a/src/main/java/com/olympus/hermione/controllers/ScenarioController.java b/src/main/java/com/olympus/hermione/controllers/ScenarioController.java index 3e62c41..ba6df4f 100644 --- a/src/main/java/com/olympus/hermione/controllers/ScenarioController.java +++ b/src/main/java/com/olympus/hermione/controllers/ScenarioController.java @@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.RestController; import com.olympus.hermione.dto.ScenarioExecutionInput; import com.olympus.hermione.dto.ScenarioOutput; -import com.olympus.hermione.models.Scenario; +import com.olympus.models.Scenario; import com.olympus.hermione.models.ScenarioExecution; import com.olympus.hermione.repository.ScenarioRepository; import com.olympus.hermione.repository.ScenarioExecutionRepository; diff --git a/src/main/java/com/olympus/hermione/models/Scenario.java b/src/main/java/com/olympus/hermione/models/Scenario.java deleted file mode 100644 index 979216f..0000000 --- a/src/main/java/com/olympus/hermione/models/Scenario.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.olympus.hermione.models; - -import java.util.List; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; - -import lombok.Getter; -import lombok.Setter; - -@Document(collection = "scenarios") -@Getter @Setter -public class Scenario { - @Id - private String id; - private String name; - private String description; - private String startWithStepId; - private List steps; - private List inputs; - - private boolean useChatMemory=false; -} diff --git a/src/main/java/com/olympus/hermione/models/ScenarioExecution.java b/src/main/java/com/olympus/hermione/models/ScenarioExecution.java index 475fdf2..9ce0386 100644 --- a/src/main/java/com/olympus/hermione/models/ScenarioExecution.java +++ b/src/main/java/com/olympus/hermione/models/ScenarioExecution.java @@ -6,6 +6,7 @@ import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import com.olympus.hermione.dto.ScenarioExecutionInput; +import com.olympus.models.Scenario; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/com/olympus/hermione/models/ScenarioInputs.java b/src/main/java/com/olympus/hermione/models/ScenarioInputs.java deleted file mode 100644 index c1cc09a..0000000 --- a/src/main/java/com/olympus/hermione/models/ScenarioInputs.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.olympus.hermione.models; - - - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class ScenarioInputs { - - private String name; - private String type; - private String label; -} diff --git a/src/main/java/com/olympus/hermione/models/ScenarioStep.java b/src/main/java/com/olympus/hermione/models/ScenarioStep.java deleted file mode 100644 index a504bfd..0000000 --- a/src/main/java/com/olympus/hermione/models/ScenarioStep.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.olympus.hermione.models; - -import java.util.HashMap; -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class ScenarioStep { - - private String type; - private String description; - private String name; - private int order; - - private String stepId; - private String nextStepId; - - private HashMap attributes; - -} diff --git a/src/main/java/com/olympus/hermione/models/ScenarioStepAttribute.java b/src/main/java/com/olympus/hermione/models/ScenarioStepAttribute.java deleted file mode 100644 index 9be25ef..0000000 --- a/src/main/java/com/olympus/hermione/models/ScenarioStepAttribute.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.olympus.hermione.models; - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class ScenarioStepAttribute { - - private String name; - private String value; - - -} diff --git a/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java b/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java index 6500a34..b92f8cd 100644 --- a/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java +++ b/src/main/java/com/olympus/hermione/repository/ScenarioRepository.java @@ -3,7 +3,7 @@ package com.olympus.hermione.repository; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; -import com.olympus.hermione.models.Scenario; +import com.olympus.models.Scenario; @Repository public interface ScenarioRepository extends CrudRepository { diff --git a/src/main/java/com/olympus/hermione/security/config/CorsConfig.java b/src/main/java/com/olympus/hermione/security/config/CorsConfig.java deleted file mode 100644 index 7ea22cb..0000000 --- a/src/main/java/com/olympus/hermione/security/config/CorsConfig.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.olympus.hermione.security.config; - - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class CorsConfig implements WebMvcConfigurer { - - @Value("${hermione.fe.url}") - private String hermione_frontend_url; - - @Override - public void addCorsMappings(CorsRegistry registry) { - registry.addMapping("/**") - .allowedOrigins(hermione_frontend_url) - .allowedHeaders("*") - .allowedMethods("GET", "POST", "PUT", "DELETE"); - } -} diff --git a/src/main/java/com/olympus/hermione/security/config/SecurityConfig.java b/src/main/java/com/olympus/hermione/security/config/SecurityConfig.java deleted file mode 100644 index 85f741f..0000000 --- a/src/main/java/com/olympus/hermione/security/config/SecurityConfig.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.olympus.hermione.security.config; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -import org.springframework.security.authentication.AuthenticationManager; - -import org.springframework.security.authentication.dao.DaoAuthenticationProvider; -import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.http.SessionCreationPolicy; -import org.springframework.security.crypto.password.NoOpPasswordEncoder; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; - -import com.olympus.hermione.security.filter.JwtTokenFilter; -import com.olympus.hermione.security.services.CustomUserDetailsService; - -@EnableWebSecurity -@Configuration -public class SecurityConfig { - - @Autowired - CustomUserDetailsService userDetailsService; - -/* @Autowired - private AuthEntryPointJwt unauthorizedHandler; -*/ - @Bean - public JwtTokenFilter authenticationJwtTokenFilter() { - return new JwtTokenFilter(); - } - -//@Override -//public void configure(AuthenticationManagerBuilder authenticationManagerBuilder) throws Exception { -// authenticationManagerBuilder.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder()); -//} - - @Bean - public DaoAuthenticationProvider authenticationProvider() { - DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); - - authProvider.setUserDetailsService(userDetailsService); - authProvider.setPasswordEncoder(passwordEncoder()); - - return authProvider; - } - -//@Bean -//@Override -//public AuthenticationManager authenticationManagerBean() throws Exception { -// return super.authenticationManagerBean(); -//} - - @Bean - public AuthenticationManager authenticationManager(AuthenticationConfiguration authConfig) throws Exception { - return authConfig.getAuthenticationManager(); - } - - - @Bean - PasswordEncoder passwordEncoder() { - return NoOpPasswordEncoder.getInstance(); - } - - - @Bean - public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { - http.csrf(csrf -> csrf.disable()) - .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) - .authorizeHttpRequests(auth -> auth.requestMatchers("/api/auth/**").permitAll() - .requestMatchers("/api/test/**").permitAll() - .requestMatchers("/test/**").permitAll() - .anyRequest().permitAll());//.authenticated()); - - http.authenticationProvider(authenticationProvider()); - - http.addFilterBefore(authenticationJwtTokenFilter(), UsernamePasswordAuthenticationFilter.class); - - return http.build(); - } - -} - diff --git a/src/main/java/com/olympus/hermione/security/controllers/AuthController.java b/src/main/java/com/olympus/hermione/security/controllers/AuthController.java deleted file mode 100644 index 598cb58..0000000 --- a/src/main/java/com/olympus/hermione/security/controllers/AuthController.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.olympus.hermione.security.controllers; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.ResponseEntity; -import org.springframework.security.authentication.AuthenticationManager; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.olympus.hermione.security.dto.AuthenticationRequest; -import com.olympus.hermione.security.dto.AuthenticationResponse; -import com.olympus.hermione.security.dto.FetchUserResponse; -import com.olympus.hermione.security.entity.User; -import com.olympus.hermione.security.utility.JwtTokenProvider; - -@RestController -@RequestMapping("/api/auth") -public class AuthController { - - @Autowired - private AuthenticationManager authenticationManager; - - @Autowired - private JwtTokenProvider jwtTokenProvider; - - @PostMapping("/login") - public ResponseEntity authenticateUser(@RequestBody AuthenticationRequest authenticationRequest) { - - Authentication authentication = authenticationManager.authenticate( - new UsernamePasswordAuthenticationToken( - authenticationRequest.getUsername(), - authenticationRequest.getPassword() - ) - ); - - SecurityContextHolder.getContext().setAuthentication(authentication); - String jwt = jwtTokenProvider.createToken(authentication); - - - HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.add("authorization", jwt); - httpHeaders.add("access-control-expose-headers", "authorization"); - AuthenticationResponse authenticationResponse = new AuthenticationResponse(jwt, (User) authentication.getPrincipal()); - - return ResponseEntity.ok().headers(httpHeaders).body(authenticationResponse); - - } - - @GetMapping("/fetch-user") - public FetchUserResponse fetchUser(Authentication authentication) { - User principal = (User) authentication.getPrincipal(); - principal.setPassword(null); - FetchUserResponse fetchUserResponse = new FetchUserResponse(); - fetchUserResponse.setData(principal); - return fetchUserResponse; - - } - - - @GetMapping("/refresh-token") - public ResponseEntity refreshToken(Authentication authentication) { - - - SecurityContextHolder.getContext().setAuthentication(authentication); - String jwt = jwtTokenProvider.createToken(authentication); - - - HttpHeaders httpHeaders = new HttpHeaders(); - httpHeaders.add("authorization", jwt); - httpHeaders.add("access-control-expose-headers", "authorization"); - AuthenticationResponse authenticationResponse = new AuthenticationResponse(jwt, (User) authentication.getPrincipal()); - - return ResponseEntity.ok().headers(httpHeaders).body(authenticationResponse); - } - - @GetMapping("/test") - public ResponseEntity test() { - return ResponseEntity.ok(" you have access now "); - } -} diff --git a/src/main/java/com/olympus/hermione/security/dto/AuthenticationRequest.java b/src/main/java/com/olympus/hermione/security/dto/AuthenticationRequest.java deleted file mode 100644 index 0aa9c3a..0000000 --- a/src/main/java/com/olympus/hermione/security/dto/AuthenticationRequest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.olympus.hermione.security.dto; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@AllArgsConstructor -@NoArgsConstructor -@Getter -@Setter -public class AuthenticationRequest { - - private String username; - private String password; -} - - diff --git a/src/main/java/com/olympus/hermione/security/dto/AuthenticationResponse.java b/src/main/java/com/olympus/hermione/security/dto/AuthenticationResponse.java deleted file mode 100644 index f799068..0000000 --- a/src/main/java/com/olympus/hermione/security/dto/AuthenticationResponse.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.olympus.hermione.security.dto; - -import com.olympus.hermione.security.entity.User; - -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@Getter -@Setter -@AllArgsConstructor -@NoArgsConstructor -public class AuthenticationResponse { - - private String accessToken; - private User data; - -} diff --git a/src/main/java/com/olympus/hermione/security/dto/FetchUserResponse.java b/src/main/java/com/olympus/hermione/security/dto/FetchUserResponse.java deleted file mode 100644 index ec9e324..0000000 --- a/src/main/java/com/olympus/hermione/security/dto/FetchUserResponse.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.olympus.hermione.security.dto; - -import com.olympus.hermione.security.entity.User; - -import lombok.Getter; -import lombok.Setter; - -@Getter -@Setter -public class FetchUserResponse { - private User data; - - - -} - diff --git a/src/main/java/com/olympus/hermione/security/entity/Role.java b/src/main/java/com/olympus/hermione/security/entity/Role.java deleted file mode 100644 index 2216e14..0000000 --- a/src/main/java/com/olympus/hermione/security/entity/Role.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.olympus.hermione.security.entity; - -public enum Role { - ADMIN,USER -} - diff --git a/src/main/java/com/olympus/hermione/security/entity/User.java b/src/main/java/com/olympus/hermione/security/entity/User.java deleted file mode 100644 index 4bbd870..0000000 --- a/src/main/java/com/olympus/hermione/security/entity/User.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.olympus.hermione.security.entity; -import java.util.Collection; - -import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UserDetails; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import java.util.List; - - -@Document(collection = "users") -@Getter @Setter -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class User implements UserDetails{ - @Id - private String id; - private String username; - private String password; - private String name; - private String surname; - - private Role role; - - @Override - public Collection getAuthorities() { - return List.of(new SimpleGrantedAuthority(role.name())); - } - - -} diff --git a/src/main/java/com/olympus/hermione/security/filter/JwtTokenFilter.java b/src/main/java/com/olympus/hermione/security/filter/JwtTokenFilter.java deleted file mode 100644 index dd6dd26..0000000 --- a/src/main/java/com/olympus/hermione/security/filter/JwtTokenFilter.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.olympus.hermione.security.filter; - -import java.io.IOException; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; -import org.springframework.stereotype.Component; -import org.springframework.web.filter.OncePerRequestFilter; - -import com.olympus.hermione.security.utility.JwtTokenProvider; - -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import lombok.AllArgsConstructor; -import lombok.NoArgsConstructor; - -@Component -@AllArgsConstructor -@NoArgsConstructor -public class JwtTokenFilter extends OncePerRequestFilter { - - @Autowired - private JwtTokenProvider jwtTokenProvider; - - @Autowired - private UserDetailsService userDetailsService; - - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { - - String token = jwtTokenProvider.resolveToken(request); - - if (token != null && jwtTokenProvider.validateToken(token)) { - - UserDetails userDetails = userDetailsService.loadUserByUsername(jwtTokenProvider.getUsername(token)); - - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); - - authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); - SecurityContextHolder.getContext().setAuthentication(authentication); - } - - filterChain.doFilter(request, response); - } - - -} - diff --git a/src/main/java/com/olympus/hermione/security/repository/UserRepository.java b/src/main/java/com/olympus/hermione/security/repository/UserRepository.java deleted file mode 100644 index 1709b4a..0000000 --- a/src/main/java/com/olympus/hermione/security/repository/UserRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.olympus.hermione.security.repository; - -import org.springframework.data.mongodb.repository.MongoRepository; -import org.springframework.data.mongodb.repository.Query; -import org.springframework.stereotype.Repository; - -import com.olympus.hermione.security.entity.User; - -@Repository -public interface UserRepository extends MongoRepository { - - @Query("{username:'?0'}") - User findUserByUsername(String username); -} - diff --git a/src/main/java/com/olympus/hermione/security/services/CustomUserDetailsService.java b/src/main/java/com/olympus/hermione/security/services/CustomUserDetailsService.java deleted file mode 100644 index 977695b..0000000 --- a/src/main/java/com/olympus/hermione/security/services/CustomUserDetailsService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.olympus.hermione.security.services; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Configuration; -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.olympus.hermione.security.entity.User; -import com.olympus.hermione.security.repository.UserRepository; - -@Configuration -@Service -public class CustomUserDetailsService implements UserDetailsService { - - @Autowired - private UserRepository userRepository; - - @Override - public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { - try { - User user = userRepository.findUserByUsername(username); - if(user != null){ - return user; - }else{ - throw new Exception("user Not found "); - } - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - -} diff --git a/src/main/java/com/olympus/hermione/security/utility/JwtAuthenticationEntryPoint.java b/src/main/java/com/olympus/hermione/security/utility/JwtAuthenticationEntryPoint.java deleted file mode 100644 index affcdbc..0000000 --- a/src/main/java/com/olympus/hermione/security/utility/JwtAuthenticationEntryPoint.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.olympus.hermione.security.utility; - -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint; -import org.springframework.stereotype.Component; - -import io.jsonwebtoken.io.IOException; - - -@Component -public class JwtAuthenticationEntryPoint extends BasicAuthenticationEntryPoint { - - @Override - public void commence(HttpServletRequest request, HttpServletResponse response, - AuthenticationException authException) throws IOException, java.io.IOException { - - response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); - response.setContentType("application/json"); - response.getWriter().write("{ \"message\": \"" + authException.getMessage() + "\" }"); - } - - @Override - public void afterPropertiesSet() { - setRealmName("JWT Authentication"); - super.afterPropertiesSet(); - } -} - diff --git a/src/main/java/com/olympus/hermione/security/utility/JwtTokenProvider.java b/src/main/java/com/olympus/hermione/security/utility/JwtTokenProvider.java deleted file mode 100644 index 43bc5e2..0000000 --- a/src/main/java/com/olympus/hermione/security/utility/JwtTokenProvider.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.olympus.hermione.security.utility; - -import org.springframework.stereotype.Component; - -import io.jsonwebtoken.*; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.security.Keys; -import io.jsonwebtoken.security.SignatureException; -import jakarta.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.util.StringUtils; -import java.security.Key; -import java.util.Date; - -@Component -@Slf4j -public class JwtTokenProvider { - - Key key = Keys.secretKeyFor(SignatureAlgorithm.HS512); - - - public static final String SECRET = "5367566B59703373367639792F423F4528482B4D6251655468576D5A713474375367566B59703373367639792F423F4528482B4D6251655468576D5A71347437"; - - - private Key getSignKey() { - byte[] keyBytes = Decoders.BASE64.decode(SECRET); - return Keys.hmacShaKeyFor(keyBytes); - } - - - public String createToken(Authentication authentication) { - - UserDetails userDetails = (UserDetails) authentication.getPrincipal(); - Date now = new Date(); - Date expiryDate = new Date(now.getTime() + 3600000); - - return Jwts.builder() - .setSubject(userDetails.getUsername()) - .setIssuedAt(new Date()) - .setExpiration(expiryDate) - .signWith(getSignKey(), SignatureAlgorithm.HS512) - //.signWith(SignatureAlgorithm.HS512, SECRET) - .compact(); - } - - - public String resolveToken(HttpServletRequest request) { - - String bearerToken = request.getHeader("Authorization"); - if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) { - return bearerToken.substring(7); - } - return null; - } - - // Check if the token is valid and not expired - public boolean validateToken(String token) { - - try { - Jwts.parser().setSigningKey(getSignKey()).parseClaimsJws(token); - return true; - } catch (MalformedJwtException ex) { - log.error("Invalid JWT token"); - } catch (ExpiredJwtException ex) { - log.error("Expired JWT token"); - } catch (UnsupportedJwtException ex) { - log.error("Unsupported JWT token"); - } catch (IllegalArgumentException ex) { - log.error("JWT claims string is empty"); - } catch (SignatureException e) { - log.error("there is an error with the signature of you token "); - } - return false; - } - - // Extract the username from the JWT token - public String getUsername(String token) { - - return Jwts.parser() - .setSigningKey(getSignKey()) - .parseClaimsJws(token) - .getBody() - .getSubject(); - } -} \ No newline at end of file diff --git a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java index 2f1ea67..5b60c20 100644 --- a/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java +++ b/src/main/java/com/olympus/hermione/services/ScenarioExecutionService.java @@ -20,9 +20,9 @@ import org.springframework.stereotype.Service; import com.olympus.hermione.dto.ScenarioExecutionInput; import com.olympus.hermione.dto.ScenarioOutput; -import com.olympus.hermione.models.Scenario; +import com.olympus.models.Scenario; import com.olympus.hermione.models.ScenarioExecution; -import com.olympus.hermione.models.ScenarioStep; +import com.olympus.models.ScenarioStep; import com.olympus.hermione.repository.ScenarioExecutionRepository; import com.olympus.hermione.repository.ScenarioRepository; import com.olympus.hermione.stepSolvers.AdvancedAIPromptSolver; diff --git a/src/main/java/com/olympus/hermione/stepSolvers/StepSolver.java b/src/main/java/com/olympus/hermione/stepSolvers/StepSolver.java index e18f343..bc12b51 100644 --- a/src/main/java/com/olympus/hermione/stepSolvers/StepSolver.java +++ b/src/main/java/com/olympus/hermione/stepSolvers/StepSolver.java @@ -9,7 +9,7 @@ import org.springframework.ai.vectorstore.VectorStore; import org.springframework.cloud.client.discovery.DiscoveryClient; import com.olympus.hermione.models.ScenarioExecution; -import com.olympus.hermione.models.ScenarioStep; +import com.olympus.models.ScenarioStep; import com.olympus.hermione.services.Neo4JUitilityService; public class StepSolver { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 97dd72d..a53de55 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -34,4 +34,6 @@ spring.main.allow-bean-definition-overriding=true logging.level.org.springframework.ai.chat.client.advisor=DEBUG eureka.client.serviceUrl.defaultZone: ${EUREKA_URI:http://localhost:8761/eureka} -eureka.instance.preferIpAddress: true \ No newline at end of file +eureka.instance.preferIpAddress: true + +hermione.fe.url = * \ No newline at end of file