我已成功启用' / oauth / check_token'使用spring-security 3.2。*和javaconfig的端点,但目前我只限于spring-security 3.1.4,然后我坚持使用XML配置。 ' /的OAuth /令牌'端点正在按照我的意愿工作,但我无法启用check_token端点,我找不到任何(非javaconfig)文档来解释要做什么。
Vanila授权服务器配置:
<oauth:authorization-server
client-details-service-ref="client-service"
token-services-ref="tokenServices" >
<oauth:refresh-token disabled="false" />
<oauth:client-credentials disabled="false" />
<oauth:password authentication-manager-ref="userAuthenticationManager" />
</oauth:authorization-server>
http安全配置:
<sec:http
auto-config="true"
pattern="/oauth/token"
create-session="stateless"
authentication-manager-ref="clientAuthenticationManager">
<sec:intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY" />
<sec:anonymous enabled="false"/>
<sec:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
</sec:http>
我试图添加以下http配置但没有成功。
<sec:http
auto-config="true"
pattern="/oauth/check_token"
create-session="stateless"
authentication-manager-ref="clientAuthenticationManager">
<sec:intercept-url pattern="/oauth/check_token" access="IS_AUTHENTICATED_FULLY" />
<sec:anonymous enabled="false"/>
<sec:http-basic entry-point-ref="clientAuthenticationEntryPoint" />
</sec:http>
请,任何建议。一个工作的例子会很棒。
最好./Kristofer
答案 0 :(得分:5)
您需要创建一个CheckTokenEndpoint
(org.springframework.security.oauth2.provider.endpoint.CheckTokenEndpoint
)类型的bean。
答案 1 :(得分:3)
使用spring oauth2的最新版本:
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.0.10.RELEASE</version>
</dependency>
确保在spring security oauth文件配置中使用了正确版本的xsd:
http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
在元素check-token-enabled="true"
中插入选项authorization-server
:
<oauth:authorization-server ... check-token-enabled="true">
...
</oauth:authorization-server>