(2) 配置 application.yml
spring:
security:
oauth2:
client:
provider:
keycloak:
issuer-uri: http://localhost:8080/auth/realms/heartsuit
registration:
keycloak:
client-id: springsecurity
client-secret: 6b532289-4c11-4e62-acc0-5c67e13e4736
clientName: Keycloak
scope:
-
openid
-
profile
-
email
server:
port: 8000
(3) 启动应用
为了看到登录成功后的效果,这里增加一个 Controller
;然后运行应用。
@GetMapping(value = “/”)
public String index(Principal principal) {
return "Welcome " + principal;
}
在浏览器键入: http://localhost:8000/login
,返回一个页面,其中包含了 Keycloak
登录链接:
点击 Keycloak
登录链接,会自动跳转至 我们创建的 Keycloak
服务认证页:
输入在 Heartsuit
域下创建的用户: auth
,会进入我们之前配置的Home页,显示用户信息。
Note: 如果我们直接在浏览器中输入 http://localhost:8000
则会自动跳转到
http://localhost:8080/auth/realms/heartsuit/protocol/openid-connect/auth?response_type=code&client_id=springsecurity&state=Gd5Xj0PyueFcDtoQ6zC6w2wSVc4XjAbAFn8q_uu0qes%3D&redirect_uri=http://localhost:8000/login/oauth2/code/keycloak
链接。
可通过链接退出: http://localhost:8000/logout
借助 SpringSecurity
对 OpenID
的支持,我们几乎不用写什么代码就实现了 Keycloak
登录集成。下面简单了解下登录成功后的 Registration
, AccessToken
。
实验2:查看Keycloak在我们应用中的注册信息
为了方便调试或查看 registration
,这里新增一个接口端点:
@GetMapping(value = “/user/reg”)
public String registration() {
ClientRegistration keycloakRegistration = this.clientRegistrati