我正在尝试实现自己的ContainerRequestFilter
配置SecurityContext
.它在jax-rs资源上运行良好,但EJB jax-rs抛出javax.ejb.AccessLocalException
我发现只有相关的东西是4岁,而且解决方法似乎并不漂亮. https://java.net/projects/jersey/lists/users/archive/2010-05/message/265
我的自定义SecurityContext:
@Provider @PreMatching public class SecurityFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext filterContext) throws IOException { filterContext.setSecurityContext(new Authorizer()); } public class Authorizer implements SecurityContext { public Principal getUserPrincipal() { return null; } public boolean isUserInRole(String role) { return true; } public boolean isSecure() { return false; } public String getAuthenticationScheme() { return null; } }
经测试的资源(无@Stateless)
@Path("test") @Stateless public class TestSecureResource { @GET @RolesAllowed("admin") @Path("admin") public Response secureTest() { return Response.status(200).entity("admin").build(); } }
有人知道如何使这项工作?