我正在尝试使用Keycloak保护在JBOSS服务器上运行的Java EE应用程序。为此,我在web.xml文件中添加了以下内容:
<login-config>
<auth-method>KEYCLOAK</auth-method>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
我在pom.xml文件中添加了以下依赖项:
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-core</artifactId>
<version>3.0.0.Final</version>
</dependency>
和我的jboss standalone.xml中的以下模块:
<extension module="org.keycloak.keycloak-adapter-subsystem"/>
<subsystem xmlns="urn:jboss:domain:keycloak:1.1"/>
除此之外,我遵循了keycloak.org上给出的所有指示,例如安装keycloak服务器,创建领域和客户端,然后创建用户。执行此操作后,当我单击我的应用程序的登录页面时,它完全重定向到keycloak登录页面,一旦我登录,它就会重定向到我的应用程序登录页面。如果用户已登录keycloak,则直接显示应用程序登录信息。
现在我希望如果用户登录到keycloak应用程序,他/她不需要再次登录我的应用程序,但是他应该被定向到主页,因为keycloak已经完成了身份验证。为此,我们是否需要在数据库中维护身份验证令牌,并针对Keycloak生成的令牌验证这些令牌,还是有其他方法?在完成上述任务后,我现在无能为力。