Keycloak + Spring Security,通过本地登录表单

Tri*_*n.G 5 java spring-security spring-boot keycloak

我正在尝试将keycloak集成到我的spring安全层中.我已经实现了这一点,我唯一要解决的问题是:

当端点被命中时,需要对用户进行身份验证,该站点将重定向到我的keycloak登录页面.登录后,用户将被重定向回他们最初请求的页面.我想要实现的是:我不希望我的用户从我的应用程序重定向到keycloak登录页面,然后再返回,但更好的是,通过我的应用程序上的表单登录并"代理"这些捕获的详细信息到keycloak并获取登录令牌.

如果有人能够阐明上述情况,是否有可能,如果有的话,解决方案的某些方向将会粉碎.

pom.xml中:

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-boot-adapter</artifactId>
    <version>2.4.0.Final</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-tomcat8-adapter</artifactId>
    <version>2.4.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

application.properties:

keycloak.realm=MY_REALM
keycloak.realmKey=MY_REALM_KEY
keycloak.auth-server-url=MY_SERVER_URL
keycloak.resource=MY_RESOURCE
keycloak.ssl-required=external
keycloak.public-client=true
keycloak.use-resource-role-mappings=true

keycloak.securityConstraints[0].securityCollections[0].name=static-resources
keycloak.securityConstraints[0].securityCollections[0].patterns[0]=/css/*
keycloak.securityConstraints[0].securityCollections[0].patterns[1]=/fonts/*
keycloak.securityConstraints[0].securityCollections[0].patterns[2]=/js/*

keycloak.securityConstraints[1].securityCollections[0].name=application
keycloak.securityConstraints[1].securityCollections[0].authRoles[0]=MY_ROLE
keycloak.securityConstraints[1].securityCollections[0].patterns[0]=/api/*
Run Code Online (Sandbox Code Playgroud)

Dav*_*sen 5

你想要实现的目标与keycloak的一般目的相矛盾,以保持用户信息与应用程序本身分离.因此,(我知道)没有默认/干净的方法来实现这一点.

相反,您可以考虑设置登录页面的样式以适合您的应用程序的可视外观.