keycloak10.0.1安装教程
点击Add Realm
输入Name,点击Create按钮。我们就创建了一个名为myrealm的realm。
创建完realm后,我们来为myrealm创建Client ,点击下图的Create按钮
填写Client信息,这边我们创建一个名为keycloakDemo的Client。
点击Client ID或者后面的Edit都可进入Client配置界面
修改Client配置
选择左边Role菜单,点击表格右上角的Add Role
在这里,我们添加两个角色,角色名分别为demoUser和notDemoUser。
选择左侧User菜单,选择表格右上角的Add User
在这里,我们创建两个角色demouser和notdemouser
创建好用户后,选择Credentials,并在下方输入两次密码并把Tempoorary右侧的On点一下改成Off(不改的话首次登陆需要修改密码),给用户添加密码
创建好用户后进入用户配置界面,选择Role Mappings,并在下方Realm Roles中选择需要添加的角色,并点击Add selected按钮即可添加用户角色。
在这里,我们给demouser分配了demoUser角色,给notdemouser分配了notDemoUser角色。
添加依赖管理,引入Keycloak adapter的bom
注意,bom版本需要和keycloak版本一致
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.keycloak.bomgroupId>
<artifactId>keycloak-adapter-bomartifactId>
<version>10.0.1version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
添加Keycloak的starter
<dependency>
<groupId>org.keycloakgroupId>
<artifactId>keycloak-spring-boot-starterartifactId>
<version>10.0.1version>
dependency>
如果不明白怎么加,完整pom.xml如下
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.2.7.RELEASEversion>
<relativePath/>
parent>
<groupId>com.examplegroupId>
<artifactId>demoartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>demoname>
<description>Demo project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
<exclusions>
<exclusion>
<groupId>org.junit.vintagegroupId>
<artifactId>junit-vintage-engineartifactId>
exclusion>
exclusions>
dependency>
<dependency>
<groupId>org.keycloakgroupId>
<artifactId>keycloak-spring-boot-starterartifactId>
<version>10.0.1version>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.keycloak.bomgroupId>
<artifactId>keycloak-adapter-bomartifactId>
<version>10.0.1version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
project>
在application.yml中添加如下配置
spring:
application:
name: keycloakDemo
server:
port: 8600
keycloak:
# 表示是一个public的client
public-client: true
# keycloak的地址
auth-server-url: http://localhost:8080/auth
# keycloak中的realm
realm: myrealm
# client ID
resource: keycloakDemo
# 安全约束
securityConstraints:
- authRoles:
# 以下路径需要demoUser角色才能访问
- demoUser
securityCollections:
# name可以随便写
- name: common user
patterns:
- /demo/getValue
package com.example.keycloakdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Administrator
*/
@SpringBootApplication
public class KeycloakdemoApplication {
public static void main(String[] args) {
SpringApplication.run(KeycloakdemoApplication.class, args);
}
}
@RestController
@RequestMapping("/demo")
class DemoController{
@GetMapping("getValue")
public String getValue(){
return "Hello Keycloak!";
}
}
参考文章链接:Keycloak搭建手把手操作指南