Post

RolesAllowed in Jersey3

Ref: Jersey ResourceConfig doesn’t auto discover but Application does?

There are two ways to achieve:

  1. Application with Feature: this would auto discover
1
2
3
4
5
6
import jakarta.ws.rs.ApplicationPath;
import jakarta.ws.rs.core.Application;


@ApplicationPath("/api")
public class RestApplication extends Application {}
1
2
3
4
5
6
7
8
9
10
11
12
13
import jakarta.ws.rs.core.Feature;
import jakarta.ws.rs.core.FeatureContext;
import jakarta.ws.rs.ext.Provider;
import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;

@Provider
public class ClassPathScanWorkAroundFeature implements Feature {
	@Override
	public boolean configure(FeatureContext featureContext) {
		featureContext.register(RolesAllowedDynamicFeature.class);
		return true;
	}
}
  1. ResourceConfig won’t auto discover, need to manually assign packages to scan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import jakarta.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.filter.RolesAllowedDynamicFeature;

@ApplicationPath("/api")
public class RestApplication extends ResourceConfig {

	public RestApplication() {
		packages(
				"tw.rainbow.edu.personcheckin.manage.filter",
				"tw.rainbow.edu.personcheckin.manage.endpoint",
				"tw.rainbow.edu.personcheckin.manage.resource");
		register(RolesAllowedDynamicFeature.class);
	}
}
This post is licensed under CC BY 4.0 by the author.