0

I'm making a login rest in spring boot. So I created User entity and UserLoginDTO for login. But seems it doesn't work while running

My DTO has validation() function for validating username and password. but it just simple like:

public boolean validate(String username, String password) {

        if (username == this.username && password == this.password) {
            return true;
        }
        return false;
    }

UserLoginDTO:

@Data
public class UserLoginDTO {
    private String username;
    private String password;

    public boolean validate(String username, String password) {

        if (username == this.username && password == this.password) {
            return true;
        }
        return false;
    }
}

User:

@Entity
@Table(name = "users")
@Data
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @Column(name = "username", nullable = false, unique = true)
    private String username;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "joined_date", nullable = false, unique = true)
    @CreatedDate
    private Date joinedDate;

    @Column(name = "password")
    private String password;

    @Column(name = "bio")
    private String bio;

    @Column(name = "email", nullable = false, unique = true)
    private String email;
}   
@GetMapping("/login")
    public @ResponseBody String login(@RequestParam("username") String username, @RequestParam("password") String password) {

        User user = repo.queryUserLogin(username, password);
        UserLoginDTO dto = new UserLoginDTO();

        dto.setUsername(user.getUsername());
        dto.setPassword(user.getPassword());

        if(dto.validate(username, password)) {
            return "Login successfully!";
        }

        return "Login failed!";
    }

But when I ran the code and try to get the result from URL(I use postman). But that doesn't work properly:

postman error page

Higanbana
  • 489
  • 10
  • 26

1 Answers1

2

You should compare strings with equals method and not with ==

You can read here about it https://javarevisited.blogspot.com/2012/12/difference-between-equals-method-and-equality-operator-java.html

Vlad Hanzha
  • 464
  • 3
  • 11