Skip to content

Commit

Permalink
refactor: use record
Browse files Browse the repository at this point in the history
  • Loading branch information
Angular2Guy committed Jan 8, 2025
1 parent 48930b0 commit 3d77d91
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,20 @@
import java.util.Iterator;
import java.util.Map;

import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

import ch.xxx.messenger.domain.common.JwtTokenProvider;
import ch.xxx.messenger.domain.common.Role;
import ch.xxx.messenger.domain.common.Tuple;
import ch.xxx.messenger.domain.common.WebUtils;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@Component
public class RestJwtFilter implements Filter {
Expand All @@ -49,8 +47,8 @@ public void doFilter(ServletRequest request, ServletResponse response, FilterCha
throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) request;
if (httpReq.getRequestURI().contains("/rest") && !httpReq.getRequestURI().contains("/rest/auth")) {
Tuple<String, String> tokenTuple = WebUtils.getTokenUserRoles(createHeaderMap(request), jwtTokenProvider);
if (tokenTuple.getB() == null || !tokenTuple.getB().contains(Role.USERS.name())) {
var tokenTuple = WebUtils.getTokenUserRoles(createHeaderMap(request), jwtTokenProvider);
if (tokenTuple.roles() == null || !tokenTuple.roles().contains(Role.USERS.name())) {
HttpServletResponse httpRes = (HttpServletResponse) response;
httpRes.setStatus(401);
LOG.info("Request denied: ",httpReq.getRequestURL().toString());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,4 @@
*/
package ch.xxx.messenger.domain.common;

public class Tuple<A,B> {
private final A a;
private final B b;

public Tuple(A a, B b) {
this.a = a;
this.b = b;
}

public A getA() {
return a;
}

public B getB() {
return b;
}

}
public record TokenSubjectRoles(String subject, String roles) { }
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ public static String getTokenRoles(Map<String, String> headers, JwtTokenProvider
return "";
}

public static Tuple<String, String> getTokenUserRoles(Map<String, String> headers,
public static TokenSubjectRoles getTokenUserRoles(Map<String, String> headers,
JwtTokenProvider jwtTokenProvider) {
Optional<String> tokenStr = extractToken(headers);
Optional<Jws<Claims>> claims = jwtTokenProvider.getClaims(tokenStr);
if (claims.isPresent() && new Date().before(claims.get().getBody().getExpiration())) {
return new Tuple<String, String>(claims.get().getBody().getSubject(),
return new TokenSubjectRoles(claims.get().getBody().getSubject(),
claims.get().getBody().get(TOKENAUTHKEY).toString());
}
return new Tuple<String, String>(null, null);
return new TokenSubjectRoles(null, null);
}

public static boolean checkToken(HttpServletRequest request, JwtTokenProvider jwtTokenProvider) {
Expand Down

0 comments on commit 3d77d91

Please # to comment.