Changed Methods to user FinderUtil

This commit is contained in:
Maximilian Leopold 2019-04-15 17:23:34 +02:00
parent 41c5dc482d
commit 663d3482ee
2 changed files with 135 additions and 99 deletions

View File

@ -6,7 +6,6 @@ import hhn.labsw.bugageocaching.repositories.*;
import hhn.labsw.bugageocaching.util.FinderUtil;
import hhn.labsw.bugageocaching.util.VerificationUtil;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.ExpiredJwtException;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.beans.factory.annotation.Autowired;
@ -107,60 +106,75 @@ public class Controller {
Bearbeitet bearbeitet = new Bearbeitet();
try {
Claims claims = Jwts.parser() //Parse JWT
.setSigningKey(VerificationUtil.publicKey)
.parseClaimsJws(token).getBody();
User user = userRepository.findByUsername(claims.getSubject());
if (user == null) {
return ResponseEntity.status(404).body("User was not found");
}
bearbeitet.setUser(user);
//----------------------
//Verify token
ResponseEntity tokenVerification = VerificationUtil.verifyToken(token);
Optional<Cache> cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID));
if (cacheOptional.isPresent()) {
Cache cache = cacheOptional.get();
if (bearbeitetRepository.findByUserAndCache(user, cache) != null) {
Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache);
return ResponseEntity.status(200).body(bearbeitet1);
}
bearbeitet.setCache(cache);
Station startStation = cache.getStationen().get(0);
bearbeitet.setAktuelleStation(startStation);
} else {
return ResponseEntity.status(404).body("Couldnt find Cache " + cacheID);
}
Optional<CacheAccesDefinition> cacheAccesDefinitionOptional =
cacheAccesDefinitionRepository.findById(0); // angefangen
if (cacheAccesDefinitionOptional.isPresent()) {
CacheAccesDefinition cacheAccesDefinition = cacheAccesDefinitionOptional.get();
bearbeitet.setCacheAccesDefinition(cacheAccesDefinition);
} else {
return ResponseEntity.status(404).body("There is no cacheAccesDefinition with the ID " + 0);
}
bearbeitetRepository.save(bearbeitet);
return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet));
} catch (ExpiredJwtException e) {
return ResponseEntity.status(400).body("JWT Token expired");
} catch (Exception e) {
return ResponseEntity.status(400).body("JWT Token invalid");
//Error in token verification
if (tokenVerification.getStatusCodeValue() != 200) {
return tokenVerification;
}
Claims claims = (Claims) tokenVerification.getBody();
ResponseEntity getUser = FinderUtil.findUserByUsername(claims.getSubject());
if (getUser.getStatusCodeValue() != 200) {
return getUser;
}
User user = (User) getUser.getBody();
bearbeitet.setUser(user);
//----------------------
//Get Cache
ResponseEntity getCache = FinderUtil.findCacheById(cacheID);
if (getCache.getStatusCodeValue() != 200) {
return getCache;
}
Cache cache = (Cache) getCache.getBody();
//----------------------
if (bearbeitetRepository.findByUserAndCache(user, cache) != null) {
Bearbeitet bearbeitet1 = bearbeitetRepository.findByUserAndCache(user, cache);
return ResponseEntity.status(200).body(bearbeitet1);
}
bearbeitet.setCache(cache);
Station startStation = cache.getStationen().get(0);
bearbeitet.setAktuelleStation(startStation);
Optional<CacheAccesDefinition> cacheAccesDefinitionOptional =
cacheAccesDefinitionRepository.findById(0); // angefangen
if (cacheAccesDefinitionOptional.isPresent()) {
CacheAccesDefinition cacheAccesDefinition = cacheAccesDefinitionOptional.get();
bearbeitet.setCacheAccesDefinition(cacheAccesDefinition);
} else {
return ResponseEntity.status(404).body("There is no cacheAccesDefinition with the ID " + 0);
}
bearbeitetRepository.save(bearbeitet);
return ResponseEntity.status(201).body(new Gson().toJson(bearbeitet));
} else { // kein angemeldeter User startet den cache(es wird nur der cache als parameter übergeben)
Optional<Cache> cacheOptional = cacheRepository.findById(Integer.valueOf(cacheID));
if (cacheOptional.isPresent()) {
Cache cache = cacheOptional.get();
return ResponseEntity.status(200).body(new Gson().toJson(cache));
} else {
return ResponseEntity.status(404).body("Couldnt find Cache " + cacheID);
ResponseEntity getCache = FinderUtil.findCacheById(cacheID);
if (getCache.getStatusCodeValue() != 200) {
return getCache;
}
Cache cache = (Cache) getCache.getBody();
return ResponseEntity.status(200).body(new Gson().toJson(cache));
}
}
@ -186,17 +200,21 @@ public class Controller {
Claims claims = (Claims) tokenVerification.getBody();
User user = userRepository.findByUsername(claims.getSubject());
if (user == null) {
return ResponseEntity.status(404).body("User was not found");
ResponseEntity getUser = FinderUtil.findUserByUsername(claims.getSubject());
if (getUser.getStatusCodeValue() != 200) {
return getUser;
}
User user = (User) getUser.getBody();
//----------------------
//----------------------
//Get Cache
ResponseEntity getCache = FinderUtil.findCacheById(cacheID);
if(getCache.getStatusCodeValue() != 200){
if (getCache.getStatusCodeValue() != 200) {
return getCache;
}
@ -207,7 +225,7 @@ public class Controller {
//Get durchgeführter Cache
ResponseEntity getDurchgefuehrterCache = FinderUtil.findCacheById(durchgefuehrterCacheID);
if(getDurchgefuehrterCache.getStatusCodeValue() != 200){
if (getDurchgefuehrterCache.getStatusCodeValue() != 200) {
return getDurchgefuehrterCache;
}
@ -218,7 +236,7 @@ public class Controller {
//Get Station
ResponseEntity getStation = FinderUtil.findStationById(stationID);
if(getStation.getStatusCodeValue() != 200){
if (getStation.getStatusCodeValue() != 200) {
return getStation;
}
@ -233,7 +251,7 @@ public class Controller {
//Get Bearbeitet entry
ResponseEntity getBearbeitet = FinderUtil.findBearbeitetByUserAndCache(user, cache);
if(getBearbeitet.getStatusCodeValue() != 200){
if (getBearbeitet.getStatusCodeValue() != 200) {
return getBearbeitet;
}
@ -242,7 +260,7 @@ public class Controller {
Station aktuelleStation = bearbeitet.getAktuelleStation();
if(aktuelleStation == null){
if (aktuelleStation == null) {
return ResponseEntity.status(400).body("Database Error");
}
@ -290,17 +308,15 @@ public class Controller {
@ResponseBody
public ResponseEntity checkAdmin(@RequestParam String token) {
try {
Claims claims = Jwts.parser() //Parse JWT
.setSigningKey(VerificationUtil.publicKey)
.parseClaimsJws(token).getBody();
ResponseEntity verifyToken = VerificationUtil.verifyToken(token);
return ResponseEntity.status(200).body(claims.get("admin"));
} catch (ExpiredJwtException e) {
return ResponseEntity.status(400).body("JWT Token expired");
} catch (Exception e) {
return ResponseEntity.status(400).body("JWT Token invalid");
if (verifyToken.getStatusCodeValue() != 200) {
return verifyToken;
}
Claims claims = (Claims) verifyToken.getBody();
return ResponseEntity.status(200).body(claims.get("admin"));
}
//Bis hier
@ -322,31 +338,35 @@ public class Controller {
@RequestMapping("/api/getMyCaches")
@ResponseBody
public ResponseEntity getMyCaches(@RequestParam String token) {
try {
Claims claims = Jwts.parser() //Parse JWT
.setSigningKey(VerificationUtil.publicKey)
.parseClaimsJws(token).getBody();
User user = userRepository.findByUsername(claims.getSubject());
ResponseEntity verifyToken = VerificationUtil.verifyToken(token);
if (user != null) {
ArrayList<Bearbeitet> bearbeitetList = new ArrayList<>();
if (verifyToken.getStatusCodeValue() != 200) {
return verifyToken;
}
for (Bearbeitet bearbeitet : bearbeitetRepository.findAll()) {
if (bearbeitet.getUser().getId() == user.getId()) {
bearbeitetList.add(bearbeitet);
}
Claims claims = (Claims) verifyToken.getBody();
ResponseEntity getUser = FinderUtil.findUserByUsername(claims.getSubject());
if (getUser.getStatusCodeValue() != 200) {
return getUser;
}
User user = (User) getUser.getBody();
if (user != null) {
ArrayList<Bearbeitet> bearbeitetList = new ArrayList<>();
for (Bearbeitet bearbeitet : bearbeitetRepository.findAll()) {
if (bearbeitet.getUser().getId() == user.getId()) {
bearbeitetList.add(bearbeitet);
}
return ResponseEntity.status(200).body(new Gson().toJson(bearbeitetList));
} else {
return ResponseEntity.status(404).body("User was not found in the database");
}
} catch (ExpiredJwtException e) {
return ResponseEntity.status(400).body("JWT Token expired");
} catch (Exception e) {
return ResponseEntity.status(400).body("JWT Token invalid");
return ResponseEntity.status(200).body(new Gson().toJson(bearbeitetList));
} else {
return ResponseEntity.status(404).body("User was not found in the database");
}
}
@ -372,23 +392,29 @@ public class Controller {
@RequestMapping("/api/getUser")
@ResponseBody
public ResponseEntity getUser(@RequestParam String token) {
try {
Claims claims = Jwts.parser() //Parse JWT
.setSigningKey(VerificationUtil.publicKey)
.parseClaimsJws(token).getBody();
ResponseEntity verifyToken = VerificationUtil.verifyToken(token);
User user = userRepository.findByUsername(claims.getSubject());
if (user != null) {
return ResponseEntity.status(200).body(new Gson().toJson(user));
} else {
return ResponseEntity.status(404).body("User was not found in the database");
}
} catch (ExpiredJwtException e) {
return ResponseEntity.status(400).body("JWT Token expired");
} catch (Exception e) {
return ResponseEntity.status(400).body("JWT Token invalid");
if (verifyToken.getStatusCodeValue() != 200) {
return verifyToken;
}
Claims claims = (Claims) verifyToken.getBody();
ResponseEntity getUser = FinderUtil.findUserByUsername(claims.getSubject());
if (getUser.getStatusCodeValue() != 200) {
return getUser;
}
User user = (User) getUser.getBody();
if (user != null) {
return ResponseEntity.status(200).body(new Gson().toJson(user));
} else {
return ResponseEntity.status(404).body("User was not found in the database");
}
}
}

View File

@ -64,4 +64,14 @@ public class FinderUtil {
return ResponseEntity.status(404).body("The user has not started this cache yet");
}
public static ResponseEntity findUserByUsername(String username){
User user = userRepository.findByUsername(username);
if(user != null){
return ResponseEntity.status(200).body(user);
}
return ResponseEntity.status(404).body("Couldnt find user with username " + username);
}
}