我在这里试图实现的是避免将keycloak用户数据库复制到另一个本地数据库,但似乎不可能访问任何其他用户信息,除了当前会话中的一个...
您可以使用Admin REST API。相关API的详细描述可以在这里获得。另外,您还可以使用JAVA包装器API。请找到以下几个例子。
示例1,REST:
获取访问令牌:
curl \
-d "client_id=admin-cli" \
-d "username=admin" \
-d "password=secret" \
-d "grant_type=password" \
"http://localhost:8080/auth/realms/master/protocol/openid-connect/token"
curl \
-H "Authorization: bearer eyJhbGciOiJSUzI...." \
"http://localhost:8080/auth/admin/realms/master/users"
[
{
"id":"349f67de-36e6-4552-ac54-e52085109616",
"username":"admin",
"enabled":true,
...
},
{
"id":"08afb701-fae5-40b4-8895-e387ba1902fb",
"username":"lbalev",
"enabled":true,
....
}
]
curl \
-H "Authorization: bearer eyJhbGciOiJSU...." \
"http://localhost:8080/auth/admin/realms/master/users/349f67de-36e6-4552-ac54-e52085109616"
public class TestUserAccess {
private static final String SERVER_URL = "http://localhost:8080/auth";
private static final String REALM = "master";
private static final String USERNAME = "admin";
private static final String PASSWORD = "secret";
private static final String CLIENT_ID = "admin-cli";
public static void main(String[] args) {
Keycloak keycloak = KeycloakBuilder
.builder()
.serverUrl(SERVER_URL)
.realm(REALM)
.username(USERNAME)
.password(PASSWORD)
.clientId(CLIENT_ID)
.resteasyClient(new ResteasyClientBuilder().connectionPoolSize(10).build())
.build();
UsersResource usersResource = keycloak.realm(REALM).users();
UserResource userResource = usersResource.get("08afb701-fae5-40b4-8895-e387ba1902fb");
System.out.println(userResource.toRepresentation().getEmail());
}
}
dependencies {
compile group: 'org.keycloak', name: 'keycloak-admin-client', version: '3.3.0.CR2'
compile group: 'org.jboss.resteasy', name: 'resteasy-jaxrs', version: '3.1.4.Final'
compile group: 'org.jboss.resteasy', name: 'resteasy-client', version: '3.1.4.Final'
compile group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '3.1.4.Final'
}
我有一个Web角前端,API网关受Cognito和Lambda保护,用于其他业务用例。登录和授权工作正常。我正在使用AWS Javascript SDK进行授权。像https://s3.amazonaws.com/solutions-reference/mobile-backend/latest/mobile-app-backend.pdf 在我的lambda中,我需要获得其他用户的信息,如名字、
我正在构建一个应用程序,前端有Angular,背面有Laravel。我的问题是,如何通过在帖子表上使用他们的“author_id”来返回/检索用户的全名,而在用户表上使用“user_id”?我有一个用户表和帖子表看起来像这样: 我的用户模型看起来像这样: 我的Post Model看起来像这样: 假设我的路由是正确的(是的,如果需要,我可以提供),我的PostController有以下方法来检索帖子
我正在尝试配置我的本地键盘斗篷8.0.1实例,以使用谷歌作为身份提供者。我正在按照我在这里找到的说明进行操作。我已经相应地配置了我的身份提供者、领域和客户端。当我点击登录页面时,我看到执行谷歌登录的按钮。然而,当我点击它并浏览谷歌同意页面时,我最终被带回键盘斗篷,看到一个错误,上面写着,在我的键盘斗篷日志中,我看到以下内容: 除了说明中的领域名称外,我没有更改任何内容。知道为什么我会看到此错误吗?
用户:用户名=>{密码:哈希,年龄:45} 用户:0=>{USERNAME:USERNAME,password:HASH,年龄:45} 请注意,我希望通过名称查找用户,因此需要第二组键值来将用户名与ID相关联。 考虑到每个用户名都是唯一的,并且必须是字母数字的,是否有任何特殊的原因来说明使用ID系统可能是有益的。 附言。由于Redis处理哈希的方式,我实际上不确定这两种方法之间的内存差异,所以关于
标题试图解释该场景: 该客户具有登录功能,允许同名但在不同位置(商店)的用户。 在登录页面,用户通知用户名、密码和所需的存储。 使用Spring Security(使用JPA)我创建了一个UserDetailsService实现,但此接口始终接收一个用户名(并且存储对于与其他用户不同至关重要)。 鉴于这种情况,我有两个问题: > 如何通知spring security有关附加字段的信息?(门店)