Skip to content

Commit f3a7ba7

Browse files
committed
Authorization: WIP
1 parent 80d1ebc commit f3a7ba7

File tree

16 files changed

+325
-223
lines changed

16 files changed

+325
-223
lines changed

api-gateway-service/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@
5858
<groupId>org.springframework.cloud</groupId>
5959
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
6060
</dependency>
61-
6261
<dependency>
6362
<groupId>io.jsonwebtoken</groupId>
6463
<artifactId>jjwt-api</artifactId>

api-gateway-service/src/main/java/com/javatab/gatewayservice/filters/RouterValidator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
public class RouterValidator {
1111

1212
public static final List<String> openApiEndpoints= List.of(
13-
"/auth/register",
14-
"/auth/login"
13+
"/register",
14+
"/login"
1515
);
1616

1717
public Predicate<ServerHttpRequest> isSecured =

auth-service/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
<groupId>org.springframework.boot</groupId>
5656
<artifactId>spring-boot-starter-data-jpa</artifactId>
5757
</dependency>
58+
<dependency>
59+
<groupId>org.springframework.boot</groupId>
60+
<artifactId>spring-boot-starter-security</artifactId>
61+
</dependency>
5862
<dependency>
5963
<groupId>org.postgresql</groupId>
6064
<artifactId>postgresql</artifactId>
Lines changed: 14 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,27 @@
11
package com.javatab.authservice.controllers;
22

3-
import com.javatab.authservice.domain.Role;
4-
import com.javatab.authservice.domain.User;
5-
import com.javatab.authservice.repository.UserRepository;
63
import com.javatab.authservice.domain.AuthRequest;
74
import com.javatab.authservice.domain.AuthResponse;
8-
import com.javatab.authservice.security.AuthService;
9-
import org.springframework.beans.factory.annotation.Autowired;
10-
import org.springframework.web.bind.annotation.PostMapping;
11-
import org.springframework.web.bind.annotation.RequestBody;
12-
import org.springframework.web.bind.annotation.RequestMapping;
13-
import org.springframework.web.bind.annotation.RestController;
14-
15-
import java.util.HashSet;
16-
import java.util.Set;
5+
import com.javatab.authservice.domain.User;
6+
import com.javatab.authservice.security.JwtUserDetailService;
7+
import com.javatab.authservice.services.UserService;
8+
import lombok.RequiredArgsConstructor;
9+
import org.springframework.web.bind.annotation.*;
1710

1811
@RestController
19-
@RequestMapping("/login")
12+
@RequiredArgsConstructor
2013
public class AuthController {
2114

22-
private AuthService authService;
23-
private UserRepository userRepository;
15+
private final JwtUserDetailService userDetailService;
16+
private final UserService userService;
2417

25-
@Autowired
26-
public AuthController(AuthService authService, UserRepository userRepository) {
27-
this.authService = authService;
28-
this.userRepository = userRepository;
18+
@PostMapping("/login")
19+
public AuthResponse login(@RequestBody AuthRequest request) throws Exception {
20+
return userDetailService.createJwtToken(request);
2921
}
3022

31-
@PostMapping
32-
public AuthResponse login(@RequestBody AuthRequest request) {
33-
User user = new User();
34-
user.setUsername(request.getUsername());
35-
user.setPassword(request.getPassword());
36-
user.setEmail(request.getEmail());
37-
Role role1 = new Role();
38-
role1.setRoleName("USER");
39-
Role role2 = new Role();
40-
role2.setRoleName("ADMIN");
41-
Set<Role> roles = new HashSet<>();
42-
roles.add(role1);
43-
roles.add(role2);
44-
user.setRoles(roles);
45-
User user1 = userRepository.save(user);
46-
return authService.login(request);
23+
@PostMapping("/register")
24+
public User registerNewUser(@RequestBody User user) {
25+
return userService.createNewUser(user);
4726
}
4827
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.javatab.authservice.controllers;
2+
3+
import com.javatab.authservice.domain.Role;
4+
import com.javatab.authservice.repository.RoleRepository;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.web.bind.annotation.PostMapping;
7+
import org.springframework.web.bind.annotation.RequestBody;
8+
import org.springframework.web.bind.annotation.RequestMapping;
9+
import org.springframework.web.bind.annotation.RestController;
10+
11+
@RestController
12+
@RequestMapping("/roles")
13+
public class RoleController {
14+
15+
@Autowired
16+
private RoleRepository roleRepository;
17+
18+
@PostMapping
19+
public Role createNewRole(@RequestBody Role role) {
20+
return roleRepository.save(role);
21+
}
22+
}
Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,22 @@
11
package com.javatab.authservice.domain;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
37
import javax.persistence.*;
48
import java.util.Set;
59

610
@Entity
711
@Table(name = "roles")
12+
@Data
13+
@NoArgsConstructor
14+
@AllArgsConstructor
815
public class Role {
916

1017
@Id
11-
@GeneratedValue(strategy = GenerationType.IDENTITY)
12-
private Long id;
13-
1418
@Column(name = "role")
1519
private String roleName;
1620

17-
@ManyToMany(mappedBy = "roles")
18-
private Set<User> user;
19-
20-
public Role() {
21-
}
22-
23-
public Long getId() {
24-
return id;
25-
}
26-
27-
public void setId(Long id) {
28-
this.id = id;
29-
}
30-
31-
public String getRoleName() {
32-
return roleName;
33-
}
34-
35-
public void setRoleName(String roleName) {
36-
this.roleName = roleName;
37-
}
38-
39-
public Set<User> getUser() {
40-
return user;
41-
}
42-
43-
public void setUser(Set<User> user) {
44-
this.user = user;
45-
}
21+
private String roleDescription;
4622
}
Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
package com.javatab.authservice.domain;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
37
import javax.persistence.*;
48
import java.util.Set;
59

610
@Entity
711
@Table(name = "Users")
12+
@Data
13+
@NoArgsConstructor
14+
@AllArgsConstructor
815
public class User {
916

1017
@Id
@@ -20,53 +27,10 @@ public class User {
2027
@Column(name = "email")
2128
private String email;
2229

23-
@ManyToMany(cascade = {CascadeType.ALL})
30+
@ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
2431
@JoinTable(name = "user_role",
25-
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
26-
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
32+
joinColumns = @JoinColumn(name = "user_id"),
33+
inverseJoinColumns = @JoinColumn(name = "role_id"))
2734
private Set<Role> roles;
28-
29-
public Long getId() {
30-
return id;
31-
}
32-
33-
public void setId(Long id) {
34-
this.id = id;
35-
}
36-
37-
public String getUsername() {
38-
return username;
39-
}
40-
41-
public void setUsername(String username) {
42-
this.username = username;
43-
}
44-
45-
public String getPassword() {
46-
return password;
47-
}
48-
49-
public void setPassword(String password) {
50-
this.password = password;
51-
}
52-
53-
public Set<Role> getRoles() {
54-
return roles;
55-
}
56-
57-
public void setRoles(Set<Role> roles) {
58-
this.roles = roles;
59-
}
60-
61-
public String getEmail() {
62-
return email;
63-
}
64-
65-
public void setEmail(String email) {
66-
this.email = email;
67-
}
68-
69-
public User() {
70-
}
7135
}
7236

auth-service/src/main/java/com/javatab/authservice/domain/UserVO.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

auth-service/src/main/java/com/javatab/authservice/repository/RoleRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33
import com.javatab.authservice.domain.Role;
44
import org.springframework.data.repository.CrudRepository;
55

6-
public interface RoleRepository extends CrudRepository<Role, Long> {
6+
public interface RoleRepository extends CrudRepository<Role, String> {
77
}

auth-service/src/main/java/com/javatab/authservice/security/AuthService.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)