Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions set-random-secrets.bash
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

# JWT
export jwt_secret="c3ByaW5nX2Jvb3RfYXBwQGxvY2FsaG9zdDo4MDgwCg=="
export jwt_secret="Q2hhdEdQVC1zZWN1cmUtYW5kLXN0cm9uZy1rZXktMTIzNA=="

# HikariCP settings

Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/application/projects/ProjectService.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@

@Service
public class ProjectService {

private final ProjectRepository projectRepository;

public ProjectService(ProjectRepository projectRepository) {
this.projectRepository = projectRepository;
}
Expand Down
1 change: 0 additions & 1 deletion src/main/java/com/controller/Homepage.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.controller;
import com.application.About.AboutService;
import com.application.dto.FullAbout;
import com.domain.models.About;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/com/controller/ProjectController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.controller;
import com.application.projects.ProjectService;
import com.controller.requestData.CreateProjectRequest;
import com.infrastructure.security.userdetails.UserInfoDetails;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProjectController {
private final ProjectService projectService;
public ProjectController(ProjectService projectService) {
this.projectService = projectService;
}
@PostMapping("/admin/project/create")
public String createProject(@RequestBody CreateProjectRequest projectRequest) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
UserInfoDetails user = (UserInfoDetails) auth.getPrincipal();
Long userId = user.getId();
return "Project created with id: " + this.projectService.createProject(projectRequest.projectTitle(), projectRequest.projectInformation(),userId);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.controller.requestData;

public record CreateProjectRequest(String projectTitle, String projectInformation) {}
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
package com.infrastructure.database.entities;
import com.domain.models.About;
import com.domain.models.Project;
import jakarta.persistence.Entity;
import jakarta.persistence.JoinColumn;
import jakarta.persistence.OneToMany;
import jakarta.persistence.OneToOne;

import java.util.Set;
import jakarta.persistence.*;

@Entity
public class ProjectEntity extends EntityBase<Project> {

@OneToOne
@ManyToOne
@JoinColumn(name = "user_id", nullable = false)
private UserEntity owner;
private String shortIntroduction;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,17 @@
@Repository
public class ProjectRepositoryImpl implements ProjectRepository {
private final JpaUserRepository jpaUserRepository;
public ProjectRepositoryImpl(JpaUserRepository jpaUserRepository) {
private final JpaProjectRepository jpaProjectRepository;
public ProjectRepositoryImpl(JpaUserRepository jpaUserRepository, JpaProjectRepository jpaProjectRepository) {
this.jpaUserRepository = jpaUserRepository;
this.jpaProjectRepository = jpaProjectRepository;
}
@Override
public Long createProject(Project project, Long id) {
UserEntity user = jpaUserRepository.findById(id)
.orElseThrow(() -> new EntityNotFoundException("User not found"));
ProjectEntity projectEntity = new ProjectEntity(user, project);
jpaProjectRepository.save(projectEntity);
return projectEntity.getId();
}
}
2 changes: 1 addition & 1 deletion src/main/java/com/infrastructure/security/WebSec.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public SecurityFilterChain filterAdmin(HttpSecurity http, JwtFilter jwtFilter, A
http
.securityMatcher("/admin/**")
.authorizeHttpRequests(auth -> auth
.requestMatchers("/admin/dashboard/**").hasAuthority("ADMIN")
.anyRequest().hasAuthority("ADMIN")
)
.authenticationProvider(authenticationProvider)
.addFilterBefore(jwtFilter, UsernamePasswordAuthenticationFilter.class)
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/infrastructure/security/jwt/JwtFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ public JwtFilter(UserInfoService userInfoService, JwtService jwtService) {
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String authHeader = request.getHeader("Authorization");
String token = authHeader.substring(7);
System.out.println(token);

String username = jwtService.extractUsername(token);
UserDetails user = userInfoService.loadUserByUsername(username);
boolean validateToken = jwtService.validateToken(token, user.getUsername());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.Collection;
import java.util.List;

Expand Down