Skip to content

Commit

Permalink
Merge pull request #16 from vlad-dieaconu/master
Browse files Browse the repository at this point in the history
Brought back jwt auth
  • Loading branch information
DrBaxR authored Mar 30, 2021
2 parents 56c881d + 4567262 commit f644868
Show file tree
Hide file tree
Showing 17 changed files with 612 additions and 7 deletions.
19 changes: 19 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,24 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>

<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>

<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
Expand All @@ -57,6 +75,7 @@
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>

</dependencies>

<build>
Expand Down
1 change: 0 additions & 1 deletion src/main/java/payroll/controllers/AuthRestAPIs.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import java.util.Set;
import java.util.stream.Collectors;

//pull req
@CrossOrigin(origins = "*", maxAge = 3600)
@RestController
@RequestMapping("/api/auth")
Expand Down
60 changes: 60 additions & 0 deletions src/main/java/payroll/controllers/forms/JwtResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package payroll.controllers.forms;

import java.util.List;

public class JwtResponse {
private String token;
private String type = "Bearer";
private String id;
private String email;
private List<String> roles;


public JwtResponse(String token, String email, String id,List<String> roles) {
this.token = token;
this.email = email;
this.id = id;

this.roles = roles;
}

public List<String> getRoles() {
return roles;
}

public void setRoles(List<String> roles) {
this.roles = roles;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getAccessToken() {
return token;
}

public void setAccessToken(String accessToken) {
this.token = accessToken;
}

public String getTokenType() {
return type;
}

public void setTokenType(String tokenType) {
this.type = tokenType;
}
}
31 changes: 31 additions & 0 deletions src/main/java/payroll/controllers/forms/LoginForm.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package payroll.controllers.forms;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

public class LoginForm {

@NotBlank
@Size(min=3, max = 60)
private String email;

@NotBlank
@Size(min = 6, max = 40)
private String password;

public String getEmail() {
return email;
}

public void setUsername(String username) {
this.email = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}
78 changes: 78 additions & 0 deletions src/main/java/payroll/controllers/forms/SignUpForm.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package payroll.controllers.forms;


import payroll.entities.Group;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import javax.validation.constraints.*;

public class SignUpForm {


@NotBlank
@Size(max = 60)
@Email
private String email;

@NotBlank
private String username;


private Set<String> roles;



@NotBlank
@Size(min = 6, max = 40)
private String password;


public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public Set<String> getRoles() {
return roles;
}

public void setRoles(Set<String> roles) {
this.roles = roles;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public Set getRole() {
return roles;
}

public void setRole(Set role) {
this.roles = role;
}

public List<String> getGroups(){return new ArrayList<String>();}




}
39 changes: 39 additions & 0 deletions src/main/java/payroll/entities/Role.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package payroll.entities;

import org.springframework.data.mongodb.core.mapping.Document;

import javax.persistence.*;


@Document(collection = "roles")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

@Enumerated(EnumType.STRING)
@Column(length = 60)
private RoleName name;

public Role() {}

public Role(RoleName name) {
this.name = name;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public RoleName getName() {
return name;
}

public void setName(RoleName name) {
this.name = name;
}
}
6 changes: 6 additions & 0 deletions src/main/java/payroll/entities/RoleName.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package payroll.entities;

public enum RoleName {
ROLE_USER,
ROLE_ADMIN
}
24 changes: 18 additions & 6 deletions src/main/java/payroll/entities/User.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package payroll.entities;


import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;


import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import java.util.HashSet;
import java.util.List;
import java.util.Objects;
import java.util.Set;

@Entity
public
class User {
@Document(collection = "user")
public class User {

private @Id @GeneratedValue String id;

Expand All @@ -23,10 +27,12 @@ class User {
@ElementCollection
private List<String> groups;

@DBRef
private Set<Role> roles = new HashSet<>();

public User(){ }

public User(String id, String username, String email, String password, List<String> groups) {
this.id = id;
public User(String username, String email, String password, List<String> groups) {
this.username = username;
this.email = email;
this.password = password;
Expand All @@ -37,7 +43,13 @@ public void addGroup(String groupId){
this.groups.add(groupId);
}

public Set<Role> getRoles() {
return roles;
}

public void setRoles(Set<Role> roles) {
this.roles = roles;
}

public String getId() {
return id;
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/payroll/repositories/RoleRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package payroll.repositories;

import org.springframework.data.mongodb.repository.MongoRepository;
import payroll.entities.Role;
import payroll.entities.RoleName;

import java.util.Optional;

public interface RoleRepository extends MongoRepository<Role, String> {
Optional<Role> findByName(RoleName name);
}
2 changes: 2 additions & 0 deletions src/main/java/payroll/repositories/UserRepository.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@
import payroll.entities.User;

public interface UserRepository extends MongoRepository<User, String> {
User findByEmail(String email);
Boolean existsByEmail(String email);
}
Loading

0 comments on commit f644868

Please sign in to comment.