2 回答

TA贡献1789条经验 获得超10个赞
原来我没有正确到达终点。我正在通过 HTTP POST 发送我的所有数据,包括客户端凭据。
POST http://localhost:8080/oauth/token
...
client_id=client_id&secret=secret&scope=read&grant_type=password&username=user&password=password
我需要使用 HTTP 基本身份验证来发送我的客户端凭据而不是发布它们:
POST http://localhost:8080/oauth/token
Authorization: Basic Y2xpZW50X2lkOnNlY3JldA==
...
scope=read&grant_type=password&username=user&password=password

TA贡献1817条经验 获得超14个赞
尝试AuthorizationServerConfig使用这个简单的编码器(它不加密密码)从您的课程中更改您的密码编码器。因为您没有将您的客户端密码保存在 InMemory 存储中并进行加密。
private PasswordEncoder getPasswordEncoder() {
return new PasswordEncoder() {
public String encode (CharSequence charSequence) {
return charSequence.toString();
}
public boolean matches(CharSequence charSequence, String s) {
return true;
}
};
}
希望它会起作用。
添加回答
举报