Skip to content

Commit 9c640b7

Browse files
authored
jetty filter with annotation
1 parent cfbf9f2 commit 9c640b7

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

JWTTokenRequestTracker-filter.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// servlet filter, apply filter only for endpoint with annotation
2+
import com.ubs.jetty.api.rest.security.KeyCloakJWTBody;
3+
import com.ubs.jetty.api.rest.usage.JWTTokenTracking;
4+
import com.ubs.jetty.authentication.AuthenticationUtil;
5+
import com.ubs.metrics.postgres.usertracking.UserTracking;
6+
import com.ubs.metrics.postgres.usertracking.UserTrackingDAO;
7+
import com.google.common.cache.Cache;
8+
import com.google.common.cache.CacheBuilder;
9+
import javax.annotation.Priority;
10+
import javax.inject.Inject;
11+
import javax.servlet.http.HttpServletRequest;
12+
import javax.ws.rs.Priorities;
13+
import javax.ws.rs.container.ContainerRequestContext;
14+
import javax.ws.rs.container.ContainerRequestFilter;
15+
import javax.ws.rs.core.Context;
16+
import javax.ws.rs.ext.Provider;
17+
import lombok.Setter;
18+
19+
@Provider
20+
@JWTTokenTracking // filter will work only for methods with this annotation
21+
@Priority(Priorities.USER)
22+
public class JWTTokenRequestTracker implements ContainerRequestFilter {
23+
24+
@Context @Setter private HttpServletRequest request;
25+
26+
static Cache<String, UserTracking> jwtUserCache = CacheBuilder.newBuilder().maximumSize(2000).expireAfterWrite(360, TimeUnit.SECONDS).build();
27+
28+
@Override
29+
public void filter(ContainerRequestContext requestContext) throws IOException {
30+
KeyCloakJWTBody keyCloakJWTBody = AuthenticationUtil.getKeyCloakJWTBodyFromRequest(request);
31+
...
32+
}
33+
34+
}

0 commit comments

Comments
 (0)