如何使用 XML 通过 Spring Security Oauth2 启用 /oauth/check_token
How to enable /oauth/check_token with Spring Security Oauth2 using XML
我已经使用 spring-security 3.2.* 和 javaconfig 成功启用了“/oauth/check_token”端点,但目前我仅限于 spring-security 3.1.4 然后我坚持 XML 配置。 '/oauth/token' 端点如我所愿地工作,但我无法启用 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>
拜托,任何建议。一个工作示例会很棒。
最佳
./克里斯托弗
您需要创建类型为 CheckTokenEndpoint
(org.springframework.security.oauth2.provider.endpoint.CheckTokenEndpoint
) 的 bean。
使用最新版本的spring oauth2:
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.0.10.RELEASE</version>
</dependency>
确保 xsd 的正确版本在 spring 安全 oauth 文件配置中使用:
http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
在元素 authorization-server
中插入选项 check-token-enabled="true"
:
<oauth:authorization-server ... check-token-enabled="true">
...
</oauth:authorization-server>
我已经使用 spring-security 3.2.* 和 javaconfig 成功启用了“/oauth/check_token”端点,但目前我仅限于 spring-security 3.1.4 然后我坚持 XML 配置。 '/oauth/token' 端点如我所愿地工作,但我无法启用 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>
拜托,任何建议。一个工作示例会很棒。
最佳 ./克里斯托弗
您需要创建类型为 CheckTokenEndpoint
(org.springframework.security.oauth2.provider.endpoint.CheckTokenEndpoint
) 的 bean。
使用最新版本的spring oauth2:
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.0.10.RELEASE</version>
</dependency>
确保 xsd 的正确版本在 spring 安全 oauth 文件配置中使用:
http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
在元素 authorization-server
中插入选项 check-token-enabled="true"
:
<oauth:authorization-server ... check-token-enabled="true">
...
</oauth:authorization-server>