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

Java 访问不安全资源oauth2时访问令牌无效,java,oauth-2.0,spring-security-oauth2,Java,Oauth 2.0,Spring Security Oauth2,我已经在应用程序中实现了spring-security-oauth2,付出了很多努力。 一切正常。仅使用授权令牌访问资源。 但当我尝试使用授权头访问不安全的资源时,它会验证访问令牌 如果访问令牌有效,则其工作权限有效,但如果访问令牌无效,则会显示错误无效访问令牌除非用户明确指定允许访问URl,否则Spring security将拦截每个请求并检查访问令牌的有效性。 比如,如果您不想截取url模式并检查身份验证,那么代码如下 <http ...> <intercept-u

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


如果访问令牌有效,则其工作权限有效,但如果访问令牌无效,则会显示错误
无效访问令牌

除非用户明确指定允许访问URl,否则Spring security将拦截每个请求并检查访问令牌的有效性。 比如,如果您不想截取url模式并检查身份验证,那么代码如下

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

但是,如果您想在没有任何安全性的情况下访问资源,您可以执行以下操作:

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


希望这能解决您的问题

您必须在OAuth配置文件中配置HTTP模式。检查是否使用“*”配置URL

<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>

例如,在上面的配置中,我已经对所有启动“detail”的api进行了保护。您也可能在不知不觉中/无意中保护了API。千万别这样