访问不安全资源oauth2时访问令牌无效

时间:2015-07-21 14:51:19

标签: java oauth-2.0 spring-security-oauth2

我已经在应用程序中实现了spring-security-oauth2,付出了很多努力。 一切都很好。仅使用授权令牌访问资源。 但是当我尝试使用Authorization Header访问不安全的资源时,它会验证访问令牌。

如果访问令牌有效,则其工作正常,但如果访问令牌无效,则会显示错误Invalid access_token

2 个答案:

答案 0 :(得分:1)

Spring安全性拦截每个请求并检查access_token的有效性,除非显式用户指定允许访问URl。 就像你不想拦截url模式并检查身份验证一样,代码就像

<http ...>
    <intercept-url pattern="/app/**" access="IS_AUTHENTICATED_FULLY" />
   <intercept-url pattern="/oauth2/resource/**" access="ROLE_USER" />
</http>

但是如果你想在没有任何安全性的情况下访问资源,你可以这样做:

<http pattern="/resources/**" security="none"/>

希望这能解决您的问题

答案 1 :(得分:1)

您必须在OAuth配置文件中配置HTTP模式。检查您是否使用&#39; *&#39;配置网址。

<http pattern="/detail/**" create-session="never"
        entry-point-ref="oauthAuthenticationEntryPoint"
        xmlns="http://www.springframework.org/schema/security">
        <anonymous enabled="false" />
        <!-- intercept-url pattern -->
        <intercept-url pattern="/detail/**" access="IS_AUTHENTICATED_FULLY" />
        <custom-filter ref="resourceServerFilter" before="PRE_AUTH_FILTER" />
        <access-denied-handler ref="oauthAccessDeniedHandler" />
    </http>

例如,在上面的配置中,我已经确保了所有API的开始&#39;详细信息。您可能还在不知不觉中/无意中使API受到保护。确保你没有!