【问题标题】:Class 'AuthenticationProviderUserPassword' does not implement abstract member public abstract fun authenticate类 'AuthenticationProviderUserPassword' 不实现抽象成员公共抽象乐趣验证
【发布时间】:2020-10-03 18:46:51
【问题描述】:

我卡在 micronaut 应用程序的用户身份验证中 验证函数不接受 httpRequest 参数

我遇到了一个错误

类 'AuthenticationProviderUserPassword' 不是抽象的,也没有实现抽象成员 public abstract fun authenticate(authenticationRequest: AuthenticationRequest!): Publisher!在 io.micronaut.security.authentication.Authenticatio 中定义

服务:

package example.micronaut.services

import io.micronaut.http.HttpRequest
import io.micronaut.security.authentication.AuthenticationFailed
import io.micronaut.security.authentication.AuthenticationProvider
import io.micronaut.security.authentication.AuthenticationRequest
import io.micronaut.security.authentication.AuthenticationResponse
import io.micronaut.security.authentication.UserDetails
import io.reactivex.Flowable
import org.reactivestreams.Publisher
import java.util.*
import javax.inject.Singleton

@Singleton // <1>
class AuthenticationProviderUserPassword : AuthenticationProvider { // <2>

    override fun authenticate(httpRequest: HttpRequest<*>?, authenticationRequest: AuthenticationRequest<*, *>?): Publisher<AuthenticationResponse> {
        if (authenticationRequest != null && authenticationRequest.identity != null && authenticationRequest.secret != null) {
            if (authenticationRequest.identity == "sherlock" && authenticationRequest.secret == "password") {
                return Flowable.just<AuthenticationResponse>(UserDetails(authenticationRequest.identity as String, ArrayList()))
            }
        }
        return Flowable.just<AuthenticationResponse>(AuthenticationFailed())
    }
}

我的 build.gradle

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.3.50"
    id "org.jetbrains.kotlin.kapt" version "1.3.50"
    id "org.jetbrains.kotlin.plugin.allopen" version "1.3.50"
    id "com.github.johnrengelman.shadow" version "5.2.0"
    id "application"
}

version "0.1"
group "example.micronaut"

repositories {
    mavenCentral()
    maven { url "https://jcenter.bintray.com" }
}

configurations {
    // for dependencies that are needed for development only
    developmentOnly
}

dependencies {
    implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}"
    implementation "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}"
    implementation "io.micronaut:micronaut-runtime"
    implementation "javax.annotation:javax.annotation-api"
    implementation "io.micronaut:micronaut-http-server-netty"
    implementation "io.micronaut:micronaut-http-client"

    implementation "io.micronaut:micronaut-security-session"

    kapt platform("io.micronaut:micronaut-bom:$micronautVersion")
    kapt "io.micronaut:micronaut-inject-java"
    kapt "io.micronaut:micronaut-validation"
    kaptTest platform("io.micronaut:micronaut-bom:$micronautVersion")
    kaptTest "io.micronaut:micronaut-inject-java"
    runtimeOnly "com.fasterxml.jackson.module:jackson-module-kotlin:2.9.8"
    runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
    testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
    testImplementation "io.micronaut.test:micronaut-test-kotlintest"
    testImplementation "io.mockk:mockk:1.9.3"
    testImplementation "io.kotlintest:kotlintest-runner-junit5:3.3.2"
    implementation 'junit:junit:4.12'

    compile "io.micronaut.configuration:micronaut-hibernate-jpa"
    compile "io.micronaut.configuration:micronaut-hibernate-validator"
    compileOnly "jakarta.persistence:jakarta.persistence-api:2.2.2"

    annotationProcessor "io.micronaut.data:micronaut-data-processor:1.0.2"
    runtime "com.h2database:h2"
    runtime "io.micronaut.configuration:micronaut-jdbc-tomcat"

}

test.classpath += configurations.developmentOnly

mainClassName = "example.micronaut.Application"

test {
    useJUnitPlatform()
}

allOpen {
    annotation("io.micronaut.aop.Around")
}

compileKotlin {
    kotlinOptions {
        jvmTarget = '1.8'
        //Will retain parameter names for Java reflection
        javaParameters = true
    }
}

compileTestKotlin {
    kotlinOptions {
        jvmTarget = '1.8'
        javaParameters = true
    }
}

shadowJar {
    mergeServiceFiles()
}

tasks.withType(JavaExec) {
    classpath += configurations.developmentOnly
    jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
}

【问题讨论】:

标签: authentication kotlin micronaut


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 2011-11-02
  • 1970-01-01
相关资源
最近更新 更多