Spring boot loadUserByUsername在springboot身份验证中不覆盖任何内容

Spring boot loadUserByUsername在springboot身份验证中不覆盖任何内容,spring-boot,kotlin,microservices,Spring Boot,Kotlin,Microservices,我不熟悉微服务。我想访问用户名(电子邮件)和密码 来自另一个服务,即用户注册服务。当我创建 身份验证服务,并尝试访问我的电子邮件密码 获取编译时错误 这是我的密码 jwtuserdetailsservice.kt 上面我定义了user.userId.email和user.userId.password,因为我 在my User.kt中定义userId。此用户标识来自 userRegistration服务,此id保存用户名和密码,但我 无法访问身份验证服务I中的电子邮件和密码 我在“返回”这一点上

我不熟悉微服务。我想访问用户名(电子邮件)和密码 来自另一个服务,即用户注册服务。当我创建 身份验证服务,并尝试访问我的电子邮件密码 获取编译时错误

这是我的密码 jwtuserdetailsservice.kt

上面我定义了user.userId.email和user.userId.password,因为我 在my User.kt中定义userId。此用户标识来自 userRegistration服务,此id保存用户名和密码,但我 无法访问身份验证服务I中的电子邮件和密码 我在“返回”这一点上遇到错误 org.springframework.security.core.userdetails.User(User.userId.email,User.userId.password,ArrayList())”

User.kt

ResponseTemplate.kt

UserRegistration.kt


这与微服务无关,而与简单的OOPs编程无关。 当您说子类重写某些行为时,那么它之前必须有一个行为,在您的情况下,它是无的。仔细查看类的定义
JwtUserDetailsService
没有父类/也没有任何接口,因此没有要重写的内容。So线

override fun loadUserByUsername(email: String?): UserDetails {
永远不会编译。我认为您应该在这里实现*接口,以提供行为
UserDetailsService
。您可以看到,
loadUserByUsername
来自界面
User
details服务
现在代码可以编译,但为了使身份验证正常工作,您必须与身份验证管理器正确集成。

这与microservice无关,而与简单的OOPs编程无关。 当您说子类重写某些行为时,那么它之前必须有一个行为,在您的情况下,它是无的。仔细查看类的定义
JwtUserDetailsService
没有父类/也没有任何接口,因此没有要重写的内容。So线

override fun loadUserByUsername(email: String?): UserDetails {
永远不会编译。我认为您应该在这里实现*接口,以提供行为
UserDetailsService
。您可以看到,
loadUserByUsername
来自界面
User
details服务 现在代码可以编译,但为了使身份验证正确工作,您必须与身份验证管理器正确集成

package com.security.securityservice.entity

import javax.persistence.Entity
import javax.persistence.GeneratedValue
import javax.persistence.GenerationType
import javax.persistence.Id

@Entity
data class User(
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    val userAuthId:Long=-1,
    val otp:Int=0,
    val token:String="",
    var userId:Long=-1,
)
package com.security.securityservice.VO

import com.security.securityservice.entity.User

data class ResponseTemplate(
    val user:User?=null,
    val userRegistration: UserRegistration?=null,
)
package com.security.securityservice.VO

data class UserRegistration(
    val userId:Long=-1,
    val firstName:String="",
    val lastName:String="",
    val email:String="",
)
override fun loadUserByUsername(email: String?): UserDetails {