Keycloak 如何要求用户从KeyClope中的代码登录

Keycloak 如何要求用户从KeyClope中的代码登录,keycloak,Keycloak,我目前有一个RealmResourceProvider用于我的领域“测试”。它的网址是http://localhost:8080/auth/realms/test/domainextension. 我希望用户在域中经过身份验证才能访问此页面。但是,现在任何人都可以访问此页面,即使未经验证。是否有某种神奇的功能,如: session.requireUserLogin(); 我希望用户在登录时被重定向到领域身份验证表单,然后重定向到RealmResourceProvider URL。您需要转到身份

我目前有一个RealmResourceProvider用于我的领域“测试”。它的网址是http://localhost:8080/auth/realms/test/domainextension. 我希望用户在域中经过身份验证才能访问此页面。但是,现在任何人都可以访问此页面,即使未经验证。是否有某种神奇的功能,如:

session.requireUserLogin();

我希望用户在登录时被重定向到领域身份验证表单,然后重定向到RealmResourceProvider URL。

您需要转到身份验证并设置身份验证流,您可以根据需要更改的现有流很少。e、 g.对于用户名和密码,您可以制作所需的用户名密码表。然后,您还应该查看“身份验证”中的“绑定”选项卡,将流绑定到操作。

您需要转到“身份验证”并设置身份验证流,您可以根据需要更改的现有流很少。e、 g.对于用户名和密码,您可以制作所需的用户名密码表。然后,您还应该检查身份验证中的绑定选项卡,以将流绑定到操作。

身份验证检查需要在资源方法内部完成

我过去使用和以下代码进行检查:

AuthResult authResult = new AppAuthManager().authenticateBearerToken(session, session.getContext().getRealm());

if (authResult == null)
    throw new NotAuthorizedException("Bearer");
其中,
session
是一个
keydeposition
实例

当抛出
NotAuthorizedException
时,如果这是作为KeyDope UI界面的一部分调用的,它将触发登录屏幕(例如,如果您编写了一个KeyDope扩展,添加了一些UI),但它不会自行神奇地重定向到HTML登录表单

通过创建新的
AdminAuth
对象并查询以下内容,您还可以从
authResult
中检查角色等:

AdminAuth adminAuth = new AdminAuth(realm, authResult.getToken(), authResult.getUser(), client);
if (!auth.hasRealmRole("some-custom-role"))
    throw new ForbiddenException("User does not have required role");

身份验证检查需要在资源方法内部完成

我过去使用和以下代码进行检查:

AuthResult authResult = new AppAuthManager().authenticateBearerToken(session, session.getContext().getRealm());

if (authResult == null)
    throw new NotAuthorizedException("Bearer");
其中,
session
是一个
keydeposition
实例

当抛出
NotAuthorizedException
时,如果这是作为KeyDope UI界面的一部分调用的,它将触发登录屏幕(例如,如果您编写了一个KeyDope扩展,添加了一些UI),但它不会自行神奇地重定向到HTML登录表单

通过创建新的
AdminAuth
对象并查询以下内容,您还可以从
authResult
中检查角色等:

AdminAuth adminAuth = new AdminAuth(realm, authResult.getToken(), authResult.getUser(), client);
if (!auth.hasRealmRole("some-custom-role"))
    throw new ForbiddenException("User does not have required role");

你好我已经尝试了不同的绑定等,但问题是访问RealmResourceProvider不会触发任何身份验证流。例如,如何触发特定流?我在docHello里没找到这样的东西!我已经尝试了不同的绑定等,但问题是访问RealmResourceProvider不会触发任何身份验证流。例如,如何触发特定流?我还没有在文档中找到类似的东西,请你解释一下“如果这是作为KeyClope UI界面的一部分调用的”,好吗?我已经将此异常作为@GET请求的一部分抛出,但它不会将我重定向到HTML登录表单。请您解释一下“如果这是作为KeyClope UI界面的一部分调用的”,好吗?我已经将此异常作为@GET请求的一部分抛出,但它不会将我重定向到HTML登录表单。