【发布时间】:2016-09-09 18:30:32
【问题描述】:
我有一个基于 spring security oauth2 的应用程序,配置了 JDBC 客户端存储。根据 OAuth2 规范,客户端密码只能在客户端-服务器连接可信时使用,当然不能来自 Web 应用程序 - 客户端密码可以从中提取。
所以问题是 - 我们如何配置让授权类型为“密码”的 /oauth/token 请求生成访问令牌,而 POST 参数中没有 client_secret 键?
这是我的授权服务器配置。我会说非常基本。
<sec:http pattern="/token" create-session="stateless" use-expressions="true" authentication-manager-ref="authenticationManager">
<sec:headers>
<sec:frame-options policy="DENY" />
<sec:hsts />
</sec:headers>
<sec:csrf disabled="true" />
<sec:anonymous enabled="false" />
<sec:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
<sec:custom-filter ref="clientCredentialsTokenEndpointFilter" before="BASIC_AUTH_FILTER" />
<sec:access-denied-handler ref="oauthAccessDeniedHandler" />
</sec:http>
【问题讨论】:
-
我猜你对用于基于浏览器的客户端的 2-legged 流(隐式授权流)感到困惑,它不涉及客户端机密但不是密码流。
标签: spring spring-security spring-security-oauth2 oauth2