我想是否可以使用Grails Spring Security Rest [1]插件来使用HTTP基本身份验证来验证API请求?
一个例子是Stripe API [2],其中使用HTTP基本身份验证的用户名字段中的令牌发送对请求进行身份验证。
curl https://api.stripe.com/v1/charges -u sk_test_BQokikJOvBiI2HlWgH4olfQ2
curl使用-u标志传递基本身份验证凭据(添加冒号 在您的API密钥后,它将阻止它要求您输入密码。)
示例测试API密钥已在所有示例中提供 页面,所以你可以立即测试任何一个例子。
[1] http://grails.org/plugin/spring-security-rest [2] https://stripe.com/docs/api#authentication
答案 0 :(得分:1)
您提到的方法的问题是Spring Security Core的HTTP Basic支持不希望在用户名中收到令牌。它将尝试使用空密码验证配置的身份验证提供程序(例如:DB)的请求。
您必须替换RestAuthenticationFilter
添加BasicAuthenticationFilter
提供的行为。由于它是Spring的封面,你可以轻松替换一个bean。