Find two mistakes

Report a typo

Someone implemented the UserDetails interface but made some mistakes. Analyze the code and find two mistakes.

The account can't be locked or expired.

Java
public class UserDetailsImpl implements UserDetails {
    private final String username;
    private final String password;
    private final List<String> rolesAndAuthorities;
    
    public UserDetailsImpl(UserInfo userInfo) {
        username = userInfo.getUsername();
        password = userInfo.getPassword();
        rolesAndAuthorities = userInfo.getRolesAndAuthorities();
    }

    @Override
    public Collection<String> getAuthorities() {
        return rolesAndAuthorities;
    }

    @Override
    public String getPassword() {
        return password;
    }

    @Override
    public String getUsername() {
        return username;
    }

    @Override
    public boolean isAccountNonExpired() {
        return true;
    }

    @Override
    public boolean isAccountNonLocked() {
        return true;
    }

    @Override
    public boolean isCredentialsNonExpired() {
        return true;
    }

    @Override
    public boolean isEnabled() {
        return false;
    }
}
Kotlin
class UserDetailsImpl(userInfo: UserInfo) : UserDetails {
    private val username: String
    private val password: String
    private val rolesAndAuthorities: List<String>

    init {
        username = userInfo.getUsername()
        password = userInfo.getPassword()
        rolesAndAuthorities = userInfo.getRolesAndAuthorities()
    }

    override fun getAuthorities(): Collection<String> {
        return rolesAndAuthorities
    }

    override fun getPassword() = password

    override fun getUsername() = username

    override fun isAccountNonExpired() = true

    override fun isAccountNonLocked() = true

    override fun isCredentialsNonExpired() = true

    override fun isEnabled() = false
}
Select one or more options from the list
___

Create a free account to access the full topic