您可以在2019 年 4 月的 The Payara Monthly Roundup 中找到解决方案
MicroProfile JWT with Keycloak - 在这个分步博客中,Hayri Cicek 演示了如何使用 MicroProfile JWT 和 Keycloak 保护您的服务。
使用 DeclareRoles 初始化 LoginConfig 并映射您的角色
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
import org.eclipse.microprofile.auth.LoginConfig;
import javax.annotation.security.DeclareRoles;
@LoginConfig(authMethod = "MP-JWT")
@ApplicationPath("/")
@DeclareRoles({ "mysimplerole", "USER" })
public class ApplicationConfig extends Application {
}
将参数添加到 microprofile-config.properties
mp.jwt.verify.publickey.location=http://localhost:8084/auth/realms/public/protocol/openid-connect/certs
mp.jwt.verify.issuer=http://localhost:8084/auth/realms/public
您可以在 RolesAllowed 中使用您的角色
@ApplicationScoped
@Path("/hello")
public class HelloWorldEndpoint {
@GET
@Produces("text/plain")
@RolesAllowed("mysimplerole")
public Response doGet() {
return Response.ok("Hello from MicroProfile!").build();
}
}