spring-boot应用程序中的凭据错误

时间:2018-02-07 18:04:07

标签: sql-server spring hibernate spring-boot naming-conventions

我正在使用一个使用Oauth2并连接SqlServer的spring-boot应用程序。所以,当我点击看起来像这样的访问令牌URL时:

localhost:8081/oauth/token?client_secret=secret&client_id=web&grant_type=password&username=XXXX&password=XXXXXXX

我得到的回应是:

{ "error": "invalid_grant", "error_description": "Bad credentials" }

所以我觉得这是因为@Table注释和hibernate所具有的命名约定错误。我使用spring 1.5.9 and hibernate 5.0.12

我的Account.java文件是:

package com.oauth.oserver.entities;
import javax.persistence.*;


@Entity
@Table(name = "userinfo")
public class Account {

@Id
@GeneratedValue
private Long id;
@Column(name = "name")
private String username;
@Column(name = "password")
private String password;

public Account() {
}

public Account(String username, String password) {

    this.username = username;
    this.password = password;
}

public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getUsername() {
    return username;

}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}
}

数据库包含名称为UserInfo的表。

1 个答案:

答案 0 :(得分:0)

从OAuth2 doc(https://tools.ietf.org/html/rfc6749),错误对应于:

  

invalid_grant                  提供的授权许可(例如,授权                  代码,资源所有者凭据)或刷新令牌                  无效,已过期,已撤销,与重定向不匹配                  授权请求中使用的URI,或者发给的URI                  另一个客户。

所以请确保您输入了正确的补助金。如果是这样,请将@table名称更改为“UserInfo”而不是“userinfo”。希望有所帮助。 请查看表格命名策略:https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/cfg/ImprovedNamingStrategy.html