Skip to content
Snippets Groups Projects
Commit d293b2d2 authored by John Watkins's avatar John Watkins
Browse files

Cleanup and completed utils class

parent c6b2847f
No related branches found
No related tags found
7 merge requests!56tags will be saved to userFavTags table (needs user ID of current logged in user),!50Merging for latest changes,!41Develop,!40Develop,!39Develop,!38Branch Update,!37Issue ten
......@@ -11,7 +11,10 @@ import javax.crypto.spec.SecretKeySpec;
import javax.servlet.http.HttpSession;
import javax.xml.bind.DatatypeConverter;
import java.security.Key;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@Component
public class JWTUtils {
......@@ -79,6 +82,29 @@ public class JWTUtils {
jwtTimeToLive // used to calculate expiration (claim = exp)
);
session.setAttribute("loginCredJWT", jwt);
return jwt.toString();
}
public static Optional<Integer> getLoggedInUserId(HttpSession session){
String loginJWT = (String) session.getAttribute("loginCredJWT");
if (loginJWT == null) {
System.out.println("Jwt is null");
return Optional.empty();
}
try{
Claims claims = JWTUtils.decodeJWT(loginJWT);
return Optional.of(Integer.parseInt(claims.getSubject()));
}catch (io.jsonwebtoken.MalformedJwtException e){
System.out.println("malformed jwt");
return Optional.empty();
}catch (io.jsonwebtoken.SignatureException e){
System.out.println("JWT was edited outside this scope");
return Optional.empty();
}catch (Exception e){
System.out.println(e);
return Optional.empty();
}
}
}
......@@ -11,67 +11,32 @@ import org.springframework.web.bind.annotation.GetMapping;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
@Controller
public class SessionTestController {
@GetMapping("/session")
public String getSessionPage(Model model, HttpSession session){
try{
Claims claims = JWTUtils.decodeJWT("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.-oiqAKFkf3Q_rKaMSfhYYAbslNHlMFEen1_0aUo706Q");
System.out.println(claims);
}catch (io.jsonwebtoken.MalformedJwtException e){
System.out.println("malformed jwt");
}catch (io.jsonwebtoken.SignatureException e){
System.out.println("JWT was edited outside this scope");
}
List<String> messages = (List<String>) session.getAttribute("MY_SESSION_MESSAGES");
model.addAttribute("sessionData",messages);
return "session-test";
}
@GetMapping("/sessionSave")
public String setSessionData(Model model, HttpSession session){
@SuppressWarnings("unchecked")
List<String> messages = (List<String>) session.getAttribute("MY_SESSION_MESSAGES");
if (messages == null) {
messages = new ArrayList<>();
session.setAttribute("MY_SESSION_MESSAGES", messages);
}
messages.add("test");
session.setAttribute("MY_SESSION_MESSAGES", messages);
model.addAttribute("sessionData",messages);
return "session-test";
}
@GetMapping("/sessionDelete")
public String deleteSessionData(Model model, HttpSession session){
List<String> messages = new ArrayList<>();
session.setAttribute("MY_SESSION_MESSAGES", messages);
model.addAttribute("sessionData",messages);
return "session-test";
}
@GetMapping("/sessionJWTTest")
public String jwtTest(Model model, HttpSession session){
String jwt = JWTUtils.makeUserJWT(5, session);
Optional<Integer> user = JWTUtils.getLoggedInUserId(session);
if(user.isPresent()){
System.out.println(user.get());
}else{
System.out.println("No User");
}
System.out.println("jwt = \"" + jwt.toString() + "\"");
System.out.println("Making jwt");
String jwt = JWTUtils.makeUserJWT(6, session);
System.out.println(jwt);
Claims claims = null;
try{
claims = JWTUtils.decodeJWT(jwt);
}catch (io.jsonwebtoken.MalformedJwtException e){
System.out.println("malformed jwt");
}catch (io.jsonwebtoken.SignatureException e){
System.out.println("JWT was edited outside this scope");
user = JWTUtils.getLoggedInUserId(session);
if(user.isPresent()){
System.out.println(user.get());
}else{
System.out.println("No User");
}
System.out.println(claims);
model.addAttribute("sessionData",claims);
model.addAttribute("sessionData",user.get());
return "session-test";
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment