在Spring Boot中为keycloak中的公共URL配置application.properties

时间:2018-12-19 15:48:58

标签: spring-boot kotlin keycloak application.properties

我正在开发带有密钥斗篷的Spring Boot应用程序(v 2.1.0)以保护应用程序(v 4.5.0)。 我已经在gradle和application.properties中配置了keycloak安全性。 但是,即使对于未添加到安全约束中的网址,keycloak也会返回未经授权的错误(401错误)。

Gradle和application.properties文件在下面提供 摇篮

    buildscript {
    ext.kotlin_version = '1.3.11' // Required for Kotlin integration
    ext.spring_boot_version = '2.1.0.RELEASE'
    ext.keycloak_version = '4.5.0.Final'
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Required for Kotlin integration
        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version" // See https://kotlinlang.org/docs/reference/compiler-plugins.html#spring-support
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
    }
}

apply plugin: 'kotlin' // Required for Kotlin integration
apply plugin: "kotlin-spring" // https://kotlinlang.org/docs/reference/compiler-plugins.html#spring-support
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

jar {
    baseName = 'gs-rest-service'
    version = '0.1.0'
}

repositories {
    jcenter()
}
dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    compile group: 'org.hibernate', name: 'hibernate-envers', version: '5.1.0.Final'

    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // Required for Kotlin integration
    compile("org.jetbrains.kotlin:kotlin-reflect")
    compile "org.springframework.boot:spring-boot-starter-web"
//    compile 'org.springframework.boot:spring-boot-starter-security'

    //KeyCloak
    compile group: 'org.keycloak', name: 'keycloak-spring-boot-starter', version: '4.7.0.Final'
    compile group: 'org.keycloak', name: 'keycloak-spring-boot-adapter', version: '4.7.0.Final'

    compile "org.keycloak:keycloak-admin-client:$keycloak_version"

    //RestEasy
// https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-client
    compile group: 'org.jboss.resteasy', name: 'resteasy-client', version: '3.6.2.Final'
// https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jaxrs
    compile group: 'org.jboss.resteasy', name: 'resteasy-jaxrs', version: '3.6.2.Final'
// https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-jackson2-provider
    compile group: 'org.jboss.resteasy', name: 'resteasy-jackson2-provider', version: '3.6.2.Final'

//    //Oauth2
//    // https://mvnrepository.com/artifact/org.springframework.security.oauth/spring-security-oauth2
//    compile group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: '2.3.4.RELEASE'

    // https://mvnrepository.com/artifact/org.springframework/spring-jdbc
    compile group: 'org.springframework', name: 'spring-jdbc', version: '5.1.0.RELEASE'

    // https://mvnrepository.com/artifact/org.postgresql/postgresql
    compile group: 'org.postgresql', name: 'postgresql', version: '9.3-1100-jdbc41'

    compile group: 'org.postgresql', name: 'postgresql', version: '42.2.5'
    testCompile('org.springframework.boot:spring-boot-starter-test')

}

Application.properties

#Server
server.port = 8090
# Database
spring.jpa.database=postgresql
#spring.datasource.platform
spring.jpa.show-sql=false
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/dbname
spring.datasource.username=postgres
spring.datasource.password=123
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=update



# new
keycloak.realm = realm
keycloak.auth-server-url = http://localhost:8080/auth
keycloak.ssl-required = external
keycloak.resource = client_id
keycloak.credentials.secret = client_secret
keycloak.realm-key=public_key


keycloak.security-constraints[0].auth-roles[0]=USER
keycloak.security-constraints[0].security-collections[0].patterns[0]=/user/*
keycloak.security-constraints[0].security-collections[0].patterns[1]=/createStudent

keycloak.security-constraints[0].auth-roles[1]=admin
keycloak.security-constraints[0].security-collections[1].patterns[0]=/createStudent2
keycloak.security-constraints[0].security-collections[1].patterns[1]=/createRole
keycloak.security-constraints[0].security-collections[1].patterns[2]=/roles
keycloak.security-constraints[0].security-collections[1].patterns[3]=/assignRole
keycloak.security-constraints[0].security-collections[1].patterns[4]=/users

我希望应用程序的登录名和主页公开 / login和/ home 预先感谢!

0 个答案:

没有答案