Rest 如何将Key斗篷与Payara Micro集成?

Rest 如何将Key斗篷与Payara Micro集成?,rest,jax-rs,keycloak,payara-micro,microprofile,Rest,Jax Rs,Keycloak,Payara Micro,Microprofile,我怎样才能将这些功能与集成 我想创建一个无状态的RESTJAX-RS应用程序,它使用KeyClope作为身份验证和授权服务器,但我不知道如何实现 Eclipse文件JWT身份验证API定义了@LoginConfig注释: @LoginConfig(authMethod = "MP-JWT", realmName = "admin-realm") @ApplicationPath("/") public class MyApplication extends Application {...}

我怎样才能将这些功能与集成

我想创建一个无状态的RESTJAX-RS应用程序,它使用KeyClope作为身份验证和授权服务器,但我不知道如何实现

Eclipse文件JWT身份验证API定义了
@LoginConfig
注释:

@LoginConfig(authMethod = "MP-JWT", realmName = "admin-realm")
@ApplicationPath("/")
public class MyApplication extends Application {...}
@Path("/api/v1/books")
public class BooksController {

    @GET
    @RolesAllowed("read-books")
    public Books findAll() {...}

}
以及java EE的
@RolesAllowed
注释:

@LoginConfig(authMethod = "MP-JWT", realmName = "admin-realm")
@ApplicationPath("/")
public class MyApplication extends Application {...}
@Path("/api/v1/books")
public class BooksController {

    @GET
    @RolesAllowed("read-books")
    public Books findAll() {...}

}

如何集成这两件事?

KeyClope项目没有为Payara Server或Payara Micro提供本机适配器,Payara项目也没有提供

但KeyClope还提供了一个通用的servlet过滤器适配器,该适配器也应与Payara Micro一起使用:


只需将
keydeposervlet过滤器适配器
依赖项添加到web应用程序中,并根据文档在
web.xml
中配置适配器。我还没有测试过它,所以我不知道它是否真的有效。

我在一个个人项目中遇到了同样的挑战,正如前面提到的,KeyClope项目没有为Payara提供本机适配器,在那一刻,我做了一个库,用KeyClope保护我的应用程序,如果你愿意的话,你可以看一看,让我知道它是否可以,或者我们可以如何改进它

您可以在

-在这个循序渐进的博客中,Hayri Cicek‏ 演示如何使用JWT和KeyClope保护您的服务

使用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 {

}
将参数添加到文件-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
你可以在允许的角色中使用你的角色

@ApplicationScoped
@Path("/hello")
public class HelloWorldEndpoint {

    @GET
    @Produces("text/plain")
    @RolesAllowed("mysimplerole")
    public Response doGet() {
        return Response.ok("Hello from MicroProfile!").build();
    }
}

非常感谢!!现在,您可以使用keydove配置更新自述文件、如何获取令牌、如何注销以及如何使用mp config使用外部配置(不带microfile config.properties)?您可以通过环境变量或java属性发送配置,配置文件可以作为默认文件使用。关于令牌,目前已经测试了应用程序库与服务一起使用,在这种情况下,令牌应由FE获得,您是否还需要保护网页?是,我希望用jax-rs和microfile制作一个后端服务器,用nodejs和angular制作一个前端服务器,两者都使用keydape。关于angular应用程序,您可以使用来制作FE部件。新版本发布后,现在您可以使用keydove.json文件来定义您的配置。我已经看到了此选项,但我希望使用eclipse文件规范进行配置。此选项使用web.xml进行配置,我希望使用mp config规范进行外部配置。可以在web.xml中使用对系统属性和环境变量的引用:但是,这并不能提供与使用MicroProfile config相同的灵活性,Pablo的Soteria插件看起来非常不错@ThomásSousaSilva您是否找到了一种使用mp jwt和payara实现配置的方法?