diff --git a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java index 0bd9fc0..25c4db2 100644 --- a/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java +++ b/src/main/java/hhn/labsw/bugageocaching/controller/Controller.java @@ -3,6 +3,7 @@ package hhn.labsw.bugageocaching.controller; import com.google.gson.Gson; import hhn.labsw.bugageocaching.entities.*; import hhn.labsw.bugageocaching.repositories.*; +import hhn.labsw.bugageocaching.util.VerificationUtil; import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.Jwts; @@ -13,7 +14,6 @@ import org.springframework.security.crypto.bcrypt.BCrypt; import org.springframework.web.bind.annotation.*; import javax.annotation.PostConstruct; -import java.security.Key; import java.util.*; import static hhn.labsw.bugageocaching.util.CacheConstructionUtil.createCacheUtil; @@ -44,11 +44,10 @@ public class Controller { @Autowired UserRepository userRepository; - Key key; @PostConstruct public void init() { - key = fetchPublicKey(); + fetchPublicKey(); } @CrossOrigin(origins = "http://localhost:8081") // only for dev purpose @@ -78,12 +77,12 @@ public class Controller { .setSubject(user.getUsername()) .claim("admin", userRepository.findByUsername(user.getUsername()).getRoles().stream().anyMatch(x -> x.getId() == 0)) //True if user is admin .setExpiration(new Date(new Date().getTime() + (1000 * 60 * 60 * 24))) //One day expiration - .signWith(signatureAlgorithm, key) + .signWith(signatureAlgorithm, VerificationUtil.publicKey) .compact(); System.out.println(token); Claims claims = Jwts.parser() //Parse JWT - .setSigningKey(key) + .setSigningKey(VerificationUtil.publicKey) .parseClaimsJws(token).getBody(); System.out.println("ID: " + claims.getId()); System.out.println("Subject: " + claims.getSubject()); @@ -109,7 +108,7 @@ public class Controller { try { Claims claims = Jwts.parser() //Parse JWT - .setSigningKey(key) + .setSigningKey(VerificationUtil.publicKey) .parseClaimsJws(token).getBody(); User user = userRepository.findByUsername(claims.getSubject()); @@ -179,7 +178,7 @@ public class Controller { try { Claims claims = Jwts.parser() //Parse JWT - .setSigningKey(key) + .setSigningKey(VerificationUtil.publicKey) .parseClaimsJws(token).getBody(); return ResponseEntity.status(200).body(claims.get("admin")); @@ -212,7 +211,7 @@ public class Controller { try { Claims claims = Jwts.parser() //Parse JWT - .setSigningKey(key) + .setSigningKey(VerificationUtil.publicKey) .parseClaimsJws(token).getBody(); @@ -248,7 +247,7 @@ public class Controller { User u = new User(); u.setId((int) obj[0]); u.setUsername((String) obj[1]); - u.setRankingPointsSum((int) obj[2]); + //u.setRankingPointsSum((int) obj[2]); sendBackUsers.add(u); } @@ -261,7 +260,7 @@ public class Controller { public ResponseEntity getUser(@RequestParam String token) { try { Claims claims = Jwts.parser() //Parse JWT - .setSigningKey(key) + .setSigningKey(VerificationUtil.publicKey) .parseClaimsJws(token).getBody(); diff --git a/src/main/java/hhn/labsw/bugageocaching/entities/Role.java b/src/main/java/hhn/labsw/bugageocaching/entities/Role.java index b5612bc..3e4a9c5 100644 --- a/src/main/java/hhn/labsw/bugageocaching/entities/Role.java +++ b/src/main/java/hhn/labsw/bugageocaching/entities/Role.java @@ -11,6 +11,7 @@ public class Role { @GeneratedValue private int id; private String name; + private String domain; public Role() { @@ -32,6 +33,14 @@ public class Role { this.name = name; } + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + @Override public String toString() { return name; diff --git a/src/main/java/hhn/labsw/bugageocaching/entities/User.java b/src/main/java/hhn/labsw/bugageocaching/entities/User.java index 0b546f6..81f2e12 100644 --- a/src/main/java/hhn/labsw/bugageocaching/entities/User.java +++ b/src/main/java/hhn/labsw/bugageocaching/entities/User.java @@ -15,10 +15,8 @@ public class User { @GeneratedValue private int id; - private String firstname; - private String lastname; private String username; - private int rankingPointsSum; + private String email; private String password; @@ -26,10 +24,6 @@ public class User { @ManyToMany private List roles; - @ManyToOne - private Team team; - - @Transient private String passwordConfirm; @@ -41,22 +35,6 @@ public class User { this.id = id; } - public String getFirstname() { - return firstname; - } - - public void setFirstname(String firstname) { - this.firstname = firstname; - } - - public String getLastname() { - return lastname; - } - - public void setLastname(String lastname) { - this.lastname = lastname; - } - public String getUsername() { return username; } @@ -65,14 +43,6 @@ public class User { this.username = username; } - public int getRankingPointsSum() { - return rankingPointsSum; - } - - public void setRankingPointsSum(int rankingPointsSum) { - this.rankingPointsSum = rankingPointsSum; - } - public String getEmail() { return email; } @@ -89,14 +59,6 @@ public class User { this.password = password; } - public Team getTeam() { - return team; - } - - public void setTeam(Team team) { - this.team = team; - } - public List getRoles() { return roles; } diff --git a/src/main/java/hhn/labsw/bugageocaching/entities/User_Info.java b/src/main/java/hhn/labsw/bugageocaching/entities/User_Info.java new file mode 100644 index 0000000..08c43fd --- /dev/null +++ b/src/main/java/hhn/labsw/bugageocaching/entities/User_Info.java @@ -0,0 +1,46 @@ +package hhn.labsw.bugageocaching.entities; + +import javax.persistence.*; +import java.io.Serializable; + +@Entity +@Table +public class User_Info implements Serializable { + + @OneToOne + @Id + private User userID; + + private int rankingPointsSum; + + @ManyToOne + private Team teamID; + + + public User_Info() { + } + + public User getUserID() { + return userID; + } + + public void setUserID(User userID) { + this.userID = userID; + } + + public int getRankingPointsSum() { + return rankingPointsSum; + } + + public void setRankingPointsSum(int rankingPointsSum) { + this.rankingPointsSum = rankingPointsSum; + } + + public Team getTeamID() { + return teamID; + } + + public void setTeamID(Team teamID) { + this.teamID = teamID; + } +} diff --git a/src/main/java/hhn/labsw/bugageocaching/util/VerificationUtil.java b/src/main/java/hhn/labsw/bugageocaching/util/VerificationUtil.java index 40db8fe..26648f0 100644 --- a/src/main/java/hhn/labsw/bugageocaching/util/VerificationUtil.java +++ b/src/main/java/hhn/labsw/bugageocaching/util/VerificationUtil.java @@ -1,6 +1,8 @@ package hhn.labsw.bugageocaching.util; import hhn.labsw.bugageocaching.fetchObjects.PublicKey; +import org.springframework.http.HttpHeaders; +import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import java.security.Key; @@ -10,7 +12,9 @@ import java.util.Base64; public class VerificationUtil { - public static Key fetchPublicKey() { + public static Key publicKey; + + public static void fetchPublicKey() { RestTemplate restTemplate = new RestTemplate(); try { PublicKey response = restTemplate.getForObject("http://seserver.se.hs-heilbronn.de:8090/buga19usermanagement/token/publickey", PublicKey.class); @@ -19,16 +23,13 @@ public class VerificationUtil { X509EncodedKeySpec publicKeySpec = new X509EncodedKeySpec(decodedKey); Key key = factory.generatePublic(publicKeySpec); - return key; + publicKey = key; } catch (Exception e) { e.printStackTrace(); } //Fehler muss zurückgegeben werden - return null; } - public void verifyToken() { - - } + //Verify methode }